Self-hosted academic publication tracker. Track Google Scholar profiles, discover new papers automatically, resolve open-access PDFs, and stay on top of the literature you care about.
Find a file
2026-02-21 17:53:29 +01:00
.github/workflows docs 2026-02-21 17:53:29 +01:00
alembic Big changes 2026-02-21 17:33:05 +01:00
app Big changes 2026-02-21 17:33:05 +01:00
docs docs 2026-02-21 17:53:29 +01:00
frontend Big changes 2026-02-21 17:33:05 +01:00
scripts Big changes 2026-02-21 17:33:05 +01:00
tests Big changes 2026-02-21 17:33:05 +01:00
.dockerignore streamlined 2026-02-17 21:59:41 +01:00
.env.example Big changes 2026-02-21 17:33:05 +01:00
.gitignore docs 2026-02-21 17:53:29 +01:00
.python-version First product 2026-02-17 14:51:25 +01:00
agents.md Big changes 2026-02-21 17:33:05 +01:00
alembic.ini First product 2026-02-17 14:51:25 +01:00
docker-compose.dev.yml test 2026-02-17 20:24:12 +01:00
docker-compose.yml arden scrape safety telemetry and polish run state UX 2026-02-19 21:59:36 +01:00
Dockerfile test 2026-02-17 20:24:12 +01:00
pyproject.toml harden domain architecture and add lazy Crossref+Unpaywall PDF enrichment with publications workspace refactor 2026-02-20 22:56:52 +01:00
README.md docs 2026-02-21 17:53:29 +01:00
uv.lock harden domain architecture and add lazy Crossref+Unpaywall PDF enrichment with publications workspace refactor 2026-02-20 22:56:52 +01:00

scholarr

Self-hosted scholar tracking with a single app image (API + frontend).

CI Docker Pulls Docker Image

Quick Start

  1. Copy env template:
cp .env.example .env
  1. Set required values in .env:
  • POSTGRES_PASSWORD
  • SESSION_SECRET_KEY
  1. Start stack:
docker compose pull
docker compose up -d

Open:

  • App/API: http://localhost:8000
  • Health: http://localhost:8000/healthz

Documentation

Complete documentation is published at:

Source markdown and docs tooling live under docs/.

Quality Gates

Backend:

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:

cd frontend
npm install
npm run typecheck
npm run test:run
npm run build

Contract and env checks:

python3 scripts/check_frontend_api_contract.py
python3 scripts/check_env_contract.py
./scripts/check_no_generated_artifacts.sh