2d57db8182
check / flake-check (pull_request) Has been cancelled
Lays out the agreed shape from the design discussion: one flake at the root with three nixosConfigurations (mqtt-ingest, db-host, app-host), vendored Supabase docker-compose pointed at the external db-host, Caddy → Kong → PostgREST/GoTrue, a Go MQTT→Postgres ingester stub, deploy-rs node map, and a Gitea Actions workflow that deploys in db → app → ingest order on push to main. No real implementation yet — every host module has TODOs marking the gaps (real hardware config, actual hostnames, HiveMQ packaging, vendor the full upstream Supabase compose, etc.).
68 lines
2.3 KiB
YAML
68 lines
2.3 KiB
YAML
# Gebos — vendored Supabase compose stack.
|
|
#
|
|
# TODO: copy the full official compose from
|
|
# https://github.com/supabase/supabase/blob/master/docker/docker-compose.yml
|
|
# and apply the three modifications described in ./README.md:
|
|
# - drop the `db` service
|
|
# - replace `db:5432` / `postgres:5432` with ${POSTGRES_HOST}:${POSTGRES_PORT}
|
|
# - bind Studio to ${STUDIO_BIND}:3000 (default 127.0.0.1)
|
|
#
|
|
# The skeleton below names the services we'll keep and the env vars each one
|
|
# reads, so reviewers can sanity-check the topology before the real compose
|
|
# lands.
|
|
|
|
services:
|
|
kong:
|
|
image: kong:2.8.1
|
|
restart: unless-stopped
|
|
ports:
|
|
- "127.0.0.1:8000:8000/tcp" # Caddy proxies api.ge-bos.de here
|
|
environment:
|
|
KONG_DATABASE: "off"
|
|
KONG_DECLARATIVE_CONFIG: /home/kong/kong.yml
|
|
volumes:
|
|
- ./kong.yml:/home/kong/kong.yml:ro
|
|
|
|
auth:
|
|
image: supabase/gotrue:v2.158.1
|
|
restart: unless-stopped
|
|
environment:
|
|
GOTRUE_DB_DRIVER: postgres
|
|
GOTRUE_DB_DATABASE_URL: postgres://supabase_auth_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
|
|
GOTRUE_SITE_URL: https://app.ge-bos.de
|
|
GOTRUE_JWT_SECRET: ${JWT_SECRET}
|
|
GOTRUE_JWT_EXP: "3600"
|
|
API_EXTERNAL_URL: https://api.ge-bos.de
|
|
|
|
rest:
|
|
image: postgrest/postgrest:v12.0.2
|
|
restart: unless-stopped
|
|
environment:
|
|
PGRST_DB_URI: postgres://authenticator:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
|
|
PGRST_DB_SCHEMAS: public
|
|
PGRST_JWT_SECRET: ${JWT_SECRET}
|
|
PGRST_DB_ANON_ROLE: anon
|
|
|
|
studio:
|
|
image: supabase/studio:20240326-5e5586d
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${STUDIO_BIND}:3000:3000/tcp" # never bind to 0.0.0.0
|
|
environment:
|
|
STUDIO_PG_META_URL: http://meta:8080
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
DEFAULT_ORGANIZATION_NAME: Gebos
|
|
SUPABASE_URL: https://api.ge-bos.de
|
|
DASHBOARD_USERNAME: gebos
|
|
DASHBOARD_PASSWORD: ${DASHBOARD_PASSWORD}
|
|
|
|
meta:
|
|
image: supabase/postgres-meta:v0.83.2
|
|
restart: unless-stopped
|
|
environment:
|
|
PG_META_DB_HOST: ${POSTGRES_HOST}
|
|
PG_META_DB_PORT: ${POSTGRES_PORT}
|
|
PG_META_DB_NAME: ${POSTGRES_DB}
|
|
PG_META_DB_USER: supabase_admin
|
|
PG_META_DB_PASSWORD: ${POSTGRES_PASSWORD}
|