Merge branch 'master' of github.com:kevinveenbirkenbach/server-playbook

This commit is contained in:
Kevin Veen-Birkenbach 2024-01-04 00:18:50 +01:00
commit f1e5810ec9
110 changed files with 501 additions and 674 deletions

View File

@ -1,9 +1,8 @@
---
# general setup
- name: general setup
- name: update device
hosts: all
become: true
tasks:
roles:
- role: update
when: execute_updates | bool

View File

@ -1,6 +1,7 @@
# General
verbose: false # Prints well formated debug information
top_domain: "localhost"
verbose: false # Prints well formated debug information
top_domain: "localhost"
backups_folder_path: "/Backups/"
# Server Tact Variables
@ -86,6 +87,9 @@ system_maintenance_manipulation_services:
## Total System Maintenance Services
system_maintenance_services: "{{ system_maintenance_backup_services + system_maintenance_cleanup_services + system_maintenance_manipulation_services }}"
### Define Variables for Docker Volume Health services
whitelisted_anonymous_docker_volumes: []
# Webserver Configuration
## Nginx-Specific Path Configurations

View File

@ -46,7 +46,6 @@
cmd: "python database_entry_seeder.py databases.csv {{docker_compose_project_name}} {{database_host}} {{database_databasename}} {{database_username}} {{database_password}}"
chdir: "{{backup_docker_to_local_folder}}"
when: >
docker_compose_project_name is defined or
database_host is defined or
database_databasename is defined or
database_username is defined or
@ -59,8 +58,7 @@
owner: root
group: root
when: >
(docker_compose_project_name is defined or
database_host is defined or
(database_host is defined or
database_databasename is defined or
database_username is defined or
database_password is defined) and

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,19 +1,13 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- 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
- name: configure db.env
template: src=db.env.j2 dest={{docker_compose_instance_directory}}/env/db.env
notify: docker compose project setup
- name: configure run.env
template: src=run.env.j2 dest={{docker_compose_instance_directory}}/env/run.env
notify: docker compose project setup

View File

@ -1,9 +0,0 @@
# These could be changed
MYSQL_DATABASE={{database_databasename}}
MYSQL_USER={{database_username}}
# This should definitely be changed to something long and random
MYSQL_PASSWORD={{database_password}}
# You should probably leave this
MYSQL_ROOT_PASSWORD={{database_password}}

View File

@ -1,6 +1,9 @@
version: '3.7'
services:
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
application:
image: docker.io/akaunting/akaunting:{{version_akaunting}}
build:
@ -14,15 +17,10 @@ services:
- env/run.env
environment:
- AKAUNTING_SETUP
{% if not ( enable_central_database | lower | bool ) %}
depends_on:
- database
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
volumes:
{% include 'templates/docker-compose-volumes.yml.j2' %}
data:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -3,12 +3,12 @@ APP_URL=https://{{domain}}
LOCALE=en-US
# Don't change this unless you rename your database container or use rootless podman, in case of using rootless podman you should set it to 127.0.0.1 (NOT localhost)
DB_HOST=akaunting-db
DB_HOST={{database_host}}
# Change these to match env/db.env
DB_DATABASE=akaunting
DB_USERNAME=admin
DB_PASSWORD={{akaunting_database_password}}
DB_DATABASE={{database_databasename}}
DB_USERNAME={{database_username}}
DB_PASSWORD={{database_password}}
# You should change this to a random string of three numbers or letters followed by an underscore
DB_PREFIX=asd_

View File

@ -1,9 +1,6 @@
docker_compose_project_name: "akaunting"
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
docker_compose_file_path: "{{docker_compose_instance_directory}}docker-compose.yml"
docker_compose_backup_path: "/tmp/{{docker_compose_project_name}}-docker-compose-backup.yml"
database_host: "database"
database_databasename: "{{docker_compose_project_name}}"
database_username: "admin"
database_type: "mariadb"
database_password: "{{akaunting_database_password}}"
repository_address: "https://github.com/akaunting/docker.git"

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,4 +1,7 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- name: receive {{ mail_interface_domain }} certificate
command: certbot certonly --agree-tos --email {{ administrator_email }} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{ mail_interface_domain }}
@ -11,10 +14,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

