63 lines
1.8 KiB
YAML
63 lines
1.8 KiB
YAML
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: postgresql://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
|
|
- 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 ]
|
|
|
|
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
|
|
networks: [ public ]
|
|
|
|
|
|
networks:
|
|
crabfit:
|
|
internal: true
|
|
|
|
secrets:
|
|
crabfit-database-password:
|
|
file: ./postgres.pw
|
|
crabfit-cron-key:
|
|
file: ./cron.secret
|