Skip to content
beskid Beskid

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

Operate Tracker

Tracker is the delivery authority for versions, roadmap tasks, and bugs. Its SQLite database is the source of truth. GitHub Issues is only the external bug surface.

The pinned Tracker README still describes an Auth hub, but the production Compose definition routes Tracker through Caddy forward-auth to Authentik. Use the production authentication contract for sign-in recovery.

FieldVerified value
PurposeVersioned roadmap, kanban, delivery status, and public bug synchronization.
AudiencePlatform users read status. Maintainers manage delivery records. Operators preserve the database.
Public boundaryhttps://tracker.beskid-lang.org.
Local boundaryThe service listens on http://localhost:3000 in the reference container.
AuthenticationTracker signs users in through Authentik behind the shared Caddy edge.
Persistent stateSQLite persists below TRACKER_DATA_DIR in the tracker-data volume.
Container imageghcr.io/cyber-nomad-collective/beskid-tracker.
Health checkThe container runs an internal GET /api/health on port 3000; the public route requires Authentik.
Deployment ownerRoot platform delivery publishes the image. The Tracker service owns delivery data.
Secret sourceOpenBao path secret/beskid/<lane>/tracker.
MonitoringHealth status, webhook results, and reconciliation output cover runtime and synchronization.
RecoveryRestore the SQLite volume before replaying external bug events. Never replace roadmap state with GitHub data.

Confirm the selected delivery version and the configured TRACKER_DATA_DIR. Treat Tracker as the delivery authority. Obtain a consistent SQLite backup before data maintenance.

  1. Inspect the Tracker container health state against the service contract’s internal GET /api/health on port 3000.
  2. Record the internal healthcheck status.
  3. Verify that the configured volume contains the active SQLite database.
  4. Run the read-only reconciliation plan before an import or bug synchronization change.

The internal /api/health check succeeds. An anonymous request to the public route receives the Authentik sign-in redirect, which is not backend health evidence. SQLite remains the delivery authority, and GitHub synchronization affects only eligible bugs.

If the internal healthcheck fails, inspect the volume mount and session configuration. If reconciliation differs from the expected plan, stop the mutation. Then restore the SQLite backup, redeploy the prior image, and replay only verified bug events.

For signed-in delivery reading, see Read Tracker. For authorized delivery changes, change the Standard without changing delivery ownership.