@ -1,30 +1,29 @@
version: '3.2'
services:
{% include 'templates/docker-service-redis.yml.j2' %}
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
web:
image: attendize_web:latest
ports:
- "{{http_port}}:80"
#- "8081:443"
volumes:
- .:/usr/share/nginx/html
- .:/var/www
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- maildev
- redis
- worker
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
maildev:
worker:
env_file:
- ./.env
{% include 'templates/docker-container-networks.yml.j2' %}
worker:
image: attendize_worker:latest
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- maildev
- redis
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
maildev:
{% include 'templates/docker-container-networks.yml.j2' %}
volumes:
- .:/usr/share/nginx/html
- .:/var/www
@ -33,18 +32,10 @@ services:
image: maildev/maildev
ports:
- "{{ mail_interface_http_port }}:1080"
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
{% 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:
{% include 'templates/docker-compose-volumes.yml.j2' %}
redis:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -1,11 +1,8 @@
---
docker_compose_project_name: "attendize"
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
docker_compose_file_path: "{{docker_compose_instance_directory}}docker-compose.yml"
docker_compose_backup_path: "/tmp/{{docker_compose_project_name}}-docker-compose-backup.yml"
mail_interface_domain: "mail.{{domain}}"
database_host: "database"
database_databasename: "{{docker_compose_project_name}}"
database_username: "{{docker_compose_project_name}}"
database_type: "mariadb"
database_password: "{{attendize_database_password}}"
repository_address: "https://github.com/Attendize/Attendize.git"

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,4 +1,7 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml

View File

@ -1,6 +1,11 @@
version: '2'
services:
{% include 'templates/docker-service-redis.yml.j2' %}
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
baserow:
image: baserow/baserow:1.19.1
restart: always
@ -12,5 +17,11 @@ services:
- data:/baserow/data
ports:
- "{{http_port}}:80"
volumes:
data:
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
data:
redis:
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -8,3 +8,13 @@ EMAIL_SMTP_PORT={{ system_email_smtp_port }}
EMAIL_SMTP_USER={{ system_email_username }}
EMAIL_SMTP_PASSWORD={{ system_email_password }}
EMAIL_SMTP_USE_TLS={{ system_email_tls | upper }}
DATABASE_USER={{ database_username }}
DATABASE_NAME={{ database_databasename }}
DATABASE_HOST={{ database_host }}
DATABASE_PORT=5432
DATABASE_PASSWORD={{ database_password }}
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=

View File

@ -1,2 +1,4 @@
docker_compose_project_name: "baserow"
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
database_password: "{{ baserow_database_password }}"
database_version: "{{ baserow_database_version | default(postgres_default_version) }}"
database_type: "postgres"

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,4 +1,11 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: load docker compose dependencies
include_role:
name: docker-compose
- name: "include task certbot-matomo.yml"
include_tasks: certbot-matomo.yml

View File

@ -1,6 +1,5 @@
docker_compose_project_name: "bigbluebutton"
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
database_host: "postgres"
database_databasename: "greenlight-v3"
database_username: "postgres"
database_password: ""
docker_compose_project_name: "bigbluebutton"
database_host: "postgres" # needs to be fixed
database_databasename: "greenlight-v3"
database_username: "postgres"
database_password: ""

View File

@ -1,2 +0,0 @@
dependencies:
- nginx-docker-reverse-proxy

View File

@ -1,4 +1,7 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
loop: "{{ domains }}"

View File

@ -63,13 +63,21 @@ env:
## TODO: The SMTP mail server used to validate new accounts and send notifications
# SMTP ADDRESS, username, and password are required
# WARNING the char '#' in SMTP password can cause problems!
DISCOURSE_SMTP_ADDRESS: {{system_email_host}}
DISCOURSE_SMTP_PORT: {{system_email_smtp_port}}
DISCOURSE_SMTP_USER_NAME: {{system_email}}
DISCOURSE_SMTP_PASSWORD: {{system_email_password}}
DISCOURSE_SMTP_ADDRESS: {{ system_email_host }}
DISCOURSE_SMTP_PORT: {{ system_email_smtp_port }}
DISCOURSE_SMTP_USER_NAME: {{ system_email }}
DISCOURSE_SMTP_PASSWORD: {{ system_email_password }}
DISCOURSE_SMTP_ENABLE_START_TLS: {{ system_email_start_tls | upper }}
DISCOURSE_SMTP_DOMAIN: {{system_email_domain}}
DISCOURSE_NOTIFICATION_EMAIL: {{system_email}}
DISCOURSE_SMTP_DOMAIN: {{ system_email_domain }}
DISCOURSE_NOTIFICATION_EMAIL: {{ system_email }}
{% if enable_central_database | bool %}
# Database Configuration
DISCOURSE_DB_USERNAME: {{ database_username }}
DISCOURSE_DB_PASSWORD: {{ database_password }}
DISCOURSE_DB_HOST: {{ database_host }}
DISCOURSE_DB_NAME: {{ database_databasename }}
{% if enable_central_database | bool %}
## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
#LETSENCRYPT_ACCOUNT_EMAIL: administrator@veen.world
@ -85,7 +93,7 @@ env:
## The Docker container is stateless; all data is stored in /shared
volumes:
- volume:
host: discourse_application_data
host: discourse_data
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log

View File

@ -1 +1,4 @@
docker_compose_instance_directory: "{{path_docker_compose_instances}}discourse/"
docker_compose_project_name: "attendize"
database_password: "{{ baserow_database_password }}"
database_version: "{{ baserow_database_version | default(postgres_default_version) }}"
database_type: "postgres"

View File

@ -23,8 +23,6 @@ services:
# Use single node discovery in order to disable production mode and avoid bootstrap checks.
# see: https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
discovery.type: single-node
networks:
- elk
logstash:
build:
@ -47,8 +45,6 @@ services:
- "9600:9600"
environment:
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
networks:
- elk
depends_on:
- elasticsearch
@ -64,14 +60,8 @@ services:
read_only: true
ports:
- "127.0.0.1:{{ http_port }}:5601"
networks:
- elk
depends_on:
- elasticsearch
networks:
elk:
driver: bridge
volumes:
elasticsearch:

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,12 +1,10 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- 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

@ -2,48 +2,41 @@ version: "3"
services:
{% include 'templates/docker-redis-service.yml.j2' %}
env_file: .env
{% include 'templates/docker-service-redis.yml.j2' %}
celeryworker:
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}
environment:
- C_FORCE_ROOT=true
volumes:
- "data:${MEDIA_ROOT}"
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}
celerybeat:
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
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}
api:
restart: always
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
depends_on:
- postgres
- redis
env_file: .env
volumes:
- "data:${MEDIA_ROOT}"
#- "${STATIC_ROOT}:${STATIC_ROOT}"
ports:
- "5000"
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}
front:
restart: always
@ -61,15 +54,10 @@ services:
ports:
# override those variables in your .env file if needed
- "${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT}:80"
{% include 'templates/docker-container-networks.yml.j2' %}
{% if not ( enable_central_database | lower | bool ) %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
volumes:
{% include 'templates/docker-compose-volumes.yml.j2' %}
data:
redis:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -1,7 +1,5 @@
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) }}"
database_type: "postgres"

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,12 +1,10 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- 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,9 @@
version: '3'
services:
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
application:
logging:
driver: journald
@ -27,20 +30,10 @@ services:
- 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 %}
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
volumes:
{% include 'templates/docker-compose-volumes.yml.j2' %}
data:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
networks:
default:
driver: bridge
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -1,6 +1,3 @@
docker_compose_project_name: "gitea"
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: "{{gitea_database_password}}"
database_password: "{{gitea_database_password}}"
database_type: "mariadb"

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,12 +1,10 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- 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

