Compare commits

..

No commits in common. "d379d89ea379dc5515115be102eb36c87a2e7fa9" and "658e40098acfb8b9faf36fd03da8ef0275ac7a81" have entirely different histories.

48 changed files with 214 additions and 347 deletions

View File

@ -96,9 +96,6 @@ nginx_upstreams_directory: "{{nginx_configuration_directory}}upstreams/"
## Docker Applications
### Enable Central MariaDB
enable_central_database: true
### Domain Names for Various Services
domain_akaunting: "akaunting.{{top_domain}}"
domain_baserow: "baserow.{{top_domain}}"

View File

@ -2,11 +2,6 @@
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
- name: Create database in central MariaDB
include_role:
name: docker-mariadb
when: enable_central_database | bool
- name: "include tasks update-repository-with-docker-compose.yml"
include_tasks: update-repository-with-docker-compose.yml

View File

@ -14,15 +14,11 @@ services:
- env/run.env
environment:
- AKAUNTING_SETUP
{% if not ( enable_central_database | lower | bool ) %}
depends_on:
- database
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
volumes:
data:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
database:

View File

@ -11,10 +11,5 @@
dest: "{{nginx_servers_directory}}{{domain}}.conf"
notify: restart nginx
- name: Create database in central MariaDB
include_role:
name: docker-mariadb
when: enable_central_database | bool
- name: "include tasks update-repository-with-docker-compose.yml"
include_tasks: update-repository-with-docker-compose.yml

View File

@ -9,9 +9,7 @@ services:
- .:/usr/share/nginx/html
- .:/var/www
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- maildev
- redis
- worker
@ -20,15 +18,15 @@ services:
worker:
image: attendize_worker:latest
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- maildev
- redis
volumes:
- .:/usr/share/nginx/html
- .:/var/www
{% include 'templates/docker-mariadb-service.yml.j2' %}
maildev:
image: maildev/maildev
ports:
@ -36,15 +34,6 @@ services:
{% include 'templates/docker-redis-service.yml.j2' %}
{% if not ( enable_central_database | lower | bool ) %}
depends_on:
- database
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
volumes:
redis:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
redis:

View File

@ -2,11 +2,6 @@
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
- name: Create database in central MariaDB
include_role:
name: docker-mariadb
when: enable_central_database | bool
- name: "create {{docker_compose_instance_directory}}"
file:
path: "{{docker_compose_instance_directory}}"

View File

