Docker registry self-hosting

Run Logister from versioned Docker images in infrastructure you control.

Logister publishes release images to GitHub Container Registry and Docker Hub, plus optional Quay mirrors when configured, so self-hosters can pin a known version, run separate web and worker processes, and keep PostgreSQL, Redis, SMTP, optional S3 archive storage, and optional ClickHouse under their own operational plan.

Release images

Pin the app image that matches the release notes.

After CI validates a version-changing main commit, release automation builds one canonical image and verifies the same digest through public GHCR, Docker Hub, and optional Quay references before deploying it to Fly. For stable self-hosting, pin a version tag such as ghcr.io/taimoorq/logister:v3.5 or docker.io/taimoorq/logister:v3.5 and review the matching changelog entry before upgrading.

Process model

The Docker shape mirrors the Rails app architecture.

ContainerResponsibility
WebRuns the Rails UI, auth, project management, dashboards, and ingest endpoints.
WorkerRuns Sidekiq for email delivery, project notifications, digests, async ingestion, optional ClickHouse writes, and archive/prune tasks.
PostgreSQLStores accounts, projects, API keys, events, grouped errors, notification preferences, and sharing.
RedisBacks Sidekiq, caching, and rate-friendly dashboard behavior.
S3-compatible storageOptional Active Storage target for compressed telemetry archives.
ClickHouseOptional analytics store for higher-volume event and span exploration.

Self-hosting choices

Use managed data stores or a single-host stack.

Teams can run only the Logister web and worker containers while using managed PostgreSQL, Redis, and SMTP, or they can use a Compose-style single-host stack for the full footprint. The same environment reference applies in both cases.

  • Keep secrets in the deploy platform or host secret store, not in the repository.
  • Run database migrations in a release phase or explicit one-off task.
  • Keep at least one worker process running so email, digests, and async ingestion continue.

Fit check

Docker gives a repeatable app image, not a complete managed service.

The image packages the Rails app and worker code. Your deployment still owns PostgreSQL durability, Redis availability, secret storage, SMTP delivery, HTTPS, backups, and upgrades. Use managed services around the image when your team does not want to operate every dependency on one host.

Verify

Confirm the image, process model, and first event before expanding.

  1. Pull the pinned image tag from GHCR or Docker Hub and record the matching changelog version.
  2. Run the web process, worker process, PostgreSQL, Redis, and SMTP configuration in the target environment.
  3. Apply migrations before sending traffic to the web container.
  4. Check the health endpoint and create one project from the UI.
  5. Send one test event and confirm it appears in the project inbox while the worker remains healthy.

Next steps

Start with the Docker guide and environment reference.