@ -1,5 +1,10 @@
version: '3.6'
services:
{% include 'templates/docker-service-redis.yml.j2' %}
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
web:
image: 'gitlab/gitlab-ee:latest'
restart: always
@ -32,24 +37,13 @@ services:
- 'logs:/var/log/gitlab'
- '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-container-depends-on-database-redis.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-redis-service.yml.j2' %}
{% include 'templates/docker-compose-networks.yml.j2' %}
{% if not ( enable_central_database | lower | bool ) %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
volumes:
{% include 'templates/docker-compose-volumes.yml.j2' %}
redis:
config:
logs:
data:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}

View File

@ -1,7 +1,4 @@
docker_compose_project_name: "gitlab"
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: "{{gitlab_database_password}}"
database_version: "{{ gitlab_database_version | default(postgres_default_version) }}"
database_version: "{{ gitlab_database_version | default(postgres_default_version) }}"
database_type: "postgres"

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,15 +1,13 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
loop: "{{ domains }}"
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

@ -1,6 +1,9 @@
version: '3'
services:
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
application:
image: joomla
logging:
@ -11,21 +14,14 @@ 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"
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
{% if not ( enable_central_database | lower | bool ) %}
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
volumes:
{% include 'templates/docker-compose-volumes.yml.j2' %}
data:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -1,6 +1,3 @@
docker_compose_project_name: "joomla"
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: "{{joomla_database_password}}"
database_password: "{{joomla_database_password}}"
database_type: "postgres"

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,12 +1,10 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- 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-service-' + database_type + '.yml.j2' %}
application:
restart: unless-stopped
image: listmonk/listmonk:latest
@ -11,13 +13,7 @@ services:
- TZ=Etc/UTC
volumes:
- ./config.toml:/listmonk/config.toml
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
{% if not ( enable_central_database | lower | bool ) %}
depends_on:
- database
{% include 'templates/docker-postgres-service.yml.j2' %}
volumes:
database:
{% endif %}
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -1,7 +1,4 @@
docker_compose_project_name: "listmonk"
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: "{{listmonk_database_password}}"
database_version: "{{ listmonk_database_version | default(postgres_default_version) }}"
database_version: "{{ listmonk_database_version | default(postgres_default_version) }}"
database_type: "postgres"

View File

