The default docker-setup exposes the API container directly on port 5000. This should not be the case and is not needed, as API access is all routed through the frontend nginx reverse proxy. Part-of: <https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/2324>
85 lines
2.8 KiB
YAML
85 lines
2.8 KiB
YAML
version: "3"
|
|
|
|
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
|
|
|
|
redis:
|
|
restart: unless-stopped
|
|
env_file: .env
|
|
image: redis:7-alpine
|
|
volumes:
|
|
- ./data/redis:/data
|
|
|
|
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
|
|
command: celery -A funkwhale_api.taskapp worker -l 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}
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
env_file: .env
|
|
command: celery -A funkwhale_api.taskapp beat --pidfile= -l INFO
|
|
|
|
api:
|
|
restart: unless-stopped
|
|
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
env_file: .env
|
|
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/conf.d/funkwhale.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"
|