Docker Quick Start
The Docker Compose guide is the maintained Docker setup. The slim example runs OpenReader, its embedded storage and compute services, and Kokoro-FastAPI. Use the full example if you want PostgreSQL, SeaweedFS, NATS, and the worker in separate containers.
Start a new instance
-
Clone the repository and enter it:
git clone https://github.com/richardr1126/openreader.git
cd openreader -
Create a
.envfile in the repository root with a stableAUTH_SECRETand a unique first-admin credential:AUTH_SECRET=<random-value-from-openssl-rand-base64-32>
BOOTSTRAP_ADMIN_EMAIL=owner@example.com
BOOTSTRAP_ADMIN_PASSWORD=<unique-initial-password-at-least-16-characters>Keep this file private. Generate the secret with
openssl rand -base64 32; do not commit the file. Compose reads an.envin the directory from which you run the command. -
Start the stack:
docker compose -f examples/docker/compose.yml up -d -
Open
http://localhost:3003, sign in with the initial credential, and change its password in Settings → Account. The Admin tab appears after that change. Setup is complete—there is no need to edit.envor restart. The one-time seed marker remains in the database, and the initial password no longer works. You may remove the bootstrap values from.envlater as optional secret hygiene.
The initial email is an account identifier, not an email allowlist. It never promotes a later signup, and ADMIN_EMAILS is no longer used. If account email delivery is enabled, the first sign-in attempt sends a verification link; follow it before signing in. Other admins can be granted from Settings → Admin → Users.
For all stack variants, LAN access, security settings, and upgrades, use the Docker Compose guide. Do not delete volumes during an upgrade.