@ -1,3 +1,2 @@
dependencies:
- docker-compose
- systemd-notifier

View File

@ -1,4 +1,7 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
vars:
@ -28,11 +31,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

@ -2,27 +2,16 @@ version: '2.2'
services:
{% include 'templates/docker-redis-service.yml.j2' %}
env_file: mailu.env
depends_on:
- resolver
dns:
- 192.168.203.254
depends_on:
- resolver
dns:
- 192.168.203.254
networks:
- default
- webmail
- radicale
{% include 'templates/docker-service-redis.yml.j2' %}
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
# Core services
resolver:
image: ghcr.io/mailu/unbound:{{version_mailu}}
env_file: mailu.env
restart: always
networks:
{% include 'templates/docker-container-networks.yml.j2' %}
default:
ipv4_address: 192.168.203.254
logging:
@ -46,17 +35,13 @@ services:
volumes:
- "/etc/mailu/overrides/nginx:/overrides:ro"
- "/etc/mailu/certs:/certs"
depends_on:
{% include 'templates/docker-container-depends-on-also-database.yml.j2' %}
resolver:
condition: service_started
{% if not ( enable_central_database | lower | bool ) %}
database:
condition: service_healthy
{% endif %}
networks:
- default
- webmail
- radicale
{% include 'templates/docker-container-networks.yml.j2' %}
default:
webmail:
radicale:
dns:
- 192.168.203.254
@ -67,17 +52,15 @@ services:
volumes:
- "admin_data:/data"
- "dkim:/dkim"
depends_on:
- resolver
- front
- redis
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
resolver:
front:
logging:
driver: journald
dns:
- 192.168.203.254
{% include 'templates/docker-container-networks.yml.j2' %}
imap:
image: ghcr.io/mailu/dovecot:{{version_mailu}}
restart: always
@ -92,6 +75,7 @@ services:
- 192.168.203.254
logging:
driver: journald
{% include 'templates/docker-container-networks.yml.j2' %}
smtp:
image: ghcr.io/mailu/postfix:{{version_mailu}}
@ -107,6 +91,7 @@ services:
- 192.168.203.254
logging:
driver: journald
{% include 'templates/docker-container-networks.yml.j2' %}
oletools:
image: ghcr.io/mailu/oletools:{{version_mailu}}
@ -116,8 +101,8 @@ services:
- resolver
dns:
- 192.168.203.254
networks:
- noinet
{% include 'templates/docker-container-networks.yml.j2' %}
noinet:
antispam:
image: ghcr.io/mailu/rspamd:{{version_mailu}}
@ -134,11 +119,12 @@ services:
- resolver
dns:
- 192.168.203.254
networks:
- default
- noinet
logging:
driver: journald
{% include 'templates/docker-container-networks.yml.j2' %}
default:
noinet:
# Optional services
antivirus:
@ -153,6 +139,7 @@ services:
- 192.168.203.254
logging:
driver: journald
{% include 'templates/docker-container-networks.yml.j2' %}
webdav:
image: ghcr.io/mailu/radicale:{{version_mailu}}
@ -168,6 +155,7 @@ services:
- resolver
dns:
- 192.168.203.254
{% include 'templates/docker-container-networks.yml.j2' %}
fetchmail:
image: ghcr.io/mailu/fetchmail:{{version_mailu}}
@ -184,6 +172,7 @@ services:
- resolver
dns:
- 192.168.203.254
{% include 'templates/docker-container-networks.yml.j2' %}
webmail:
image: ghcr.io/mailu/webmail:{{version_mailu}}
@ -198,18 +187,12 @@ services:
- resolver
logging:
driver: journald
networks:
- webmail
dns:
- 192.168.203.254
{% if not ( enable_central_database | lower | bool ) %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
{% include 'templates/docker-container-networks.yml.j2' %}
webmail:
volumes:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
smtp_queue:
admin_data:
webdav_data:
@ -218,7 +201,8 @@ volumes:
dkim:
dovecot_mail:
redis:
networks:
{% include 'templates/docker-compose-networks.yml.j2' %}
default:
driver: bridge
ipam:

View File

@ -1,6 +1,2 @@
docker_compose_project_name: "mailu"
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: "{{mailu_database_password}}"

View File

@ -24,4 +24,4 @@ Configure the role by setting the required variables. These can be set in the pl
- `database_password`: The password for the database user.
## Contributing
Contributions to this project are welcome. Please submit issues and pull requests with your suggestions.
Contributions to this project are welcome. Please submit issues and pull requests with your suggestions.

View File

@ -1,53 +1,66 @@
- name: Create Docker network for MariaDB
docker_network:
name: mariadb_network
name: central_mariadb_network
state: present
when: run_once_docker_mariadb is not defined
- name: Create a volume for MariaDB socket
docker_volume:
name: mariadb_socket
when: run_once_docker_mariadb is not defined
- name: install MariaDB
docker_container:
name: mariadb
name: central-mariadb
image: mariadb:latest #could lead to problems with nextcloud
detach: yes
env:
MARIADB_ROOT_PASSWORD: "{{central_mariadb_root_password}}"
MARIADB_AUTO_UPGRADE: "1"
networks:
- name: mariadb_network
- name: central_mariadb_network
volumes:
- central_mariadb_database:/var/lib/mysql
published_ports:
- "127.0.0.1:3306:3306"
- "127.0.0.1:3306:3306" # can be that this will be removed if all applications use sockets
command: "--transaction-isolation=READ-COMMITTED --binlog-format=ROW" #for nextcloud
when: run_once_docker_mariadb is not defined
- name: wait for availability of mariadb
- name: install python-mysqlclient
pacman:
name: python-mysqlclient
state: present
when: run_once_docker_mariadb is not defined
- name: wait for database
wait_for:
host: "127.0.0.1"
port: "3306"
delay: 0
timeout: 120
host: 127.0.0.1
port: 3306
delay: 10
timeout: 300
when: run_once_docker_mariadb is not defined
- name: create database
mysql_db:
name: "{{database_databasename}}"
name: "{{ database_databasename }}"
state: present
login_user: root
login_password: "{{central_mariadb_root_password}}"
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}}"
host: "%"
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:

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,15 +1,13 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- name: "include create-domains.yml"
include_tasks: create-domains.yml
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

