Added funkwhale draft and set variablesfor db ports

This commit is contained in:
Kevin Veen-Birkenbach 2025-01-28 16:54:39 +01:00
parent 6f851973fa
commit 3244b7d62e
19 changed files with 62 additions and 32 deletions

View File

@ -232,6 +232,9 @@ bluesky_pds_version: "latest"
#### Friendica #### Friendica
friendica_version: "latest" friendica_version: "latest"
#### Funkwhale
funkwhale_version: "1.4.0"
#### Gitea #### Gitea
gitea_version: "latest" gitea_version: "latest"

View File

@ -12,7 +12,7 @@ EMAIL_SMTP_USE_TLS={{ system_email_tls | upper }}
DATABASE_USER={{ database_username }} DATABASE_USER={{ database_username }}
DATABASE_NAME={{ database_name }} DATABASE_NAME={{ database_name }}
DATABASE_HOST={{ database_host }} DATABASE_HOST={{ database_host }}
DATABASE_PORT=5432 DATABASE_PORT={{database_port}}
DATABASE_PASSWORD={{ database_password }} DATABASE_PASSWORD={{ database_password }}
REDIS_URL=redis://redis:6379 REDIS_URL=redis://redis:6379

View File

@ -37,7 +37,7 @@ services:
FRIENDICA_LOGFILE: php://stdout FRIENDICA_LOGFILE: php://stdout
# Database Configuration # Database Configuration
MYSQL_HOST: {{database_host}}:3306 MYSQL_HOST: "{{database_host}}:{{database_port}}"
MYSQL_DATABASE: {{database_name}} MYSQL_DATABASE: {{database_name}}
MYSQL_USER: {{database_username}} MYSQL_USER: {{database_username}}
MYSQL_PASSWORD: {{database_password}} MYSQL_PASSWORD: {{database_password}}

View File

@ -1,8 +1,18 @@
services: services:
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
{% include 'templates/docker/services/redis.yml.j2' %} {% include 'templates/docker/services/redis.yml.j2' %}
celeryworker: celeryworker:
# 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
restart: {{docker_restart_policy}} restart: {{docker_restart_policy}}
image: funkwhale/api:${FUNKWHALE_VERSION:-latest} image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
env_file: .env env_file: .env
@ -11,10 +21,10 @@ services:
- C_FORCE_ROOT=true - C_FORCE_ROOT=true
volumes: volumes:
- "data:${MEDIA_ROOT}" - "data:${MEDIA_ROOT}"
- "music:${MUSIC_DIRECTORY_PATH}:ro"
{% include 'templates/docker/container/depends-on-database-redis.yml.j2' %} {% include 'templates/docker/container/depends-on-database-redis.yml.j2' %}
{% include 'templates/docker/container/networks.yml.j2' %} {% include 'templates/docker/container/networks.yml.j2' %}
celerybeat: celerybeat:
restart: {{docker_restart_policy}} restart: {{docker_restart_policy}}
image: funkwhale/api:${FUNKWHALE_VERSION:-latest} image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
@ -26,11 +36,11 @@ services:
api: api:
restart: {{docker_restart_policy}} restart: {{docker_restart_policy}}
image: funkwhale/api:${FUNKWHALE_VERSION:-latest} image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
depends_on:
env_file: .env env_file: .env
volumes: volumes:
- "music:${MUSIC_DIRECTORY_PATH}:ro"
- "data:${MEDIA_ROOT}" - "data:${MEDIA_ROOT}"
#- "${STATIC_ROOT}:${STATIC_ROOT}" - "static_root:${STATIC_ROOT}"
ports: ports:
- "5000" - "5000"
{% include 'templates/docker/container/depends-on-database-redis.yml.j2' %} {% include 'templates/docker/container/depends-on-database-redis.yml.j2' %}
@ -53,9 +63,22 @@ services:
# override those variables in your .env file if needed # override those variables in your .env file if needed
- "${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT}:80" - "${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT}:80"
{% include 'templates/docker/container/networks.yml.j2' %} {% include 'templates/docker/container/networks.yml.j2' %}
typesense:
restart: {{docker_restart_policy}}
env_file:
- .env
image: typesense/typesense:0.24.0
volumes:
- ./typesense/data:/data
command: --data-dir /data --enable-cors
profiles:
- typesense
{% include 'templates/docker/compose/volumes.yml.j2' %} {% include 'templates/docker/compose/volumes.yml.j2' %}
data: data:
static_root:
redis: redis:
music:
{% include 'templates/docker/compose/networks.yml.j2' %} {% include 'templates/docker/compose/networks.yml.j2' %}

View File

