Add docker-compose file

This commit is contained in:
D. Scott Boggs 2025-05-06 07:52:25 -04:00
parent a834207fee
commit 261b8cbed7
2 changed files with 58 additions and 1 deletions

3
.gitignore vendored
View file

@ -1,4 +1,5 @@
/graphics /graphics
.DS_Store .DS_Store
**/*.secret
**/*.pw **/*.pw
**/*.secret

56
docker-compose.yml Normal file
View file

@ -0,0 +1,56 @@
services:
crabfit-api:
build:
context: ./api
# args:
# adaptor: sql-adaptor (default) | memory-adaptor | datastore-adaptor
# # datastore is for Google Datastore
secrets:
- crabfit database password
- crabfit cron key
environment:
DATABASE_PASSWORD_FILE: /run/secrets/crabfit database password
DATABASE_URL: psql://crabfit@crabfit-database:5432/crabfit
FRONTEND_URL: https://availability.techwork.zone
CRON_KEY_FILE: /run/secrets/crabfit cron key
labels:
traefik.enable: true
traefik.http.routers.crabfit-api.rule: Host(`api.a10y.techwork.zone`)
traefik.http.routers.crabfit-api.tls: true
traefik.http.routers.crabfit-api.tls.certresolver: letsencrypt_standalone
networks:
- crabfit-internal
- public
crabfit-database:
image: postgres:17
secrets: [ 'crabfit database password' ]
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/crabfit database password
POSTGRES_USER: crabfit
POSTGRES_DB: crabfit
volumes:
./mounts/database:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready"]
interval: 30s
timeout: 20s
retries: 3
networks: [ crabfit-internal ]
crabfit-frontend:
build:
context: ./frontend
labels:
traefik.enable: true
traefik.http.routers.crabfit-frontend.rule: (Host(`a10y.techwork.zone`) || Host(`availability.techwork.zone`))
traefik.http.routers.crabfit-frontend.tls: true
traefik.http.routers.crabfit-frontend.tls.certresolver: letsencrypt_standalone
environment:
NEXT_PUBLIC_API_URL: https://api.a10y.techwork.zone
secrets:
crabfit database password:
file: ./postgres.pw
crabfit cron key:
file: ./cron.secret