@ -10,9 +10,11 @@ DB_PORT=5432
DB_NAME={{database_databasename}}
DB_USER={{database_username}}
DB_PASS={{database_password}}
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
SMTP_SERVER={{system_email_host}}
SMTP_PORT={{system_email_smtp_port}}
SMTP_LOGIN={{system_email_username}}

View File

@ -1,83 +1,56 @@
version: '3'
services:
{% include 'templates/docker-redis-service.yml.j2' %}
{% include 'templates/docker-service-redis.yml.j2' %}
networks:
- internal_network
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
web:
image: tootsuite/mastodon:{{version_mastodon}}
restart: always
env_file: .env.production
command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000"
networks:
- external_network
- internal_network
healthcheck:
# prettier-ignore
test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:3000/health || exit 1']
ports:
- "127.0.0.1:{{http_port}}:3000"
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- redis
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
volumes:
- data:/mastodon/public/system
logging:
driver: journald
{% include 'templates/docker-container-networks.yml.j2' %}
streaming:
image: tootsuite/mastodon:{{version_mastodon}}
restart: always
env_file: .env.production
command: node ./streaming
networks:
- external_network
- internal_network
healthcheck:
# prettier-ignore
test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:4000/api/v1/streaming/health || exit 1']
ports:
- "127.0.0.1:{{stream_port}}:4000"
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- redis
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
logging:
driver: journald
{% include 'templates/docker-container-networks.yml.j2' %}
sidekiq:
image: tootsuite/mastodon:{{version_mastodon}}
restart: always
env_file: .env.production
command: bundle exec sidekiq
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- redis
networks:
- external_network
- internal_network
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
volumes:
- data:/mastodon/public/system
healthcheck:
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 %}
{% include 'templates/docker-container-networks.yml.j2' %}
volumes:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
redis:
data:
networks:
external_network:
internal_network:
internal: true
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -1,7 +1,4 @@
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_version: "{{ mastodon_database_version | default(postgres_default_version) }}"
database_type: "postgres"

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,12 +1,10 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- 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,9 @@
version: '3'
services:
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
application:
logging:
driver: journald
@ -16,17 +19,10 @@ services:
MATOMO_DATABASE_DBNAME: "{{database_databasename}}"
volumes:
- data:/var/www/html
{% if not ( enable_central_database | lower | bool ) %}
depends_on:
- database
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}
{% endif %}
volumes:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
data:
networks:
default:
driver: bridge
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -1,7 +1,4 @@
---
docker_compose_project_name: "matomo"
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_type: "mariadb"
database_password: "{{matomo_database_password}}"

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,14 +1,12 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
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

@ -1,7 +1,9 @@
version: '3.1'
services:
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
synapse:
image: matrixdotorg/synapse:latest
restart: always
@ -16,11 +18,8 @@ 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 %}
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}
element:
image: vectorim/element-web:latest
@ -29,6 +28,7 @@ services:
- ./element-config.json:/app/config.json
ports:
- "127.0.0.1:{{element_http_port}}:80"
{% include 'templates/docker-container-networks.yml.j2' %}
# bridges
#mautrix-telegram:
@ -59,15 +59,11 @@ services:
# volumes:
# - instagram_bridge_data:/data
volumes:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
synapse_data:
#telegram_bridge_data:
#whatsapp_bridge_data:
#facebook_bridge_data:
#instagram_bridge_data:
networks:
default:
driver: bridge
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -1,7 +1,5 @@
---
docker_compose_project_name: "matrix"
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: "{{matrix_database_password}}"
database_password: "{{matrix_database_password}}"
database_version: "{{ baserow_database_version | default(postgres_default_version) }}"
database_type: "postgres"

