Getting Started
Prerequisites
- Docker and Docker Compose v2+
- A machine with at least 512 MB RAM
Installation
- Clone the repository:
git clone https://github.com/JustinZeus/scholarr.git
cd scholarr
- Copy the example environment file:
cp .env.example .env
- Edit
.envand set the required secrets:
# Required: database password
POSTGRES_PASSWORD=your-secure-password
# Required: session signing key (32+ random characters)
SESSION_SECRET_KEY=your-random-secret-key
- Start the stack:
docker compose up -d
- Verify the service is healthy:
docker compose ps
curl http://localhost:8000/healthz
The app is now available at http://localhost:8000.
First Run
Bootstrap an Admin User
Set these environment variables before first start (or add them to .env):
BOOTSTRAP_ADMIN_ON_START=1
BOOTSTRAP_ADMIN_EMAIL=admin@example.com
BOOTSTRAP_ADMIN_PASSWORD=your-admin-password
Restart the app container. The admin account is created on startup.
Add Your First Scholar
- Log in at
http://localhost:8000. - Navigate to the Scholars page.
- Click Add Scholar.
- Enter a Google Scholar profile URL (e.g.,
https://scholar.google.com/citations?user=XXXXXXXXXX) or a Scholar ID. - The scheduler will begin fetching publications on the next tick (default: 60 seconds).
Manual Run
To trigger an immediate ingestion run, use the Manual Run button on the Runs page. This respects the minimum run interval (INGESTION_MIN_RUN_INTERVAL_MINUTES, default 15 minutes).
Updating
docker compose pull
docker compose up -d
Database migrations run automatically on startup when MIGRATE_ON_START=1 (the default).