Finished Funkwhale implementation

This commit is contained in:
2025-07-02 02:07:41 +02:00
parent 28b41382d2
commit 2ccfdf0de6
10 changed files with 140 additions and 48 deletions

View File

@@ -1,5 +1,4 @@
services:
# @todo Test which containers can be removed crom cental_database networks
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
{% include 'templates/docker/services/redis.yml.j2' %}
@@ -14,53 +13,51 @@ services:
# flag:
# celery -A funkwhale_api.taskapp worker -l INFO --concurrency=4
{% include 'roles/docker-compose/templates/services/base.yml.j2' %}
image: "{{ applications[application_id].images.api }}"
image: "{{ applications | get_docker_image(application_id,'api') }}"
command: celery -A funkwhale_api.taskapp worker -l INFO --concurrency={{celeryd_concurrency}}
environment:
- C_FORCE_ROOT=true
volumes:
- "data:{{media_root}}"
- "music:{{music_directory_path}}:ro"
- "data:{{funkwhale_media_root}}"
- "music:{{funkwhale_music_directory_path}}:ro"
{% include 'templates/docker/container/depends-on-database-redis.yml.j2' %}
{% include 'templates/docker/container/networks.yml.j2' %}
celerybeat:
{% include 'roles/docker-compose/templates/services/base.yml.j2' %}
image: "{{ applications[application_id].images.api }}"
image: "{{ applications | get_docker_image(application_id,'api') }}"
command: celery -A funkwhale_api.taskapp beat --pidfile= -l INFO
{% include 'templates/docker/container/depends-on-database-redis.yml.j2' %}
{% include 'templates/docker/container/networks.yml.j2' %}
api:
{% include 'roles/docker-compose/templates/services/base.yml.j2' %}
image: "{{ applications[application_id].images.api }}"
image: "{{ applications | get_docker_image(application_id,'api') }}"
volumes:
- "music:{{music_directory_path}}:ro"
- "data:{{media_root}}"
- "static_root:{{static_root}}"
- "music:{{funkwhale_music_directory_path}}:ro"
- "data:{{funkwhale_media_root}}"
- "funkwhale_static_root:{{funkwhale_static_root}}"
ports:
- "5000" # Exposes API just in local docker network to be used by front container
- "{{ funkwhale_docker_api_port }}"
{% include 'templates/docker/container/depends-on-database-redis.yml.j2' %}
{% include 'templates/docker/container/networks.yml.j2' %}
front:
{% include 'roles/docker-compose/templates/services/base.yml.j2' %}
image: "{{ applications[application_id].images.front }}"
image: "{{ applications | get_docker_image(application_id,'front') }}"
depends_on:
- api
environment:
# Override those variables in your .env file if needed
- "NGINX_MAX_BODY_SIZE=100M"
volumes:
- "data:{{media_root}}:ro"
#- "{{static_root}}:{{static_root}}:ro"
- "data:{{funkwhale_media_root}}:ro"
#- "{{funkwhale_static_root}}:{{funkwhale_static_root}}:ro"
ports:
# override those variables in your .env file if needed
- "127.0.0.1:{{ports.localhost.http[application_id]}}:80"
typesense:
{% include 'roles/docker-compose/templates/services/base.yml.j2' %}
image: "{{ applications[application_id].images.typesense }}"
image: "{{ applications[application_id].docker.images.typesense }}"
volumes:
- ./typesense/data:/data
command: --data-dir /data --enable-cors
@@ -69,7 +66,7 @@ services:
{% include 'templates/docker/compose/volumes.yml.j2' %}
data:
static_root:
funkwhale_static_root:
redis:
music:

View File

@@ -17,11 +17,7 @@
#
# Docker only
# -----------
MUSIC_DIRECTORY_PATH={{music_directory_path}}
# Assuming that the following variable isn't used anymore.
# @todo remove it if this is true
FUNKWHALE_VERSION={{applications.funkwhale.version}}
MUSIC_DIRECTORY_PATH={{funkwhale_music_directory_path}}
# End of docker-only configuration
@@ -32,7 +28,7 @@ FUNKWHALE_VERSION={{applications.funkwhale.version}}
FUNKWHALE_API_IP=127.0.0.1
# Assuming that the following variable isn't used anymore.
# @todo remove it if this is true
FUNKWHALE_API_PORT={{ports.localhost.http[application_id]}}:
FUNKWHALE_API_PORT={{ funkwhale_docker_api_port }}
# The number of web workers to start in parallel. Higher means you can handle
# more concurrent requests, but also leads to higher CPU/Memory usage
@@ -46,6 +42,9 @@ FUNKWHALE_PROTOCOL={{ web_protocol }}
# Log level (debug, info, warning, error, critical)
LOGLEVEL={% if enable_debug | bool %}debug{% else %}error{% endif %}
# Could be that this is redundant
DJANGO_LOGLEVEL={% if enable_debug | bool %}debug{% else %}error{% endif %}
# Configure e-mail sending using this variale
# By default, funkwhale will output e-mails sent to stdout
# here are a few examples for this setting
@@ -86,12 +85,12 @@ CELERYD_CONCURRENCY={{celeryd_concurrency}}
# Where media files (such as album covers or audio tracks) should be stored
# on your system?
# (Ensure this directory actually exists)
MEDIA_ROOT={{media_root}}
MEDIA_ROOT={{funkwhale_media_root}}
# Where static files (such as API css or icons) should be compiled
# on your system?
# (Ensure this directory actually exists)
STATIC_ROOT={{static_root}}
STATIC_ROOT={{funkwhale_static_root}}
# which settings module should django use?
# You don't have to touch this unless you really know what you're doing
@@ -106,14 +105,17 @@ DJANGO_SECRET_KEY={{applications[application_id].credentials.django_secret}}
# using a LDAP directory.
# Have a look at https://docs.funkwhale.audio/installation/ldap.html for
# detailed instructions.
# Commit: https://gitea.fudaoyuan.icu/Github/funkwhale/commit/4ce46ff2a000646a3dbab80f0ca9fd8d7f8ae24c
LDAP_ENABLED = True
LDAP_SERVER_URI = "{{ ldap.server.uri }}"
LDAP_BIND_DN = "{{ ldap.dn.administrator.data }}"
LDAP_BIND_PASSWORD = "{{ ldap.bind_credential }}"
#LDAP_SEARCH_FILTER = "{{ ldap.filters.users.login | replace('%' ~ ldap.attributes.user_id, '{0}') }}"
LDAP_START_TLS = False
LDAP_ROOT_DN = "{{ldap.dn.root}}"
#LDAP_USER_ATTR_MAP = "first_name:{{ ldap.attributes.firstname }}, last_name:{{ ldap.attributes.surname }}, username:{{ ldap.attributes.user_id }}, email:{{ ldap.attributes.mail }}"
LDAP_ENABLED = True
LDAP_SERVER_URI = "{{ldap.server.uri}}"
LDAP_BIND_DN = "{{ldap.dn.administrator.data}}"
LDAP_BIND_PASSWORD = "{{ldap.bind_credential}}"
LDAP_SEARCH_FILTER = "(|(cn={0})(mail={0}))"
LDAP_START_TLS = False
LDAP_ROOT_DN = "{{ldap.dn.root}}"
{% endif %}
FUNKWHALE_FRONTEND_PATH=/srv/funkwhale/front/dist