View File

@ -9,7 +9,7 @@
log_driver: journald
image: mediawiki
restart: always
links:
depends_on:
- database
volumes:
- "mediawiki-data:/var/www/html/"
@ -20,10 +20,10 @@
image: mariadb
environment:
MYSQL_DATABASE: mediawiki
MYSQL_ROOT_PASSWORD: "{{mediawiki_mysql_user_password}}"
MYSQL_ROOT_PASSWORD: "{{mediawiki_database_password}}"
MYSQL_USER: mediawiki
MYSQL_PASSWORD: "{{mediawiki_mysql_user_password}}"
MYSQL_PASSWORD: "{{mediawiki_database_password}}"
MARIADB_AUTO_UPGRADE: "1"
volumes:
- mediawiki-database:/var/lib/mysql
- database:/var/lib/mysql
restart: always

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,15 +1,13 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- name: "include tasks create-proxy-with-domain-replace.yml"
include_tasks: create-proxy-with-domain-replace.yml
loop: "{{ domains + [source_domain] }}"
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

@ -1,5 +1,8 @@
version: '3.8'
services:
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
application:
logging:
driver: journald
@ -9,10 +12,9 @@ services:
restart: always
volumes:
- data:/var/www/html
{% if not ( enable_central_database | lower | bool ) %}
depends_on:
- database
{% endif %}
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}
server:
logging:
driver: journald
@ -25,16 +27,9 @@ services:
volumes:
- "{{docker_compose_instance_confd_directory}}:{{target_mount_conf_d_directory}}:ro"
- "data:/var/www/html:ro"
{% include 'templates/docker-container-networks.yml.j2' %}
{% 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 %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
data:
networks:
default:
driver: bridge
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -1,11 +1,8 @@
---
docker_compose_project_name: "mybb"
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
docker_compose_instance_confd_directory: "{{docker_compose_instance_directory}}conf.d/"
docker_compose_instance_confd_defaultconf_file: "{{docker_compose_instance_confd_directory}}default.conf"
target_mount_conf_d_directory: "{{nginx_servers_directory}}"
source_domain: "mybb.{{top_domain}}"
database_host: "database"
database_databasename: "{{docker_compose_project_name}}"
database_username: "{{docker_compose_project_name}}"
database_password: "{{mybb_database_password}}"
database_password: "{{mybb_database_password}}"
database_type: "mariadb"

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,4 +1,7 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- name: "include task certbot-matomo.yml"
include_tasks: certbot-matomo.yml
@ -20,11 +23,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

@ -1,6 +1,11 @@
version: '3'
services:
{% include 'templates/docker-service-redis.yml.j2' %}
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
application:
image: "nextcloud:{{version_nextcloud}}-fpm-alpine"
restart: always
@ -13,12 +18,8 @@ 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 %}
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}
web:
image: nginx:alpine
@ -27,14 +28,11 @@ services:
restart: always
ports:
- "127.0.0.1:{{http_port}}:80"
depends_on:
- application
volumes:
- "{{path_docker_volumes}}nextcloud/nginx.conf:/etc/nginx/nginx.conf:ro"
volumes_from:
- application
{% include 'templates/docker-redis-service.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}
cron:
image: "nextcloud:{{version_nextcloud}}-fpm-alpine"
@ -44,17 +42,11 @@ services:
volumes:
- 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 %}
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
data:
redis:
networks:
default:
driver: bridge
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -1,7 +1,4 @@
---
docker_compose_project_name: "nextcloud"
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: "{{nextcloud_database_password}}"
database_password: "{{nextcloud_database_password}}"
database_type: "mariadb"

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,12 +1,10 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- 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