@ -16,6 +16,7 @@
# #
# Docker only # Docker only
# ----------- # -----------
MUSIC_DIRECTORY_PATH=/music
FUNKWHALE_VERSION={{funkwhale_version}} FUNKWHALE_VERSION={{funkwhale_version}}
@ -52,14 +53,14 @@ LOGLEVEL=error
# (returns `noreply%40youremail.host`) # (returns `noreply%40youremail.host`)
# EMAIL_CONFIG=smtp://user:password@youremail.host:25 # EMAIL_CONFIG=smtp://user:password@youremail.host:25
# EMAIL_CONFIG=smtp+ssl://user:password@youremail.host:465 # EMAIL_CONFIG=smtp+ssl://user:password@youremail.host:465
# EMAIL_CONFIG=smtp+tls://user:password@youremail.host:{{system_email_smtp_port}} EMAIL_CONFIG=smtp+tls://{{system_email_local}}:{{system_email_password}}@{{system_email_host}}:{{system_email_smtp_port}}
# Make e-mail verification mandatory before using the service # Make e-mail verification mandatory before using the service
# Doesn't apply to admins. # Doesn't apply to admins.
# ACCOUNT_EMAIL_VERIFICATION_ENFORCE=false # ACCOUNT_EMAIL_VERIFICATION_ENFORCE=false
# The e-mail address to use to send system e-mails. # The e-mail address to use to send system e-mails.
# DEFAULT_FROM_EMAIL=noreply@yourdomain DEFAULT_FROM_EMAIL={{system_email_from}}
# Depending on the reverse proxy used in front of your funkwhale instance, # Depending on the reverse proxy used in front of your funkwhale instance,
# the API will use different kind of headers to serve audio files # the API will use different kind of headers to serve audio files
@ -109,4 +110,6 @@ DJANGO_SECRET_KEY={{funkwhale_django_secret}}
FUNKWHALE_FRONTEND_PATH=/srv/funkwhale/front/dist FUNKWHALE_FRONTEND_PATH=/srv/funkwhale/front/dist
# Nginx related configuration # Nginx related configuration
NGINX_MAX_BODY_SIZE=100M NGINX_MAX_BODY_SIZE=100M
DATABASE_URL = postgresql://{{database_username}}:{{database_password}}@{{database_host}}:{{database_port}}/{{ database_name }}

View File

@ -11,7 +11,7 @@ services:
- USER_UID=1000 - USER_UID=1000
- USER_GID=1000 - USER_GID=1000
- DB_TYPE=mysql - DB_TYPE=mysql
- DB_HOST={{database_host}}:3306 - DB_HOST={{database_host}}:{{database_port}}
- DB_NAME={{database_name}} - DB_NAME={{database_name}}
- DB_USER={{database_username}} - DB_USER={{database_username}}
- DB_PASSWD={{database_password}} - DB_PASSWD={{database_password}}

View File

@ -16,7 +16,7 @@ services:
gitlab_rails['db_adapter'] = 'postgresql' gitlab_rails['db_adapter'] = 'postgresql'
gitlab_rails['db_encoding'] = 'utf8' gitlab_rails['db_encoding'] = 'utf8'
gitlab_rails['db_host'] = '{{database_host}}' gitlab_rails['db_host'] = '{{database_host}}'
gitlab_rails['db_port'] = 5432 gitlab_rails['db_port'] = '{{database_port}}''
gitlab_rails['db_username'] = '{{database_username}}' gitlab_rails['db_username'] = '{{database_username}}'
gitlab_rails['db_password'] = '{{database_password}}' gitlab_rails['db_password'] = '{{database_password}}'
gitlab_rails['db_database'] = "{{database_name}}" gitlab_rails['db_database'] = "{{database_name}}"

View File

@ -7,7 +7,7 @@ services:
logging: logging:
driver: journald driver: journald
environment: environment:
JOOMLA_DB_HOST: "{{database_host}}:3306" JOOMLA_DB_HOST: "{{database_host}}:{{database_port}}"
JOOMLA_DB_USER: "{{database_username}}" JOOMLA_DB_USER: "{{database_username}}"
JOOMLA_DB_PASSWORD: "{{database_password}}" JOOMLA_DB_PASSWORD: "{{database_password}}"
JOOMLA_DB_NAME: "{{database_name}}" JOOMLA_DB_NAME: "{{database_name}}"

View File

@ -16,7 +16,7 @@ address = "0.0.0.0:9000"
# Database. # Database.
[db] [db]
host = "{{database_host}}" host = "{{database_host}}"
port = 5432 port = {{database_port}}
user = "{{database_username}}" user = "{{database_username}}"
password = "{{database_password}}" password = "{{database_password}}"

View File

