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