diff --git a/group_vars/all b/group_vars/all index 18c9983b..2f3d62cc 100644 --- a/group_vars/all +++ b/group_vars/all @@ -232,6 +232,9 @@ bluesky_pds_version: "latest" #### Friendica friendica_version: "latest" +#### Funkwhale +funkwhale_version: "1.4.0" + #### Gitea gitea_version: "latest" diff --git a/roles/docker-baserow/templates/env.j2 b/roles/docker-baserow/templates/env.j2 index 2a3234f1..7bdbef1b 100644 --- a/roles/docker-baserow/templates/env.j2 +++ b/roles/docker-baserow/templates/env.j2 @@ -12,7 +12,7 @@ EMAIL_SMTP_USE_TLS={{ system_email_tls | upper }} DATABASE_USER={{ database_username }} DATABASE_NAME={{ database_name }} DATABASE_HOST={{ database_host }} -DATABASE_PORT=5432 +DATABASE_PORT={{database_port}} DATABASE_PASSWORD={{ database_password }} REDIS_URL=redis://redis:6379 diff --git a/roles/docker-friendica/templates/docker-compose.yml.j2 b/roles/docker-friendica/templates/docker-compose.yml.j2 index 5010576b..7dfb6222 100644 --- a/roles/docker-friendica/templates/docker-compose.yml.j2 +++ b/roles/docker-friendica/templates/docker-compose.yml.j2 @@ -37,7 +37,7 @@ services: FRIENDICA_LOGFILE: php://stdout # Database Configuration - MYSQL_HOST: {{database_host}}:3306 + MYSQL_HOST: "{{database_host}}:{{database_port}}" MYSQL_DATABASE: {{database_name}} MYSQL_USER: {{database_username}} MYSQL_PASSWORD: {{database_password}} diff --git a/roles/docker-funkwhale/templates/docker-compose.yml.j2 b/roles/docker-funkwhale/templates/docker-compose.yml.j2 index 37695a8a..5fb5ad97 100644 --- a/roles/docker-funkwhale/templates/docker-compose.yml.j2 +++ b/roles/docker-funkwhale/templates/docker-compose.yml.j2 @@ -1,8 +1,18 @@ services: +{% include 'templates/docker/services/' + database_type + '.yml.j2' %} + {% include 'templates/docker/services/redis.yml.j2' %} 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}} image: funkwhale/api:${FUNKWHALE_VERSION:-latest} env_file: .env @@ -11,10 +21,10 @@ services: - C_FORCE_ROOT=true volumes: - "data:${MEDIA_ROOT}" + - "music:${MUSIC_DIRECTORY_PATH}:ro" {% include 'templates/docker/container/depends-on-database-redis.yml.j2' %} {% include 'templates/docker/container/networks.yml.j2' %} - celerybeat: restart: {{docker_restart_policy}} image: funkwhale/api:${FUNKWHALE_VERSION:-latest} @@ -26,11 +36,11 @@ services: api: restart: {{docker_restart_policy}} image: funkwhale/api:${FUNKWHALE_VERSION:-latest} - depends_on: env_file: .env volumes: + - "music:${MUSIC_DIRECTORY_PATH}:ro" - "data:${MEDIA_ROOT}" - #- "${STATIC_ROOT}:${STATIC_ROOT}" + - "static_root:${STATIC_ROOT}" ports: - "5000" {% include 'templates/docker/container/depends-on-database-redis.yml.j2' %} @@ -53,9 +63,22 @@ services: # override those variables in your .env file if needed - "${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT}:80" {% 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' %} data: + static_root: redis: + music: {% include 'templates/docker/compose/networks.yml.j2' %} \ No newline at end of file diff --git a/roles/docker-funkwhale/templates/env.j2 b/roles/docker-funkwhale/templates/env.j2 index ec31442b..a1c10150 100644 --- a/roles/docker-funkwhale/templates/env.j2 +++ b/roles/docker-funkwhale/templates/env.j2 @@ -16,6 +16,7 @@ # # Docker only # ----------- +MUSIC_DIRECTORY_PATH=/music FUNKWHALE_VERSION={{funkwhale_version}} @@ -52,14 +53,14 @@ LOGLEVEL=error # (returns `noreply%40youremail.host`) # EMAIL_CONFIG=smtp://user:password@youremail.host:25 # 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 # Doesn't apply to admins. # ACCOUNT_EMAIL_VERIFICATION_ENFORCE=false # 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, # 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 # Nginx related configuration -NGINX_MAX_BODY_SIZE=100M \ No newline at end of file +NGINX_MAX_BODY_SIZE=100M + +DATABASE_URL = postgresql://{{database_username}}:{{database_password}}@{{database_host}}:{{database_port}}/{{ database_name }} \ No newline at end of file diff --git a/roles/docker-gitea/templates/docker-compose.yml.j2 b/roles/docker-gitea/templates/docker-compose.yml.j2 index fb9a73fc..9196fcda 100644 --- a/roles/docker-gitea/templates/docker-compose.yml.j2 +++ b/roles/docker-gitea/templates/docker-compose.yml.j2 @@ -11,7 +11,7 @@ services: - USER_UID=1000 - USER_GID=1000 - DB_TYPE=mysql - - DB_HOST={{database_host}}:3306 + - DB_HOST={{database_host}}:{{database_port}} - DB_NAME={{database_name}} - DB_USER={{database_username}} - DB_PASSWD={{database_password}} diff --git a/roles/docker-gitlab/templates/docker-compose.yml.j2 b/roles/docker-gitlab/templates/docker-compose.yml.j2 index 99a0c8bb..62609ae8 100644 --- a/roles/docker-gitlab/templates/docker-compose.yml.j2 +++ b/roles/docker-gitlab/templates/docker-compose.yml.j2 @@ -16,7 +16,7 @@ services: gitlab_rails['db_adapter'] = 'postgresql' gitlab_rails['db_encoding'] = 'utf8' 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_password'] = '{{database_password}}' gitlab_rails['db_database'] = "{{database_name}}" diff --git a/roles/docker-joomla/templates/docker-compose.yml.j2 b/roles/docker-joomla/templates/docker-compose.yml.j2 index 44a0b8c3..4083639e 100644 --- a/roles/docker-joomla/templates/docker-compose.yml.j2 +++ b/roles/docker-joomla/templates/docker-compose.yml.j2 @@ -7,7 +7,7 @@ services: logging: driver: journald environment: - JOOMLA_DB_HOST: "{{database_host}}:3306" + JOOMLA_DB_HOST: "{{database_host}}:{{database_port}}" JOOMLA_DB_USER: "{{database_username}}" JOOMLA_DB_PASSWORD: "{{database_password}}" JOOMLA_DB_NAME: "{{database_name}}" diff --git a/roles/docker-listmonk/templates/config.toml.j2 b/roles/docker-listmonk/templates/config.toml.j2 index acb2fc43..72f76b45 100644 --- a/roles/docker-listmonk/templates/config.toml.j2 +++ b/roles/docker-listmonk/templates/config.toml.j2 @@ -16,7 +16,7 @@ address = "0.0.0.0:9000" # Database. [db] host = "{{database_host}}" -port = 5432 +port = {{database_port}} user = "{{database_username}}" password = "{{database_password}}" diff --git a/roles/docker-mariadb/tasks/main.yml b/roles/docker-mariadb/tasks/main.yml index e6d5f371..d903e6d6 100644 --- a/roles/docker-mariadb/tasks/main.yml +++ b/roles/docker-mariadb/tasks/main.yml @@ -17,7 +17,7 @@ volumes: - central_mariadb_database:/var/lib/mysql 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 restart_policy: "{{docker_restart_policy}}" healthcheck: @@ -46,7 +46,7 @@ login_user: root login_password: "{{ central_mariadb_root_password }}" login_host: 127.0.0.1 - login_port: 3306 + login_port: "{{database_port}}" - name: "Create database user: {{ database_username }}" mysql_user: @@ -58,7 +58,7 @@ login_user: root login_password: "{{central_mariadb_root_password}}" login_host: 127.0.0.1 - login_port: 3306 + login_port: "{{database_port}}" - name: Grant database privileges ansible.builtin.shell: diff --git a/roles/docker-mastodon/templates/.env.production.j2 b/roles/docker-mastodon/templates/.env.production.j2 index 5a604494..ad103ceb 100644 --- a/roles/docker-mastodon/templates/.env.production.j2 +++ b/roles/docker-mastodon/templates/.env.production.j2 @@ -7,7 +7,7 @@ VAPID_PRIVATE_KEY={{mastodon_vapid_private_key}} VAPID_PUBLIC_KEY={{mastodon_vapid_public_key}} DB_HOST={{database_host}} -DB_PORT=5432 +DB_PORT={{database_port}} DB_NAME={{database_name}} DB_USER={{database_username}} DB_PASS={{database_password}} diff --git a/roles/docker-matomo/templates/docker-compose.yml.j2 b/roles/docker-matomo/templates/docker-compose.yml.j2 index 153aa0d8..567ad6f4 100644 --- a/roles/docker-matomo/templates/docker-compose.yml.j2 +++ b/roles/docker-matomo/templates/docker-compose.yml.j2 @@ -10,11 +10,11 @@ services: ports: - "127.0.0.1:{{http_port}}:80" environment: - MATOMO_DATABASE_HOST: "{{database_host}}:3306" - MATOMO_DATABASE_ADAPTER: "mysql" + MATOMO_DATABASE_HOST: "{{database_host}}:{{database_port}}" + MATOMO_DATABASE_ADAPTER: "mysql" MATOMO_DATABASE_USERNAME: "{{database_username}}" MATOMO_DATABASE_PASSWORD: "{{database_password}}" - MATOMO_DATABASE_DBNAME: "{{database_name}}" + MATOMO_DATABASE_DBNAME: "{{database_name}}" volumes: - data:/var/www/html {% include 'templates/docker/container/depends-on-just-database.yml.j2' %} diff --git a/roles/docker-moodle/templates/docker-compose.yml.j2 b/roles/docker-moodle/templates/docker-compose.yml.j2 index d57c9079..bb1fa9b4 100644 --- a/roles/docker-moodle/templates/docker-compose.yml.j2 +++ b/roles/docker-moodle/templates/docker-compose.yml.j2 @@ -10,7 +10,7 @@ services: driver: journald environment: - MOODLE_DATABASE_HOST={{database_host}} - - MOODLE_DATABASE_PORT_NUMBER=3306 + - MOODLE_DATABASE_PORT_NUMBER={{database_port}} - MOODLE_DATABASE_USER={{database_username}} - MOODLE_DATABASE_NAME={{database_name}} - MOODLE_DATABASE_PASSWORD={{database_password}} diff --git a/roles/docker-nextcloud/templates/docker-compose.yml.j2 b/roles/docker-nextcloud/templates/docker-compose.yml.j2 index 0727fd21..1dab6c8d 100644 --- a/roles/docker-nextcloud/templates/docker-compose.yml.j2 +++ b/roles/docker-nextcloud/templates/docker-compose.yml.j2 @@ -19,7 +19,7 @@ services: MYSQL_DATABASE: "{{database_name}}" MYSQL_USER: "{{database_username}}" MYSQL_PASSWORD: "{{database_password}}" - MYSQL_HOST: {{database_host}}:3306 + MYSQL_HOST: "{{database_host}}:{{database_port}}" # Memory PHP_MEMORY_LIMIT: 1G # Required for plugin duplicate finder diff --git a/roles/docker-pixelfed/templates/env.j2 b/roles/docker-pixelfed/templates/env.j2 index 26be4d68..265babd1 100644 --- a/roles/docker-pixelfed/templates/env.j2 +++ b/roles/docker-pixelfed/templates/env.j2 @@ -61,7 +61,7 @@ DB_CONNECTION=mysql DB_DATABASE={{database_name}} DB_HOST={{database_host}} DB_PASSWORD="{{pixelfed_database_password}}" -DB_PORT=3306 +DB_PORT="{{database_port}}" DB_USERNAME={{database_username}} ## Cache (Redis) diff --git a/roles/docker-postgres/tasks/main.yml b/roles/docker-postgres/tasks/main.yml index ce65f8ae..27224682 100644 --- a/roles/docker-postgres/tasks/main.yml +++ b/roles/docker-postgres/tasks/main.yml @@ -15,7 +15,7 @@ networks: - name: central_postgres published_ports: - - "127.0.0.1:5432:5432" + - "127.0.0.1:{{database_port}}:5432" volumes: - central_postgres_database:/var/lib/postgresql/data restart_policy: "{{docker_restart_policy}}" @@ -46,7 +46,7 @@ login_user: postgres login_password: "{{ central_postgres_password }}" login_host: 127.0.0.1 - login_port: 5432 + login_port: "{{database_port}}" - name: "Create database user: {{ database_username }}" postgresql_user: @@ -57,7 +57,7 @@ login_user: postgres login_password: "{{ central_postgres_password }}" login_host: 127.0.0.1 - login_port: 5432 + login_port: "{{database_port}}" - name: "Set privileges for database user: {{ database_username }}" postgresql_privs: @@ -70,7 +70,7 @@ login_user: postgres login_password: "{{ central_postgres_password }}" login_host: 127.0.0.1 - login_port: 5432 + login_port: "{{database_port}}" - name: Grant all privileges at the database level postgresql_privs: @@ -82,7 +82,7 @@ login_user: postgres login_password: "{{ central_postgres_password }}" login_host: 127.0.0.1 - login_port: 5432 + login_port: "{{database_port}}" - name: Grant all privileges on all tables in the public schema postgresql_privs: @@ -96,7 +96,7 @@ login_user: postgres login_password: "{{ central_postgres_password }}" login_host: 127.0.0.1 - login_port: 5432 + login_port: "{{database_port}}" - name: Set comprehensive privileges for user on public schema postgresql_query: @@ -104,7 +104,7 @@ login_user: postgres login_password: "{{ central_postgres_password }}" login_host: 127.0.0.1 - login_port: 5432 + login_port: "{{database_port}}" query: | GRANT USAGE ON SCHEMA public TO {{ database_username }}; GRANT CREATE ON SCHEMA public TO {{ database_username }}; diff --git a/roles/docker-wordpress/templates/docker-compose.yml.j2 b/roles/docker-wordpress/templates/docker-compose.yml.j2 index 77a141bb..0a5623d5 100644 --- a/roles/docker-wordpress/templates/docker-compose.yml.j2 +++ b/roles/docker-wordpress/templates/docker-compose.yml.j2 @@ -13,7 +13,7 @@ services: ports: - "127.0.0.1:{{http_port}}:80" environment: - WORDPRESS_DB_HOST: "{{database_host}}:3306" + WORDPRESS_DB_HOST: "{{database_host}}:{{database_port}}" WORDPRESS_DB_USER: "{{database_username}}" WORDPRESS_DB_PASSWORD: "{{database_password}}" WORDPRESS_DB_NAME: "{{database_name}}" diff --git a/tasks/create-and-seed-database.yml b/tasks/create-and-seed-database.yml index aa02150e..4a386b40 100644 --- a/tasks/create-and-seed-database.yml +++ b/tasks/create-and-seed-database.yml @@ -1,4 +1,4 @@ -# The following parameters need to be based: +# The following parameters need to be pased: # # - database_instance # - database_name diff --git a/vars/docker-database.yml.j2 b/vars/docker-database.yml.j2 index f71aabca..e4a5bef2 100644 --- a/vars/docker-database.yml.j2 +++ b/vars/docker-database.yml.j2 @@ -1,4 +1,5 @@ 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_name: "{{ docker_compose_project_name }}" -database_username: "{{ docker_compose_project_name }}" \ No newline at end of file +database_username: "{{ docker_compose_project_name }}" +database_port: "{{ 3306 if database_type == 'mariadb' else 5432 }}" \ No newline at end of file