@ -17,7 +17,7 @@
volumes: volumes:
- central_mariadb_database:/var/lib/mysql - central_mariadb_database:/var/lib/mysql
published_ports: published_ports:
- "127.0.0.1:3306:3306" # can be that this will be removed if all applications use sockets - "127.0.0.1:{{database_port}}:3306" # can be that this will be removed if all applications use sockets
command: "--transaction-isolation=READ-COMMITTED --binlog-format=ROW" #for nextcloud command: "--transaction-isolation=READ-COMMITTED --binlog-format=ROW" #for nextcloud
restart_policy: "{{docker_restart_policy}}" restart_policy: "{{docker_restart_policy}}"
healthcheck: healthcheck:
@ -46,7 +46,7 @@
login_user: root login_user: root
login_password: "{{ central_mariadb_root_password }}" login_password: "{{ central_mariadb_root_password }}"
login_host: 127.0.0.1 login_host: 127.0.0.1
login_port: 3306 login_port: "{{database_port}}"
- name: "Create database user: {{ database_username }}" - name: "Create database user: {{ database_username }}"
mysql_user: mysql_user:
@ -58,7 +58,7 @@
login_user: root login_user: root
login_password: "{{central_mariadb_root_password}}" login_password: "{{central_mariadb_root_password}}"
login_host: 127.0.0.1 login_host: 127.0.0.1
login_port: 3306 login_port: "{{database_port}}"
- name: Grant database privileges - name: Grant database privileges
ansible.builtin.shell: ansible.builtin.shell:

View File

@ -7,7 +7,7 @@ VAPID_PRIVATE_KEY={{mastodon_vapid_private_key}}
VAPID_PUBLIC_KEY={{mastodon_vapid_public_key}} VAPID_PUBLIC_KEY={{mastodon_vapid_public_key}}
DB_HOST={{database_host}} DB_HOST={{database_host}}
DB_PORT=5432 DB_PORT={{database_port}}
DB_NAME={{database_name}} DB_NAME={{database_name}}
DB_USER={{database_username}} DB_USER={{database_username}}
DB_PASS={{database_password}} DB_PASS={{database_password}}

View File

@ -10,11 +10,11 @@ services:
ports: ports:
- "127.0.0.1:{{http_port}}:80" - "127.0.0.1:{{http_port}}:80"
environment: environment:
MATOMO_DATABASE_HOST: "{{database_host}}:3306" MATOMO_DATABASE_HOST: "{{database_host}}:{{database_port}}"
MATOMO_DATABASE_ADAPTER: "mysql" MATOMO_DATABASE_ADAPTER: "mysql"
MATOMO_DATABASE_USERNAME: "{{database_username}}" MATOMO_DATABASE_USERNAME: "{{database_username}}"
MATOMO_DATABASE_PASSWORD: "{{database_password}}" MATOMO_DATABASE_PASSWORD: "{{database_password}}"
MATOMO_DATABASE_DBNAME: "{{database_name}}" MATOMO_DATABASE_DBNAME: "{{database_name}}"
volumes: volumes:
- data:/var/www/html - data:/var/www/html
{% include 'templates/docker/container/depends-on-just-database.yml.j2' %} {% include 'templates/docker/container/depends-on-just-database.yml.j2' %}

View File

@ -10,7 +10,7 @@ services:
driver: journald driver: journald
environment: environment:
- MOODLE_DATABASE_HOST={{database_host}} - MOODLE_DATABASE_HOST={{database_host}}
- MOODLE_DATABASE_PORT_NUMBER=3306 - MOODLE_DATABASE_PORT_NUMBER={{database_port}}
- MOODLE_DATABASE_USER={{database_username}} - MOODLE_DATABASE_USER={{database_username}}
- MOODLE_DATABASE_NAME={{database_name}} - MOODLE_DATABASE_NAME={{database_name}}
- MOODLE_DATABASE_PASSWORD={{database_password}} - MOODLE_DATABASE_PASSWORD={{database_password}}

View File

@ -19,7 +19,7 @@ services:
MYSQL_DATABASE: "{{database_name}}" MYSQL_DATABASE: "{{database_name}}"
MYSQL_USER: "{{database_username}}" MYSQL_USER: "{{database_username}}"
MYSQL_PASSWORD: "{{database_password}}" MYSQL_PASSWORD: "{{database_password}}"
MYSQL_HOST: {{database_host}}:3306 MYSQL_HOST: "{{database_host}}:{{database_port}}"
# Memory # Memory
PHP_MEMORY_LIMIT: 1G # Required for plugin duplicate finder PHP_MEMORY_LIMIT: 1G # Required for plugin duplicate finder

View File

@ -61,7 +61,7 @@ DB_CONNECTION=mysql
DB_DATABASE={{database_name}} DB_DATABASE={{database_name}}
DB_HOST={{database_host}} DB_HOST={{database_host}}
DB_PASSWORD="{{pixelfed_database_password}}" DB_PASSWORD="{{pixelfed_database_password}}"
DB_PORT=3306 DB_PORT="{{database_port}}"
DB_USERNAME={{database_username}} DB_USERNAME={{database_username}}
## Cache (Redis) ## Cache (Redis)