@ -1,21 +1,8 @@
version: "3.7"
networks:
frontend:
backend:
volumes:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
data:
x-op-restart-policy: &restart_policy
restart: unless-stopped
x-op-image: &image
image: openproject/community:${TAG:-13}
x-op-app: &app
<<: [*image, *restart_policy]
restart: unless-stopped
image: openproject/community:${TAG:-13}
environment:
OPENPROJECT_HTTPS: "${OPENPROJECT_HTTPS}"
OPENPROJECT_HOST__NAME: "${OPENPROJECT_HOST__NAME}"
@ -30,26 +17,20 @@ x-op-app: &app
IMAP_ENABLED: "${IMAP_ENABLED:-false}"
volumes:
- "data:/var/openproject/assets"
{% if not ( enable_central_database | lower | bool ) %}
- "database:/var/openproject/pgdata"
{% endif %}
# - "database:/var/openproject/pgdata"
services:
{% if not ( enable_central_database | lower | bool ) %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
networks:
- backend
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
cache:
image: memcached
<<: *restart_policy
networks:
- backend
restart: unless-stopped
{% include 'templates/docker-container-networks.yml.j2' %}
proxy:
<<: [*image, *restart_policy]
restart: unless-stopped
image: openproject/community:${TAG:-13}
command: "./docker/prod/proxy"
ports:
- "${PORT}:80"
@ -58,26 +39,18 @@ services:
OPENPROJECT_RAILS__RELATIVE__URL__ROOT: "${OPENPROJECT_RAILS__RELATIVE__URL__ROOT:-}"
depends_on:
- web
networks:
- frontend
{% include 'templates/docker-container-networks.yml.j2' %}
volumes:
- "data:/var/openproject/assets"
{% if not ( enable_central_database | lower | bool ) %}
- "database:/var/openproject/pgdata"
{% endif %}
# - "database:/var/openproject/pgdata" Should definetly not be necessary here
web:
<<: *app
command: "./docker/prod/web"
networks:
- frontend
- backend
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- cache
- seeder
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-container-depends-on-also-database.yml.j2' %}
cache:
seeder:
labels:
- autoheal=true
healthcheck:
@ -99,30 +72,26 @@ services:
worker:
<<: *app
command: "./docker/prod/worker"
networks:
- backend
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- cache
- seeder
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-container-depends-on-also-database.yml.j2' %}
cache:
seeder:
cron:
<<: *app
command: "./docker/prod/cron"
networks:
- backend
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- cache
- seeder
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-container-depends-on-also-database.yml.j2' %}
cache:
seeder:
seeder:
<<: *app
command: "./docker/prod/seeder"
restart: on-failure
networks:
- backend
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-compose-networks.yml.j2' %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
data:

View File

@ -3,8 +3,7 @@ repository_directory: "{{ path_docker_compose_instances }}{{docker
docker_compose_instance_directory: "{{repository_directory}}compose/"
docker_compose_file_path: "{{docker_compose_instance_directory}}docker-compose.yml"
docker_compose_backup_path: "/tmp/{{docker_compose_project_name}}-docker-compose-backup.yml"
database_host: "database"
database_databasename: "{{docker_compose_project_name}}"
database_username: "postgres"
database_password: "{{openproject_database_password}}"
repository_address: "https://github.com/opf/openproject-deploy"
repository_address: "https://github.com/opf/openproject-deploy"
database_version: "{{ openproject_database_version | default(postgres_default_version) }}"
database_type: "postgres"

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,15 +1,13 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- name: "include create-domains.yml"
include_tasks: create-domains.yml
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

@ -1,6 +1,11 @@
version: "3.3"
services:
{% include 'templates/docker-service-redis.yml.j2' %}
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
application:
image: chocobozzz/peertube:production-bullseye
env_file:
@ -13,23 +18,13 @@ services:
- data:/data
- config:/config
restart: "always"
depends_on:
- redis
{% if not ( enable_central_database | lower | bool ) %}
- database
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
{% include 'templates/docker-redis-service.yml.j2' %}
env_file:
- .env
volumes:
{% include 'templates/docker-compose-volumes.yml.j2' %}
assets:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
data:
redis:
config:
config:
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -1,6 +1,3 @@
docker_compose_project_name: "peertube"
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_type: "mariadb"
database_password: "{{peertube_database_password}}"

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,12 +1,10 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- 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,11 @@
version: '2'
services:
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
{% include 'templates/docker-service-redis.yml.j2' %}
application:
image: zknt/pixelfed
restart: always
@ -9,16 +14,13 @@ services:
env_file:
- ./env
volumes:
- "application_data:/var/www/storage"
- "data:/var/www/storage"
- "bootstrap:/var/www/bootstrap"
- "./env:/var/www/.env"
ports:
- "{{http_port}}:80"
depends_on:
{% if not ( enable_central_database | lower | bool ) %}
- database
{% endif %}
- redis
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}
worker:
image: zknt/pixelfed
restart: always
@ -27,7 +29,7 @@ services:
env_file:
- ./env
volumes:
- "application_data:/var/www/storage"
- "data:/var/www/storage"
- "bootstrap:/var/www/bootstrap"
- "./env:/var/www/.env"
entrypoint: /worker-entrypoint.sh
@ -36,22 +38,13 @@ services:
interval: 60s
timeout: 5s
retries: 1
depends_on:
- redis
- application
{% if not ( enable_central_database | lower | bool ) %}
- database
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
application:
{% include 'templates/docker-container-networks.yml.j2' %}
{% 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 %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
redis:
application_data:
bootstrap:
data:
bootstrap:
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -1,7 +1,4 @@
docker_compose_project_name: "pixelfed"
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
nginx_docker_reverse_proxy_extra_configuration: "client_max_body_size 512M;"
database_host: "database"
database_databasename: "{{docker_compose_project_name}}"
database_username: "{{docker_compose_project_name}}"
database_type: "mariadb"
database_password: "{{pixelfed_database_password}}"

View File

@ -1,6 +1,6 @@
- name: Create Docker network for PostgreSQL
docker_network:
name: postgres_network
name: central_postgres_network
state: present
when: run_once_docker_postgres is not defined
@ -13,7 +13,7 @@
POSTGRES_PASSWORD: "{{ central_postgres_password }}"
POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C" # Necessary for docker-matrix
networks:
- name: postgres_network
- name: central_postgres_network
published_ports:
- "127.0.0.1:5432:5432"
when: run_once_docker_postgres is not defined
@ -34,7 +34,6 @@
login_password: "{{ central_postgres_password }}"
login_host: 127.0.0.1
login_port: 5432
listen: create database
- name: Create database user
postgresql_user:
@ -47,7 +46,6 @@
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:

View File

@ -1,3 +1,2 @@
docker_compose_project_name: "roulette-wheel"
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
app_path: "{{docker_compose_instance_directory}}/app/"

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,5 +1,7 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
loop: "{{ domains }}"
@ -8,11 +10,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

@ -17,18 +17,10 @@ services:
WORDPRESS_DB_NAME: "{{database_databasename}}"
volumes:
- data:/var/www/html
{% if not ( enable_central_database | lower | bool ) %}
depends_on:
- database
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
{% include 'templates/docker-compose-networks.yml.j2' %}
volumes:
{% if not ( enable_central_database | lower | bool ) %}
database:
{% endif %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
data:
networks:
default:
driver: bridge

View File

@ -1,7 +1,4 @@
docker_compose_project_name: "wordpress"
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
wordpress_max_upload_size: "64M"
database_host: "database"
database_databasename: "{{docker_compose_project_name}}"
database_username: "{{docker_compose_project_name}}"
database_type: "mariadb"
database_password: "{{wordpress_database_password}}"

View File

@ -1,2 +0,0 @@
dependencies:
- docker-compose

View File

@ -1,12 +1,10 @@
---
- name: "include docker-compose-common.yml"
include_tasks: docker-compose-common.yml
- 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,9 @@
version: '3'
services:
{% include 'templates/docker-service-' + database_type + '.yml.j2' %}
application:
logging:
driver: journald
@ -9,22 +12,16 @@ services:
ports:
- "127.0.0.1:{{http_port}}:80"
environment:
YOURLS_DB_HOST: "database:3306"
YOURLS_DB_USER: "yourls"
YOURLS_DB_PASS: "{{yourls_database_password}}"
YOURLS_DB_NAME: "yourls"
YOURLS_DB_HOST: "{{database_host}}"
YOURLS_DB_USER: "{{database_username}}"
YOURLS_DB_PASS: "{{database_password}}"
YOURLS_DB_NAME: "{{database_databasename}}"
YOURLS_SITE: "https://{{domain}}"
YOURLS_USER: "{{yourls_user}}"
YOURLS_PASS: "{{yourls_user_password}}"
{% if not ( enable_central_database | lower | bool ) %}
depends_on:
- database
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}
volumes:
database:
{% endif %}
networks:
default:
driver: bridge
{% include 'templates/docker-compose-volumes-just-database.yml.j2' %}
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -1,6 +1,3 @@
docker_compose_project_name: "yourls"
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_type: "mariadb"
database_password: "{{yourls_database_password}}"

View File

@ -4,6 +4,13 @@
notify: restart nginx
when: run_once_nginx is not defined
- name: install nginx-mod-headers-more for matomo
pacman:
name: nginx-mod-headers-more
state: present
notify: restart nginx
when: run_once_nginx is not defined and nginx_matomo_tracking | bool
- name: Ensure nginx configuration directories are present
file:
path: "{{ item }}"

View File

@ -1,4 +1,7 @@
{% if nginx_matomo_tracking | bool %}
load_module /usr/lib/nginx/modules/ngx_http_headers_more_filter_module.so;
{% endif %}
worker_processes auto;
events

View File

@ -0,0 +1,11 @@
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: load docker compose dependencies
include_role:
name: docker-compose
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool

View File

@ -0,0 +1,7 @@
# This template needs to be included in docker-compose.yml
networks:
{% if enable_central_database | bool %}
central_{{ database_type }}_network:
external: true
{% endif %}
{{docker_compose_project_name}}_network:

Some files were not shown because too many files have changed in this diff Show More