ansible/roles/music/templates/docker-compose.yml.j2

109 lines
3.1 KiB
Django/Jinja

version: "{{ compose_version }}"
networks:
proxy:
name: "{{ traefik_network }}"
db:
name: funkwhale_db
volumes:
redis:
name: funkwhale_redis
db:
name: funkwhale_db
static:
name: funkwhale_static
services:
celeryworker:
image: "funkwhale/api:{{ funkwhale_version }}"
container_name: funkwhale_celeryworker
env_file:
- ./conf.env
environment:
- C_FORCE_ROOT=true
volumes:
- "{{ funkwhale_import_music_directory_host }}:{{ funkwhale_import_music_directory }}:ro"
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
command: celery -A funkwhale_api.taskapp worker -l INFO --concurrency=10
networks:
- db
restart: unless-stopped
celerybeat:
image: "funkwhale/api:{{ funkwhale_version }}"
container_name: funkwhale_celerybeat
env_file: ./conf.env
command: celery -A funkwhale_api.taskapp beat -l INFO
networks:
- db
restart: unless-stopped
api:
image: "funkwhale/api:{{ funkwhale_version }}"
container_name: funkwhale_api
env_file:
- ./conf.env
volumes:
- "{{ funkwhale_import_music_directory_host }}:{{ funkwhale_import_music_directory }}:ro"
- "static:{{ funkwhale_static_root }}"
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
labels:
traefik.http.routers.funkwhale_api.entrypoints: websecure
traefik.http.routers.funkwhale_api.rule: "Host(`api.{{ funkwhale_subdomain }}.{{ domain_name }}`)"
traefik.http.services.funkwhale_api.loadbalancer.server.port: "{{ funkwhale_api_port }}"
traefik.enable: true
networks:
- proxy
- db
restart: unless-stopped
front:
image: funkwhale/front:{{ funkwhale_version }}
container_name: funkwhale_front
env_file: ./conf.env
volumes:
- "{{ funkwhale_import_music_directory_host }}:{{ funkwhale_import_music_directory }}:ro"
- "static:/usr/share/nginx/html/staticfiles:ro"
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
labels:
traefik.http.routers.funkwhale.entrypoints: websecure
traefik.http.routers.funkwhale.rule: "Host(`{{ funkwhale_subdomain }}.{{ domain_name }}`)"
traefik.http.services.funkwhale.loadbalancer.server.port: "{{ funkwhale_nginx_port }}"
traefik.enable: true
networks:
- proxy
restart: unless-stopped
redis:
image: "redis:{{ redis_version }}"
container_name: funkwhale_redis
env_file: ./conf.env
volumes:
- redis:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
- db
restart: unless-stopped
db:
image: "postgres:{{ postgres_version }}"
container_name: funkwhale_postgres
environment:
POSTGRES_USER: funkwhale
POSTGRES_DB: funkwhale
POSTGRES_PASSWORD: "{{ funkwhale_db_password }}"
TZ: Europe/Paris
PGTZ: Europe/Paris
# Don't mount /etc/localtime, it screws with pg_timezone_names
# TZ and PGTZ environment are sufficient.
volumes:
- db:/var/lib/postgresql/data
networks:
- db
restart: unless-stopped