View File

@ -15,7 +15,7 @@
networks: networks:
- name: central_postgres - name: central_postgres
published_ports: published_ports:
- "127.0.0.1:5432:5432" - "127.0.0.1:{{database_port}}:5432"
volumes: volumes:
- central_postgres_database:/var/lib/postgresql/data - central_postgres_database:/var/lib/postgresql/data
restart_policy: "{{docker_restart_policy}}" restart_policy: "{{docker_restart_policy}}"
@ -46,7 +46,7 @@
login_user: postgres login_user: postgres
login_password: "{{ central_postgres_password }}" login_password: "{{ central_postgres_password }}"
login_host: 127.0.0.1 login_host: 127.0.0.1
login_port: 5432 login_port: "{{database_port}}"
- name: "Create database user: {{ database_username }}" - name: "Create database user: {{ database_username }}"
postgresql_user: postgresql_user:
@ -57,7 +57,7 @@
login_user: postgres login_user: postgres
login_password: "{{ central_postgres_password }}" login_password: "{{ central_postgres_password }}"
login_host: 127.0.0.1 login_host: 127.0.0.1
login_port: 5432 login_port: "{{database_port}}"
- name: "Set privileges for database user: {{ database_username }}" - name: "Set privileges for database user: {{ database_username }}"
postgresql_privs: postgresql_privs:
@ -70,7 +70,7 @@
login_user: postgres login_user: postgres
login_password: "{{ central_postgres_password }}" login_password: "{{ central_postgres_password }}"
login_host: 127.0.0.1 login_host: 127.0.0.1
login_port: 5432 login_port: "{{database_port}}"
- name: Grant all privileges at the database level - name: Grant all privileges at the database level
postgresql_privs: postgresql_privs:
@ -82,7 +82,7 @@
login_user: postgres login_user: postgres
login_password: "{{ central_postgres_password }}" login_password: "{{ central_postgres_password }}"
login_host: 127.0.0.1 login_host: 127.0.0.1
login_port: 5432 login_port: "{{database_port}}"
- name: Grant all privileges on all tables in the public schema - name: Grant all privileges on all tables in the public schema
postgresql_privs: postgresql_privs:
@ -96,7 +96,7 @@
login_user: postgres login_user: postgres
login_password: "{{ central_postgres_password }}" login_password: "{{ central_postgres_password }}"
login_host: 127.0.0.1 login_host: 127.0.0.1
login_port: 5432 login_port: "{{database_port}}"
- name: Set comprehensive privileges for user on public schema - name: Set comprehensive privileges for user on public schema
postgresql_query: postgresql_query:
@ -104,7 +104,7 @@
login_user: postgres login_user: postgres
login_password: "{{ central_postgres_password }}" login_password: "{{ central_postgres_password }}"
login_host: 127.0.0.1 login_host: 127.0.0.1
login_port: 5432 login_port: "{{database_port}}"
query: | query: |
GRANT USAGE ON SCHEMA public TO {{ database_username }}; GRANT USAGE ON SCHEMA public TO {{ database_username }};
GRANT CREATE ON SCHEMA public TO {{ database_username }}; GRANT CREATE ON SCHEMA public TO {{ database_username }};

View File

@ -13,7 +13,7 @@ services:
ports: ports:
- "127.0.0.1:{{http_port}}:80" - "127.0.0.1:{{http_port}}:80"
environment: environment:
WORDPRESS_DB_HOST: "{{database_host}}:3306" WORDPRESS_DB_HOST: "{{database_host}}:{{database_port}}"
WORDPRESS_DB_USER: "{{database_username}}" WORDPRESS_DB_USER: "{{database_username}}"
WORDPRESS_DB_PASSWORD: "{{database_password}}" WORDPRESS_DB_PASSWORD: "{{database_password}}"
WORDPRESS_DB_NAME: "{{database_name}}" WORDPRESS_DB_NAME: "{{database_name}}"

View File

@ -1,4 +1,4 @@
# The following parameters need to be based: # The following parameters need to be pased:
# #
# - database_instance # - database_instance
# - database_name # - database_name

View File

@ -1,4 +1,5 @@
database_instance: "{{ 'central-' + database_type if enable_central_database | bool else docker_compose_project_name }}" database_instance: "{{ 'central-' + database_type if enable_central_database | bool else docker_compose_project_name }}"
database_host: "{{ 'central-' + database_type if enable_central_database | bool else 'database' }}" database_host: "{{ 'central-' + database_type if enable_central_database | bool else 'database' }}"
database_name: "{{ docker_compose_project_name }}" database_name: "{{ docker_compose_project_name }}"
database_username: "{{ docker_compose_project_name }}" database_username: "{{ docker_compose_project_name }}"
database_port: "{{ 3306 if database_type == 'mariadb' else 5432 }}"