98 lines
2.5 KiB
YAML
98 lines
2.5 KiB
YAML
networks:
|
|
internal:
|
|
web:
|
|
external: true
|
|
|
|
x-django-depends-on: &django-depends-on
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
x-dns: &dns
|
|
dns: 172.17.0.1
|
|
dns_search: funkwhale.test
|
|
|
|
services:
|
|
app:
|
|
extends:
|
|
file: ./compose/app.vue.yml
|
|
service: app
|
|
|
|
api:
|
|
extends:
|
|
file: ./compose/app.django.yml
|
|
service: api
|
|
depends_on:
|
|
<<: *django-depends-on
|
|
app:
|
|
condition: service_healthy
|
|
<<: *dns
|
|
|
|
worker:
|
|
extends:
|
|
file: ./compose/app.django.yml
|
|
service: worker
|
|
depends_on:
|
|
<<: *django-depends-on
|
|
<<: *dns
|
|
|
|
web:
|
|
extends:
|
|
file: ./compose/app.nginx.yml
|
|
service: web
|
|
depends_on:
|
|
app:
|
|
condition: service_healthy
|
|
api:
|
|
condition: service_healthy
|
|
networks:
|
|
- web
|
|
- internal
|
|
labels:
|
|
- 'traefik.enable=true'
|
|
|
|
- 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.rule=Host(`${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}`)'
|
|
- 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.entrypoints=web'
|
|
- 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.middlewares=redirect-scheme@file'
|
|
|
|
- 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.rule=Host(`${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}`)'
|
|
- 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.entrypoints=webs'
|
|
|
|
- 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.tls=true'
|
|
- 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.tls.domains[0].main=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}'
|
|
|
|
postgres:
|
|
image: 'postgres:${POSTGRES_VERSION:-15}-alpine'
|
|
environment:
|
|
- POSTGRES_HOST_AUTH_METHOD
|
|
command: postgres ${POSTGRES_ARGS:-}
|
|
volumes:
|
|
- './.state/${COMPOSE_PROJECT_NAME:-funkwhale}/postgres:/var/lib/postgresql/data'
|
|
networks:
|
|
- internal
|
|
healthcheck:
|
|
test: ['CMD-SHELL', 'pg_isready -U postgres']
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
volumes:
|
|
- './.state/${COMPOSE_PROJECT_NAME:-funkwhale}/redis:/data'
|
|
networks:
|
|
- internal
|
|
healthcheck:
|
|
test: ['CMD', 'redis-cli', 'ping']
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 3
|
|
|
|
typesense:
|
|
extends:
|
|
file: ./compose/app.typesense.yml
|
|
service: typesense
|
|
networks:
|
|
- internal
|