feat(deploy): docker compose skeleton #22

Open
claude-desktop wants to merge 1 commit from feat/compose-skeleton into main
Collaborator

Closes #2.

Summary

Adds the reference single-host Docker Compose deployment.

Included

  • docker-compose.yml — 13 services: caddy, koinos-backend (placeholder), koinos-web (placeholder), postgres:16, redis:7, hapi-fhir, orthanc, minio, tuwunel, livekit, coturn (host network), zitadel, lldap. All with healthchecks, named volumes, depends_on.
  • docker-compose.dev.yml — exposes internal ports on 127.0.0.1 for local dev.
  • docker-compose.observability.yml — prometheus, grafana, loki.
  • .env.example — all env vars with changeme-* placeholders.
  • deploy/caddy/Caddyfile — routes for /api, /auth, /_matrix, /.well-known/matrix, /fhir, /livekit, / catch-all.
  • deploy/placeholder/{backend,web}.html — stub pages until #3 / #4.
  • deploy/livekit/livekit.yaml, deploy/tuwunel/tuwunel.toml — per-service configs.
  • deploy/postgres/init/01-create-databases.sql — roles + DBs for hapi/orthanc/zitadel.
  • deploy/README.md — operator docs.

Acceptance criteria

Compose

  • Core services defined with healthchecks and named volumes
  • Dev overlay exposes internal ports on localhost
  • Observability overlay adds prometheus/grafana/loki

Config

  • .env.example lists every variable the stack reads
  • Caddyfile routes every HTTPS-reachable service
  • Per-service configs committed under deploy/<service>/

Docs

  • deploy/README.md documents prerequisites, first run, layout, backups, troubleshooting

Out of scope

  • Real backend image (#3) and web image (#4).
  • koinos-backup helper script — follow-up.
Closes #2. ## Summary Adds the reference single-host Docker Compose deployment. ### Included - `docker-compose.yml` — 13 services: caddy, koinos-backend (placeholder), koinos-web (placeholder), postgres:16, redis:7, hapi-fhir, orthanc, minio, tuwunel, livekit, coturn (host network), zitadel, lldap. All with healthchecks, named volumes, depends_on. - `docker-compose.dev.yml` — exposes internal ports on 127.0.0.1 for local dev. - `docker-compose.observability.yml` — prometheus, grafana, loki. - `.env.example` — all env vars with `changeme-*` placeholders. - `deploy/caddy/Caddyfile` — routes for `/api`, `/auth`, `/_matrix`, `/.well-known/matrix`, `/fhir`, `/livekit`, `/` catch-all. - `deploy/placeholder/{backend,web}.html` — stub pages until #3 / #4. - `deploy/livekit/livekit.yaml`, `deploy/tuwunel/tuwunel.toml` — per-service configs. - `deploy/postgres/init/01-create-databases.sql` — roles + DBs for hapi/orthanc/zitadel. - `deploy/README.md` — operator docs. ## Acceptance criteria ### Compose - [x] Core services defined with healthchecks and named volumes - [x] Dev overlay exposes internal ports on localhost - [x] Observability overlay adds prometheus/grafana/loki ### Config - [x] `.env.example` lists every variable the stack reads - [x] Caddyfile routes every HTTPS-reachable service - [x] Per-service configs committed under `deploy/<service>/` ### Docs - [x] `deploy/README.md` documents prerequisites, first run, layout, backups, troubleshooting ## Out of scope - Real backend image (#3) and web image (#4). - `koinos-backup` helper script — follow-up.
Adds the reference single-host Docker Compose deployment with all
v0.1 services (caddy, postgres, redis, hapi-fhir, orthanc, minio,
tuwunel, livekit, coturn, zitadel, lldap) plus placeholder backend
and web containers. Dev and observability overlays, Caddyfile
routing, per-service configs and operator README are included.

Refs #2

Signed-off-by: Charles Jacquin <charles@jacquin.app>
Some required checks are missing.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/compose-skeleton:feat/compose-skeleton
git switch feat/compose-skeleton
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/koinos!22
No description provided.