90 lines
2.3 KiB
Markdown
90 lines
2.3 KiB
Markdown
# scholarr
|
|
|
|
<div align="center">
|
|
|
|
Self-hosted scholar tracking with a single app image (API + frontend).
|
|
|
|
[](https://github.com/JustinZeus/scholar-scraper/actions/workflows/ci.yml)
|
|
[](https://hub.docker.com/r/justinzeus/scholarr)
|
|
[](https://hub.docker.com/r/justinzeus/scholarr)
|
|
|
|
</div>
|
|
|
|
## Quick Start
|
|
|
|
1. Copy env template:
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
2. Set required values in `.env`:
|
|
- `POSTGRES_PASSWORD`
|
|
- `SESSION_SECRET_KEY`
|
|
|
|
3. Start stack:
|
|
|
|
```bash
|
|
docker compose pull
|
|
docker compose up -d
|
|
```
|
|
|
|
Open:
|
|
- App/API: `http://localhost:8000`
|
|
- Health: `http://localhost:8000/healthz`
|
|
|
|
## Documentation
|
|
|
|
Primary docs live under `docs/`.
|
|
|
|
- Index: `docs/README.md`
|
|
- Deploy and dev workflow: `docs/deploy/quickstart.md`
|
|
- Environment reference: `docs/reference/environment.md`
|
|
- API contract and payload conventions: `docs/reference/api_contract.md`
|
|
- Architecture and domain boundaries: `docs/architecture/domain_boundaries.md`
|
|
- Scrape safety runbook: `docs/ops/scrape_safety_runbook.md`
|
|
- DB backup/restore/integrity runbook: `docs/ops/db_runbook.md`
|
|
- Migration rollout checklist: `docs/ops/migration_checklist.md`
|
|
- Frontend theme inventory: `docs/frontend/theme_phase0_inventory.md`
|
|
- Contributing policy: `docs/contributing.md`
|
|
|
|
## Docs Site (Docusaurus)
|
|
|
|
Docusaurus source lives in `website/` and consumes markdown from `docs/`.
|
|
|
|
Local build:
|
|
|
|
```bash
|
|
cd website
|
|
npm install
|
|
npm run build
|
|
```
|
|
|
|
GitHub Pages deploy is automated via `.github/workflows/docs-pages.yml`.
|
|
|
|
## Quality Gates
|
|
|
|
Backend:
|
|
|
|
```bash
|
|
docker compose -f docker-compose.yml -f docker-compose.dev.yml run --rm app uv run pytest tests/unit
|
|
docker compose -f docker-compose.yml -f docker-compose.dev.yml run --rm app uv run pytest -m integration
|
|
```
|
|
|
|
Frontend:
|
|
|
|
```bash
|
|
cd frontend
|
|
npm install
|
|
npm run typecheck
|
|
npm run test:run
|
|
npm run build
|
|
```
|
|
|
|
Contract and env checks:
|
|
|
|
```bash
|
|
python3 scripts/check_frontend_api_contract.py
|
|
python3 scripts/check_env_contract.py
|
|
./scripts/check_no_generated_artifacts.sh
|
|
```
|