Installation and first run¶
Goal: start an instance, sign in, and see versions for a first project. Use Docker or Docker Compose in production; for local development see the README.
Requirements¶
- Official image
linux/amd64; the application and API share port8000. - Persist a writable data directory at
/app/backend/data; it holds the database, key file and thebackupsdirectory. - Run one instance; do not share the data directory between active replicas.
- Allow outbound access to the upstream services you track.
- The image runs as root and existing volumes may be root-owned; back up and migrate volume permissions before switching to non-root.
Keep the database and keys
Reuse the data directory when recreating containers. Losing system-secrets.json makes encrypted credentials unreadable.
Start the container¶
These examples listen on the host loopback address only, for local access or a reverse proxy on the same host. For remote access configure an HTTPS proxy first; do not expose the management port directly.
migrate-and-serve migrates the database before starting. Other entry commands are for maintenance. Pin a tested release tag instead of latest in production.
Kubernetes probes and resources¶
Reference container settings for a single-replica Deployment (not a complete manifest). Keep replicas: 1 with strategy.type: Recreate so two processes never use the data volume at once; raise the startup probe budget if migrations are slow.
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: "1"
memory: 512Mi
startupProbe:
httpGet:
path: /api/health/live
port: 8000
periodSeconds: 5
failureThreshold: 60
readinessProbe:
httpGet:
path: /api/health/ready
port: 8000
periodSeconds: 10
timeoutSeconds: 3
livenessProbe:
httpGet:
path: /api/health/live
port: 8000
periodSeconds: 30
timeoutSeconds: 3
Optional environment variables¶
Most configuration happens in the UI. These variables tune the deployment and apply at startup:
| Variable | Default | Purpose |
|---|---|---|
RELEASETRACKER_DB_PATH |
data/releases.db |
Database path; the key file and backups directory live beside it automatically |
RELEASETRACKER_CORS_ORIGINS |
Empty (same-origin only) | Comma-separated explicit HTTP(S) origins; * is not allowed |
RELEASETRACKER_WORKER_POLL_SECONDS |
2 |
Background task poll interval (1–60); higher values save idle resources but delay deployments, notifications, etc. |
RELEASETRACKER_DEPLOYMENT_CONCURRENCY |
1 |
Concurrency slots shared by deployments and restores (1–3); the same target or executor still runs serially |
RELEASETRACKER_READINESS_PULL_GRACE_SECONDS |
1800 |
Kubernetes image pull grace, see Health checks |
RELEASETRACKER_RUNTIME_HEALTH_INTERVAL_SECONDS |
0 |
Post-deployment monitoring, see Read-only monitoring |
RELEASETRACKER_METRICS_TOKEN |
Empty | Enables /metrics, see Metrics |
For backup variables see Online backup. Back up and watch resource usage before raising concurrency; it does not add multi-instance support.
Sign-in and session security¶
- Sign-in is limited to 10 failed requests per minute per client address (100 per minute globally); on
429retry afterRetry-After. Behind a proxy, configure Uvicorn's trusted proxy addresses so clients can be told apart. - Browser sessions use HttpOnly cookies with CSRF protection; under HTTPS they use
Secureand the__Host-prefix, so production needs a correct BASE URL and trusted proxy configuration. - CLI/API clients keep using
/api/auth/tokenand Bearer tokens without cookies.
First login¶
- Open http://localhost:8000.
-
Read the one-time
adminpassword from the first startup log: -
Immediately open User menu → User settings → Change password.
The bootstrap password is logged only on first initialization; restrict log access. If you forget the password, use the local recovery command.
First version check¶
- Create a Tracker with a GitHub source, for example
cli/cli. - Enable the
stablerelease channel, select Release, and keep the default fetch settings. - Save and run a manual check; confirm that versions, sources and release notes appear.
Public sources work anonymously; add credentials if rate-limited. See Trackers and version rules for filtering.
Next steps¶
- Tracking only: Notifications.
- Updating services: Credentials and runtimes → Executors.
- Data directory and backups.
- Reverse proxy and sub-paths.
- Upgrade the instance.
- Local development.
- Deployment troubleshooting.