152 lines
4.8 KiB
YAML
152 lines
4.8 KiB
YAML
services:
|
|
postgres:
|
|
restart: unless-stopped
|
|
env_file: .env
|
|
environment:
|
|
- "POSTGRES_HOST_AUTH_METHOD=trust"
|
|
image: postgres:15-alpine
|
|
volumes:
|
|
- ./data/postgres:/var/lib/postgresql/data
|
|
networks:
|
|
# - default
|
|
- traefik-public
|
|
|
|
redis:
|
|
restart: unless-stopped
|
|
env_file: .env
|
|
image: redis:7-alpine
|
|
volumes:
|
|
- ./data/redis:/data
|
|
networks:
|
|
# - default
|
|
- traefik-public
|
|
|
|
celeryworker:
|
|
restart: unless-stopped
|
|
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
env_file: .env
|
|
# Celery workers handle background tasks (such file imports or federation
|
|
# messaging). The more processes a worker gets, the more tasks
|
|
# can be processed in parallel. However, more processes also means
|
|
# a bigger memory footprint.
|
|
# By default, a worker will span a number of process equal to your number
|
|
# of CPUs. You can adjust this, by explicitly setting the --concurrency
|
|
# flag:
|
|
# celery -A funkwhale_api.taskapp worker -l INFO --concurrency=4
|
|
networks:
|
|
# - default
|
|
- traefik-public
|
|
command:
|
|
- celery
|
|
- --app=funkwhale_api.taskapp
|
|
- worker
|
|
- --loglevel=INFO
|
|
- --concurrency=${CELERYD_CONCURRENCY-0}
|
|
environment:
|
|
- C_FORCE_ROOT=true
|
|
volumes:
|
|
- "${MUSIC_DIRECTORY_SERVE_PATH-/srv/funkwhale/data/music}:${MUSIC_DIRECTORY_PATH-/music}:ro"
|
|
- "${MEDIA_ROOT}:${MEDIA_ROOT}"
|
|
|
|
celerybeat:
|
|
restart: unless-stopped
|
|
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
|
|
networks:
|
|
# - default
|
|
- traefik-public
|
|
command:
|
|
- celery
|
|
- --app=funkwhale_api.taskapp
|
|
- beat
|
|
- --loglevel=INFO
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
env_file: .env
|
|
|
|
api:
|
|
restart: unless-stopped
|
|
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
env_file: .env
|
|
networks:
|
|
# - default
|
|
- traefik-public
|
|
volumes:
|
|
- "${MUSIC_DIRECTORY_SERVE_PATH-/srv/funkwhale/data/music}:${MUSIC_DIRECTORY_PATH-/music}:ro"
|
|
- "${MEDIA_ROOT}:${MEDIA_ROOT}"
|
|
- "${STATIC_ROOT}:${STATIC_ROOT}"
|
|
|
|
front:
|
|
restart: unless-stopped
|
|
image: funkwhale/front:${FUNKWHALE_VERSION:-latest}
|
|
depends_on:
|
|
- api
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
# Override those variables in your .env file if needed
|
|
- "NGINX_MAX_BODY_SIZE=${NGINX_MAX_BODY_SIZE-100M}"
|
|
volumes:
|
|
# Uncomment if you want to use your previous nginx config, please let us
|
|
# know what special configuration you need, so we can support it with out
|
|
# upstream nginx configuration!
|
|
# - "./nginx/funkwhale.template:/etc/nginx/nginx.conf:ro"
|
|
# - "./nginx/funkwhale.template:/etc/nginx/templates/default.conf.template:ro"
|
|
# - "./nginx/funkwhale_proxy.conf:/etc/nginx/funkwhale_proxy.conf:ro"
|
|
|
|
- "${MUSIC_DIRECTORY_SERVE_PATH-/srv/funkwhale/data/music}:${MUSIC_DIRECTORY_PATH-/music}:ro"
|
|
- "${MEDIA_ROOT}:${MEDIA_ROOT}:ro"
|
|
- "${STATIC_ROOT}:/usr/share/nginx/html/staticfiles:ro"
|
|
# ports:
|
|
# # override those variables in your .env file if needed
|
|
# - "${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT}:80"
|
|
|
|
labels:
|
|
traefik.enable: true
|
|
traefik.http.services.funkwhale.loadbalancer.server.port: 80
|
|
traefik.http.routers.funkwhale.entrypoints: websecure
|
|
traefik.http.routers.funkwhale.rule: Host(`audio.alice.ufsj.edu.br`)
|
|
# traefik.http.routers.funkwhale.middlewares: "funkwhale"
|
|
traefik.http.middlewares.funkwhale.headers.stsSeconds: '15552000'
|
|
traefik.http.middlewares.funkwhale.headers.framedeny: true
|
|
traefik.http.middlewares.funkwhale.headers.stsIncludeSubdomains: true
|
|
traefik.http.middlewares.funkwhale.headers.customFrameOptionsValue: SAMEORIGIN
|
|
traefik.http.middlewares.funkwhale.headers.stsPreload: true
|
|
traefik.http.middlewares.funkwhale.headers.sslredirect: true
|
|
traefik.http.middlewares.funkwhale.headers.customrequestheaders.X-Forwarded-Proto: https
|
|
# traefik.http.middlewares.funkwhale.headers.forwardedHeaders: true
|
|
# traefik.http.middlewares.funkwhale.headers.customrequestheaders.X-Forwarded-User: https
|
|
# traefik.http.middlewares.funkwhale.forwardauth.trustforwardheader: true
|
|
# traefik.http.middlewares.funkwhale.forwardauth.authresponseheaders: "X-Forwarded-User"
|
|
|
|
|
|
|
|
networks:
|
|
# - default
|
|
- traefik-public
|
|
|
|
typesense:
|
|
restart: unless-stopped
|
|
env_file:
|
|
- .env
|
|
image: typesense/typesense:0.24.0
|
|
volumes:
|
|
- ./typesense/data:/data
|
|
command: --data-dir /data --enable-cors
|
|
profiles:
|
|
- typesense
|
|
networks:
|
|
# - default
|
|
- traefik-public
|
|
|
|
networks:
|
|
# default:
|
|
traefik-public:
|
|
external: true
|