@ -1,6 +1,14 @@
version: "3"
services:
postgres:
restart: always
env_file: .env
environment:
- "POSTGRES_HOST_AUTH_METHOD=trust"
image: postgres:15-alpine
volumes:
- database:/var/lib/postgresql/data
{% include 'templates/docker-redis-service.yml.j2' %}
@ -10,9 +18,7 @@ services:
restart: always
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- postgres
% endif %}
- redis
env_file: .env
command: celery -A funkwhale_api.taskapp worker -l INFO --concurrency=${CELERYD_CONCURRENCY-0}
@ -25,9 +31,7 @@ services:
restart: always
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- postgres
% endif %}
- redis
env_file: .env
command: celery -A funkwhale_api.taskapp beat --pidfile= -l INFO
@ -61,15 +65,7 @@ services:
ports:
# override those variables in your .env file if needed
- "${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT}:80"
{% if not ( enable_central_database | lower | bool ) %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
volumes:
data:
redis:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
database:

View File

@ -1,7 +1,3 @@
docker_compose_project_name: "funkwhale"
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
nginx_docker_reverse_proxy_extra_configuration: "client_max_body_size 512M;"
database_databasename: "{{docker_compose_project_name}}"
database_username: "{{docker_compose_project_name}}"
database_password: "{{funkwhale_database_password}}"
database_version: "{{ funkwhale_database_version | default(postgres_default_version) }}"

View File

@ -2,11 +2,6 @@
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
- name: create database in central MariaDB
include_role:
name: docker-mariadb
when: enable_central_database | bool
- name: "create {{docker_compose_instance_directory}}"
file:
path: "{{docker_compose_instance_directory}}"

View File

@ -23,24 +23,20 @@ services:
ports:
- "127.0.0.1:{{http_port}}:3000"
- "{{ssh_port}}:22"
links:
- database
volumes:
- data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
{% if not ( enable_central_database | lower | bool ) %}
depends_on:
- database
links:
- database
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
volumes:
data:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
data:
networks:
default:
driver: bridge

View File

@ -2,11 +2,6 @@
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
- name: create database in central Postgres
include_role:
name: docker-postgres
when: enable_central_database | bool
- name: "create {{docker_compose_instance_directory}}"
file:
path: "{{docker_compose_instance_directory}}"

View File

@ -33,23 +33,17 @@ services:
- 'data:/var/opt/gitlab'
shm_size: '256m'
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
database:
condition: service_healthy
{% endif %}
redis:
{% include 'templates/docker-postgres-service.yml.j2' %}
{% include 'templates/docker-redis-service.yml.j2' %}
{% if not ( enable_central_database | lower | bool ) %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
volumes:
redis:
database:
config:
logs:
data:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
redis:

View File

@ -1 +0,0 @@
This role is deprecated. Needs to be reimplemented.

View File

@ -5,11 +5,6 @@
loop_control:
loop_var: domain
- name: create database in central MariaDB
include_role:
name: docker-mariadb
when: enable_central_database | bool
- name: "create {{docker_compose_instance_directory}}"
file:
path: "{{docker_compose_instance_directory}}"

View File

@ -11,21 +11,15 @@ services:
JOOMLA_DB_PASSWORD: "{{database_password}}"
JOOMLA_DB_NAME: "{{database_databasename}}"
restart: always
{% if not ( enable_central_database | lower | bool ) %}
links:
- database
{% endif %}
volumes:
- data:/var/www/html
ports:
- "127.0.0.1:{{http_port}}:80"
{% if not ( enable_central_database | lower | bool ) %}
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
volumes:
data:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
data:

View File

@ -2,11 +2,6 @@
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
- name: create database in central Postgres
include_role:
name: docker-postgres
when: enable_central_database | bool
- name: "create {{docker_compose_instance_directory}}"
file:
path: "{{docker_compose_instance_directory}}"

View File

@ -2,6 +2,8 @@ version: "3.7"
services:
{% include 'templates/docker-postgres-service.yml.j2' %}
application:
restart: unless-stopped
image: listmonk/listmonk:latest
@ -9,15 +11,10 @@ services:
- "127.0.0.1:{{http_port}}:9000"
environment:
- TZ=Etc/UTC
depends_on:
- database
volumes:
- ./config.toml:/listmonk/config.toml
{% if not ( enable_central_database | lower | bool ) %}
depends_on:
- database
{% include 'templates/docker-postgres-service.yml.j2' %}
volumes:
database:
{% endif %}
database:

View File

@ -28,11 +28,6 @@
state: directory
mode: 0755
- name: create database in central MariaDB
include_role:
name: docker-mariadb
when: enable_central_database | bool
- name: add docker-compose.yml
template:
src: "docker-compose.yml.j2"

View File

@ -3,11 +3,15 @@ version: '2.2'
services:
{% include 'templates/docker-redis-service.yml.j2' %}
env_file: mailu.env
depends_on:
- resolver
dns:
- 192.168.203.254
{% include 'templates/docker-mariadb-service.yml.j2' %}
depends_on:
- resolver
dns:
@ -49,10 +53,8 @@ services:
depends_on:
resolver:
condition: service_started
{% if not ( enable_central_database | lower | bool ) %}
database:
condition: service_healthy
{% endif %}
networks:
- default
- webmail
@ -71,9 +73,7 @@ services:
- resolver
- front
- redis
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
logging:
driver: journald
dns:
@ -202,14 +202,9 @@ services:
- webmail
dns:
- 192.168.203.254
{% if not ( enable_central_database | lower | bool ) %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
volumes:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
smtp_queue:
admin_data:
webdav_data:

View File

@ -0,0 +1,21 @@
- name: create database
mysql_db:
name: "{{database_databasename}}"
state: present
login_user: root
login_password: "{{central_mariadb_root_password}}"
login_host: 127.0.0.1
login_port: 3306
listen: create database
- name: create database user
mysql_user:
name: "{{database_username}}"
password: "{{database_password}}"
priv: '{{database_databasename}}.*:ALL'
state: present
login_user: root
login_password: "{{central_mariadb_root_password}}"
login_host: 127.0.0.1
login_port: 3306
listen: create database

View File

@ -7,48 +7,16 @@
- name: install MariaDB
docker_container:
name: mariadb
image: mariadb:latest #could lead to problems with nextcloud
image: mariadb:latest
detach: yes
env:
MARIADB_ROOT_PASSWORD: "{{central_mariadb_root_password}}"
MARIADB_AUTO_UPGRADE: "1"
MARIADB_ROOT_PASSWORD: "{{central_mariadb_root_password}}"
networks:
- name: mariadb_network
published_ports:
- "127.0.0.1:3306:3306"
command: "--transaction-isolation=READ-COMMITTED --binlog-format=ROW" #for nextcloud
when: run_once_docker_mariadb is not defined
- name: wait for availability of mariadb
wait_for:
host: "127.0.0.1"
port: "3306"
delay: 0
timeout: 120
when: run_once_docker_mariadb is not defined
- name: create database
mysql_db:
name: "{{database_databasename}}"
state: present
login_user: root
login_password: "{{central_mariadb_root_password}}"
login_host: 127.0.0.1
login_port: 3306
listen: create database
- name: create database user
mysql_user:
name: "{{database_username}}"
password: "{{database_password}}"
priv: '{{database_databasename}}.*:ALL'
state: present
login_user: root
login_password: "{{central_mariadb_root_password}}"
login_host: 127.0.0.1
login_port: 3306
listen: create database
- name: run the docker_mariadb tasks once
set_fact:
run_once_docker_mariadb: true

View File

@ -5,11 +5,6 @@
loop_control:
loop_var: domain
- name: create database in central Postgres
include_role:
name: docker-postgres
when: enable_central_database | bool
- name: "create {{docker_compose_instance_directory}}"
file:
path: "{{docker_compose_instance_directory}}"

View File

@ -1,5 +1,19 @@
version: '3'
services:
database:
restart: always
image: postgres:14-alpine
shm_size: 256mb
networks:
- internal_network
healthcheck:
test: ['CMD', 'pg_isready', '-U', 'postgres']
volumes:
- database:/var/lib/postgresql/data
environment:
- 'POSTGRES_HOST_AUTH_METHOD=trust'
logging:
driver: journald
{% include 'templates/docker-redis-service.yml.j2' %}
@ -20,9 +34,7 @@ services:
ports:
- "127.0.0.1:{{http_port}}:3000"
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- redis
volumes:
- data:/mastodon/public/system
@ -42,9 +54,7 @@ services:
ports:
- "127.0.0.1:{{stream_port}}:4000"
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- redis
logging:
driver: journald
@ -54,9 +64,7 @@ services:
env_file: .env.production
command: bundle exec sidekiq
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- redis
networks:
- external_network
@ -67,14 +75,8 @@ services:
test: ['CMD-SHELL', "ps aux | grep '[s]idekiq\ 6' || false"]
logging:
driver: journald
{% if not ( enable_central_database | lower | bool ) %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
volumes:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
redis:
data:
networks:

View File

@ -1,7 +1,6 @@
docker_compose_project_name: "mastodon"
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
database_host: "database"
database_databasename: "{{docker_compose_project_name}}"
database_username: "{{docker_compose_project_name}}"
database_password: "{{mastodon_database_password}}"
database_version: "{{ mastodon_database_version | default(postgres_default_version) }}"
database_databasename: "postgres" # todo: Change this to standart name scheme for future setups
database_username: "postgres" # todo: Change this to standart name scheme for future setups
database_password: "" # todo: Change this to standart name scheme for future setups

View File

@ -2,11 +2,6 @@
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
- name: create database in central MariaDB
include_role:
name: docker-mariadb
when: enable_central_database | bool
- name: "create {{docker_compose_instance_directory}}"
file:
path: "{{docker_compose_instance_directory}}"

View File

@ -14,18 +14,17 @@ services:
MATOMO_DATABASE_USERNAME: "{{database_username}}"
MATOMO_DATABASE_PASSWORD: "{{database_password}}"
MATOMO_DATABASE_DBNAME: "{{database_databasename}}"
volumes:
- data:/var/www/html
{% if not ( enable_central_database | lower | bool ) %}
links:
- database
depends_on:
- database
volumes:
- data:/var/www/html
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
volumes:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
data:
networks:
default:

View File

@ -4,11 +4,6 @@
vars:
domain: "{{synapse_domain}}"
http_port: "{{synapse_http_port}}"
- name: create database in central Postgres
include_role:
name: docker-postgres
when: enable_central_database | bool
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml

View File

@ -16,12 +16,25 @@ services:
- SYNAPSE_REPORT_STATS=no
ports:
- "127.0.0.1:{{synapse_http_port}}:8008"
{% if not ( enable_central_database | lower | bool ) %}
depends_on:
- database
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
database:
logging:
driver: journald
image: postgres:16
restart: unless-stopped
volumes:
- database:/var/lib/postgresql/data
environment:
- POSTGRES_DB={{database_databasename}}
- POSTGRES_USER={{database_username}}
- POSTGRES_PASSWORD={{database_password}}
- POSTGRES_INITDB_ARGS=--encoding=UTF8 --locale=C
healthcheck:
test: ["CMD-SHELL", "pg_isready -U {{database_username}}"]
interval: 10s
timeout: 5s
retries: 6
element:
image: vectorim/element-web:latest
restart: unless-stopped
@ -60,9 +73,7 @@ services:
# - instagram_bridge_data:/data
volumes:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
synapse_data:
#telegram_bridge_data:
#whatsapp_bridge_data:

View File

@ -5,11 +5,6 @@
loop_control:
loop_var: domain
- name: create database in central MariaDB
include_role:
name: docker-mariadb
when: enable_central_database | bool
- name: "create {{docker_compose_instance_confd_directory}} and parent directories"
file:
path: "{{docker_compose_instance_confd_directory}}"

View File

@ -7,17 +7,17 @@ services:
tag: "mybb_application"
image: mybb/mybb:latest
restart: always
links:
- database
volumes:
- data:/var/www/html
{% if not ( enable_central_database | lower | bool ) %}
depends_on:
- database
{% endif %}
server:
logging:
driver: journald
options:
tag: "mybb_server"
links:
- application
image: nginx:mainline
restart: always
ports:
@ -26,14 +26,10 @@ services:
- "{{docker_compose_instance_confd_directory}}:{{target_mount_conf_d_directory}}:ro"
- "data:/var/www/html:ro"
{% if not ( enable_central_database | lower | bool ) %}
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
volumes:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
data:
networks:
default:

View File

@ -20,11 +20,6 @@
dest: "{{path_docker_volumes}}nextcloud/nginx.conf"
notify: docker compose project setup
- name: create database in central MariaDB
include_role:
name: docker-mariadb
when: enable_central_database | bool
- name: "create {{docker_compose_instance_directory}}"
file:
path: "{{docker_compose_instance_directory}}"

View File

@ -6,6 +6,8 @@ services:
restart: always
logging:
driver: journald
depends_on:
- database
volumes:
- data:/var/www/html
environment:
@ -13,13 +15,25 @@ services:
MYSQL_USER: "{{database_username}}"
MYSQL_PASSWORD: "{{database_password}}"
MYSQL_HOST: {{database_host}}:3306
{% if not ( enable_central_database | lower | bool ) %}
depends_on:
- database
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
database:
logging:
driver: journald
image: mariadb:10.5
command: "--transaction-isolation=READ-COMMITTED --binlog-format=ROW"
environment:
MYSQL_DATABASE: "{{database_databasename}}"
MYSQL_USER: "{{database_username}}"
MYSQL_PASSWORD: "{{database_password}}"
MYSQL_ROOT_PASSWORD: "{{database_password}}"
MARIADB_AUTO_UPGRADE: "1"
volumes:
- database:/var/lib/mysql
restart: always
healthcheck:
test: "/usr/bin/mariadb --user={{database_username}} --password={{database_password}} --execute \"SHOW DATABASES;\""
interval: 3s
timeout: 1s
retries: 5
web:
image: nginx:alpine
logging:
@ -45,14 +59,10 @@ services:
- data:/var/www/html
entrypoint: /cron.sh
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- redis
volumes:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
data:
redis:
networks:

View File

@ -2,11 +2,6 @@
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
- name: create database in central Postgres
include_role:
name: docker-postgres
when: enable_central_database | bool
- name: "include tasks update-repository-with-docker-compose.yml"
include_tasks: update-repository-with-docker-compose.yml

View File

@ -5,10 +5,8 @@ networks:
backend:
volumes:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
data:
pgdata:
opdata:
x-op-restart-policy: &restart_policy
restart: unless-stopped
@ -17,8 +15,8 @@ x-op-image: &image
x-op-app: &app
<<: [*image, *restart_policy]
environment:
OPENPROJECT_HTTPS: "${OPENPROJECT_HTTPS}"
OPENPROJECT_HOST__NAME: "${OPENPROJECT_HOST__NAME}"
OPENPROJECT_HTTPS: "${OPENPROJECT_HTTPS:-true}"
OPENPROJECT_HOST__NAME: "${OPENPROJECT_HOST__NAME:-localhost:8080}"
OPENPROJECT_HSTS: "${OPENPROJECT_HSTS:-true}"
RAILS_CACHE_STORE: "memcache"
OPENPROJECT_CACHE__MEMCACHE__SERVER: "cache:11211"
@ -29,16 +27,19 @@ x-op-app: &app
# set to true to enable the email receiving feature. See ./docker/cron for more options
IMAP_ENABLED: "${IMAP_ENABLED:-false}"
volumes:
- "data:/var/openproject/assets"
{% if not ( enable_central_database | lower | bool ) %}
- "database:/var/openproject/pgdata"
{% endif %}
- "${OPDATA}:/var/openproject/assets"
- "${PGDATA}:/var/openproject/pgdata"
services:
{% if not ( enable_central_database | lower | bool ) %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
database:
image: postgres:13
<<: *restart_policy
stop_grace_period: "3s"
volumes:
- "${PGDATA}:/var/lib/postgresql/data"
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: openproject
networks:
- backend
@ -52,7 +53,7 @@ services:
<<: [*image, *restart_policy]
command: "./docker/prod/proxy"
ports:
- "${PORT}:80"
- "${PORT:-8080}:80"
environment:
APP_HOST: web
OPENPROJECT_RAILS__RELATIVE__URL__ROOT: "${OPENPROJECT_RAILS__RELATIVE__URL__ROOT:-}"
@ -61,11 +62,9 @@ services:
networks:
- frontend
volumes:
- "data:/var/openproject/assets"
{% if not ( enable_central_database | lower | bool ) %}
- "database:/var/openproject/pgdata"
{% endif %}
- "${OPDATA}:/var/openproject/assets"
- "${PGDATA}:/var/openproject/pgdata"
web:
<<: *app
command: "./docker/prod/web"
@ -73,9 +72,7 @@ services:
- frontend
- backend
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- cache
- seeder
labels:
@ -102,9 +99,7 @@ services:
networks:
- backend
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- cache
- seeder
@ -114,9 +109,7 @@ services:
networks:
- backend
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- cache
- seeder

View File

@ -15,4 +15,7 @@ IMAP_ENABLED=false
POSTGRES_PASSWORD="{{ database_password }}"
DATABASE_URL="postgres://{{ database_username }}:{{ database_password }}@{{database_host}}/{{database_databasename}}?pool=20&encoding=unicode&reconnect=true"
RAILS_MIN_THREADS=4
RAILS_MAX_THREADS=16
RAILS_MAX_THREADS=16
PGDATA="pgdata"
OPDATA="opdata"

View File

@ -4,12 +4,7 @@
loop: "{{ domains }}"
loop_control:
loop_var: domain
- name: create database in central Postgres
include_role:
name: docker-postgres
when: enable_central_database | bool
- name: "create {{docker_compose_instance_directory}}"
file:
path: "{{docker_compose_instance_directory}}"

View File

@ -12,14 +12,22 @@ services:
- assets:/app/client/dist
- data:/data
- config:/config
restart: "always"
depends_on:
- redis
{% if not ( enable_central_database | lower | bool ) %}
- database
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
- redis
restart: "always"
database:
image: postgres:13-alpine
env_file:
- .env
volumes:
- database:/var/lib/postgresql/data
restart: "always"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U peertube"]
interval: 10s
timeout: 5s
retries: 6
{% include 'templates/docker-redis-service.yml.j2' %}
@ -27,9 +35,7 @@ services:
- .env
volumes:
assets:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
data:
redis:
config:

View File

@ -1,12 +1,7 @@
---
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
- name: create database in central MariaDB
include_role:
name: docker-mariadb
when: enable_central_database | bool
- name: "create {{docker_compose_instance_directory}}"
file:
path: "{{docker_compose_instance_directory}}"

View File

@ -15,9 +15,7 @@ services:
ports:
- "{{http_port}}:80"
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- redis
worker:
image: zknt/pixelfed
@ -31,27 +29,22 @@ services:
- "bootstrap:/var/www/bootstrap"
- "./env:/var/www/.env"
entrypoint: /worker-entrypoint.sh
depends_on:
- database
- redis
- application
healthcheck:
test: php artisan horizon:status | grep running
interval: 60s
timeout: 5s
retries: 1
depends_on:
- redis
- application
{% if not ( enable_central_database | lower | bool ) %}
- database
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
{% include 'templates/docker-redis-service.yml.j2' %}
volumes:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
redis:
application_data:
bootstrap:

View File

@ -56,11 +56,17 @@ MAIL_ENCRYPTION=tls
## Databases (MySQL)
DB_CONNECTION=mysql
DB_DATABASE={{database_databasename}}
DB_HOST={{database_host}}
DB_DATABASE=pixelfed
DB_HOST=database
DB_PASSWORD="{{pixelfed_database_password}}"
DB_PORT=3306
DB_USERNAME={{database_username}}
DB_USERNAME=pixelfed
# pass the same values to the db itself
MYSQL_DATABASE="pixelfed"
MYSQL_USER="pixelfed"
MYSQL_PASSWORD="{{pixelfed_database_password}}"
MYSQL_ROOT_PASSWORD="{{pixelfed_database_password}}"
MARIADB_AUTO_UPGRADE="1"
## Cache (Redis)
REDIS_CLIENT=phpredis

View File

@ -0,0 +1,22 @@
- name: Create database
postgresql_db:
name: "{{ database_databasename }}"
state: present
login_user: postgres
login_password: "{{ central_postgres_password }}"
login_host: 127.0.0.1
login_port: 5432
listen: create database
- name: Create database user
postgresql_user:
name: "{{ database_username }}"
password: "{{ database_password }}"
db: "{{ database_databasename }}"
priv: ALL
state: present
login_user: postgres
login_password: "{{ central_postgres_password }}"
login_host: 127.0.0.1
login_port: 5432
listen: create database

View File

@ -11,44 +11,12 @@
detach: yes
env:
POSTGRES_PASSWORD: "{{ central_postgres_password }}"
POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C" # Necessary for docker-matrix
networks:
- name: postgres_network
published_ports:
- "127.0.0.1:5432:5432"
when: run_once_docker_postgres is not defined
- name: wait for availability of postgres
wait_for:
host: "127.0.0.1"
port: "5432"
delay: 0
timeout: 120
when: run_once_docker_postgres is not defined
- name: Create database
postgresql_db:
name: "{{ database_databasename }}"
state: present
login_user: postgres
login_password: "{{ central_postgres_password }}"
login_host: 127.0.0.1
login_port: 5432
listen: create database
- name: Create database user
postgresql_user:
name: "{{ database_username }}"
password: "{{ database_password }}"
db: "{{ database_databasename }}"
priv: ALL
state: present
login_user: postgres
login_password: "{{ central_postgres_password }}"
login_host: 127.0.0.1
login_port: 5432
listen: create database
- name: Run the docker_postgres tasks once
set_fact:
run_once_docker_postgres: true

View File

@ -8,11 +8,6 @@
vars:
nginx_docker_reverse_proxy_extra_configuration: "client_max_body_size {{wordpress_max_upload_size}};"
- name: create database in central MariaDB
include_role:
name: docker-mariadb
when: enable_central_database | bool
- name: "create {{docker_compose_instance_directory}}"
file:
path: "{{docker_compose_instance_directory}}"

View File

@ -15,19 +15,17 @@ services:
WORDPRESS_DB_USER: "{{database_username}}"
WORDPRESS_DB_PASSWORD: "{{database_password}}"
WORDPRESS_DB_NAME: "{{database_databasename}}"
links:
- database
volumes:
- data:/var/www/html
{% if not ( enable_central_database | lower | bool ) %}
depends_on:
- database
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
volumes:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
data:
networks:
default:

View File

@ -2,11 +2,6 @@
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
- name: create database in central MariaDB
include_role:
name: docker-mariadb
when: enable_central_database | bool
- name: "create {{docker_compose_instance_directory}}"
file:
path: "{{docker_compose_instance_directory}}"

View File

@ -16,15 +16,30 @@ services:
YOURLS_SITE: "https://{{domain}}"
YOURLS_USER: "{{yourls_user}}"
YOURLS_PASS: "{{yourls_user_password}}"
{% if not ( enable_central_database | lower | bool ) %}
links:
- database
depends_on:
- database
{% include 'templates/docker-mariadb-service.yml.j2' %}
database:
logging:
driver: journald
image: mariadb
restart: always
environment:
MYSQL_DATABASE: "yourls"
MYSQL_USER: "yourls"
MYSQL_PASSWORD: "{{yourls_database_password}}"
MYSQL_ROOT_PASSWORD: "{{yourls_database_password}}"
MARIADB_AUTO_UPGRADE: "1"
volumes:
- database:/var/lib/mysql
healthcheck:
test: "/usr/bin/mariadb --user=yourls --password={{yourls_database_password}} --execute \"SHOW DATABASES;\""
interval: 3s
timeout: 1s
retries: 5
volumes:
database:
{% endif %}
networks:
default:
driver: bridge

View File

@ -9,7 +9,6 @@
MYSQL_PASSWORD: "{{database_password}}"
MYSQL_ROOT_PASSWORD: "{{database_password}}"
MARIADB_AUTO_UPGRADE: "1"
command: "--transaction-isolation=READ-COMMITTED --binlog-format=ROW"
volumes:
- database:/var/lib/mysql
healthcheck:

View File

@ -5,7 +5,6 @@
- POSTGRES_PASSWORD={{database_password}}
- POSTGRES_USER={{database_username}}
- POSTGRES_DB={{database_databasename}}
- POSTGRES_INITDB_ARGS="--encoding=UTF8 --locale=C"
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U {{database_databasename}}"]