Compare commits

..

No commits in common. "f6652ad51cad039be284841822c1ecb6f1b212d8" and "2fe38a4059f799629a5bb2eb6f55a60d4038c903" have entirely different histories.

75 changed files with 490 additions and 442 deletions

View File

@ -1,18 +1,19 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- 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

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

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={{database_host}}
DB_HOST=akaunting-db
# Change these to match env/db.env
DB_DATABASE={{database_databasename}}
DB_USERNAME={{database_username}}
DB_PASSWORD={{database_password}}
DB_DATABASE=akaunting
DB_USERNAME=admin
DB_PASSWORD={{akaunting_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,6 +1,9 @@
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_type: "mariadb"
database_host: "database"
database_databasename: "{{docker_compose_project_name}}"
database_username: "admin"
database_password: "{{akaunting_database_password}}"
repository_address: "https://github.com/akaunting/docker.git"

View File

@ -1,12 +1,4 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- 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 }}
@ -19,5 +11,10 @@
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

@ -4,39 +4,47 @@ services:
image: attendize_web:latest
ports:
- "{{http_port}}:80"
#- "8081:443"
volumes:
- .:/usr/share/nginx/html
- .:/var/www
{% include 'templates/docker-container-depends-on.yml.j2' %}
maildev:
redis:
worker:
depends_on:
{% if not enable_central_database %}
- database
{% endif %}
- maildev
- redis
- worker
env_file:
- ./.env
{% include 'templates/docker-container-networks.yml.j2' %}
worker:
image: attendize_worker:latest
{% include 'templates/docker-container-depends-on.yml.j2' %}
maildev:
redis:
{% include 'templates/docker-container-networks.yml.j2' %}
depends_on:
{% if not enable_central_database %}
- database
{% endif %}
- maildev
- redis
volumes:
- .:/usr/share/nginx/html
- .:/var/www
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
maildev:
image: maildev/maildev
ports:
- "{{ mail_interface_http_port }}:1080"
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-container-depends-on.yml.j2' %}
{% include 'templates/docker-service-redis.yml.j2' %}
{% include 'templates/docker-redis-service.yml.j2' %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
{% if not enable_central_database %}
depends_on:
- database
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
volumes:
redis:
{% include 'templates/docker-compose-networks.yml.j2' %}
{% if not enable_central_database %}
database:
{% endif %}

View File

@ -1,8 +1,11 @@
---
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_type: "mariadb"
database_host: "database"
database_databasename: "{{docker_compose_project_name}}"
database_username: "{{docker_compose_project_name}}"
database_password: "{{attendize_database_password}}"
repository_address: "https://github.com/Attendize/Attendize.git"

View File

@ -1,12 +1,4 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml

View File

@ -12,15 +12,5 @@ services:
- data:/baserow/data
ports:
- "{{http_port}}:80"
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-container-depends-on.yml.j2' %}
{% include 'templates/docker-service-redis.yml.j2' %}
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
volumes:
data:
redis:
{% include 'templates/docker-compose-networks.yml.j2' %}

View File

@ -8,13 +8,3 @@ 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,4 +1,2 @@
docker_compose_project_name: "baserow"
database_password: "{{ baserow_database_password }}"
database_version: "{{ baserow_database_version | default(postgres_default_version) }}"
database_type: "postgres"
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"

View File

@ -1,12 +1,4 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
loop: "{{ domains }}"

View File

@ -71,14 +71,6 @@ env:
DISCOURSE_SMTP_DOMAIN: {{system_email_domain}}
DISCOURSE_NOTIFICATION_EMAIL: {{system_email}}
{% if enable_central_database %}
# 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 %}
## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
#LETSENCRYPT_ACCOUNT_EMAIL: administrator@veen.world
@ -93,7 +85,7 @@ env:
## The Docker container is stateless; all data is stored in /shared
volumes:
- volume:
host: discourse_data
host: discourse_application_data
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log

View File

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

View File

@ -23,6 +23,8 @@ 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:
@ -45,6 +47,8 @@ services:
- "9600:9600"
environment:
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
networks:
- elk
depends_on:
- elasticsearch
@ -60,8 +64,14 @@ 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,15 +1,12 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- 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,7 +2,7 @@ version: "3"
services:
{% include 'templates/docker-service-redis.yml.j2' %}
{% include 'templates/docker-redis-service.yml.j2' %}
env_file: .env
@ -10,7 +10,9 @@ services:
restart: always
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
depends_on:
{% include 'templates/docker-container-depends-on.yml.j2' %}
{% if not enable_central_database %}
- postgres
% endif %}
- redis
env_file: .env
command: celery -A funkwhale_api.taskapp worker -l INFO --concurrency=${CELERYD_CONCURRENCY-0}
@ -18,24 +20,23 @@ services:
- C_FORCE_ROOT=true
volumes:
- "data:${MEDIA_ROOT}"
{% include 'templates/docker-container-networks.yml.j2' %}
celerybeat:
restart: always
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
depends_on:
{% include 'templates/docker-container-depends-on.yml.j2' %}
{% if not enable_central_database %}
- postgres
% endif %}
- redis
env_file: .env
command: celery -A funkwhale_api.taskapp beat --pidfile= -l INFO
{% include 'templates/docker-container-networks.yml.j2' %}
api:
restart: always
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
depends_on:
{% include 'templates/docker-container-depends-on.yml.j2' %}
- postgres
- redis
env_file: .env
volumes:
@ -43,7 +44,6 @@ services:
#- "${STATIC_ROOT}:${STATIC_ROOT}"
ports:
- "5000"
{% include 'templates/docker-container-networks.yml.j2' %}
front:
restart: always
@ -61,12 +61,15 @@ 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' %}
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
{% if not enable_central_database %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
volumes:
data:
redis:
{% include 'templates/docker-compose-networks.yml.j2' %}
{% if not enable_central_database %}
database:
{% endif %}

View File

@ -1,5 +1,7 @@
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,15 +1,12 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- 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

@ -27,10 +27,18 @@ services:
- data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-container-depends-on.yml.j2' %}
{% if not enable_central_database %}
depends_on:
- database
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
volumes:
data:
{% if not enable_central_database %}
database:
{% endif %}
{% include 'templates/docker-compose-networks.yml.j2' %}
networks:
default:
driver: bridge

View File

@ -1,3 +1,6 @@
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_type: "mariadb"

View File

@ -1,15 +1,12 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- 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

@ -39,12 +39,17 @@ services:
{% endif %}
redis:
{% include 'templates/docker-service-redis.yml.j2' %}
{% include 'templates/docker-redis-service.yml.j2' %}
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
{% if not enable_central_database %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
volumes:
redis:
config:
logs:
data:
{% if not enable_central_database %}
database:
{% endif %}

View File

@ -1,4 +1,7 @@
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_type: "postgres"

View File

@ -1,18 +1,15 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- 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

@ -11,19 +11,21 @@ services:
JOOMLA_DB_PASSWORD: "{{database_password}}"
JOOMLA_DB_NAME: "{{database_databasename}}"
restart: always
{% include 'templates/docker-container-depends-on.yml.j2' %}
{% if not enable_central_database %}
depends_on:
- database
{% endif %}
volumes:
- data:/var/www/html
ports:
- "127.0.0.1:{{http_port}}:80"
{% include 'templates/docker-container-networks.yml.j2' %}
{% if enable_central_database %}
depends_on:
database:
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
{% if not enable_central_database %}
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
volumes:
data:
{% include 'templates/docker-compose-networks.yml.j2' %}
{% if not enable_central_database %}
database:
{% endif %}

View File

@ -1,3 +1,6 @@
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_type: "postgres"

View File

@ -1,15 +1,12 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- 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

@ -11,9 +11,13 @@ services:
- TZ=Etc/UTC
volumes:
- ./config.toml:/listmonk/config.toml
{% include 'templates/docker-container-networks.yml.j2' %}
{% include 'templates/docker-container-depends-on.yml.j2' %}
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
{% if not enable_central_database %}
depends_on:
- database
{% include 'templates/docker-compose-networks.yml.j2' %}
{% include 'templates/docker-postgres-service.yml.j2' %}
volumes:
database:
{% endif %}

View File

@ -1,4 +1,7 @@
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_type: "postgres"

View File

@ -1,12 +1,4 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
vars:
@ -36,6 +28,11 @@
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,9 +2,20 @@ version: '2.2'
services:
{% include 'templates/docker-service-redis.yml.j2' %}
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
{% 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
# Core services
resolver:
@ -14,10 +25,6 @@ services:
networks:
default:
ipv4_address: 192.168.203.254
{{docker_compose_project_name}}_network:
{% if enable_central_database %}
central_{{ database_type }}_network:
{% endif %}
logging:
driver: journald
@ -46,10 +53,10 @@ services:
database:
condition: service_healthy
{% endif %}
{% include 'templates/docker-container-networks.yml.j2' %}
default:
webmail:
radicale:
networks:
- default
- webmail
- radicale
dns:
- 192.168.203.254
@ -61,16 +68,16 @@ services:
- "admin_data:/data"
- "dkim:/dkim"
depends_on:
resolver:
front:
redis:
{% include 'templates/docker-container-depends-on.yml.j2' %}
- resolver
- front
- redis
{% if not enable_central_database %}
- database
{% endif %}
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
@ -85,7 +92,6 @@ services:
- 192.168.203.254
logging:
driver: journald
{% include 'templates/docker-container-networks.yml.j2' %}
smtp:
image: ghcr.io/mailu/postfix:{{version_mailu}}
@ -101,7 +107,6 @@ services:
- 192.168.203.254
logging:
driver: journald
{% include 'templates/docker-container-networks.yml.j2' %}
oletools:
image: ghcr.io/mailu/oletools:{{version_mailu}}
@ -111,8 +116,8 @@ services:
- resolver
dns:
- 192.168.203.254
{% include 'templates/docker-container-networks.yml.j2' %}
noinet:
networks:
- noinet
antispam:
image: ghcr.io/mailu/rspamd:{{version_mailu}}
@ -129,12 +134,11 @@ 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:
@ -149,7 +153,6 @@ services:
- 192.168.203.254
logging:
driver: journald
{% include 'templates/docker-container-networks.yml.j2' %}
webdav:
image: ghcr.io/mailu/radicale:{{version_mailu}}
@ -165,7 +168,6 @@ services:
- resolver
dns:
- 192.168.203.254
{% include 'templates/docker-container-networks.yml.j2' %}
fetchmail:
image: ghcr.io/mailu/fetchmail:{{version_mailu}}
@ -182,7 +184,6 @@ services:
- resolver
dns:
- 192.168.203.254
{% include 'templates/docker-container-networks.yml.j2' %}
webmail:
image: ghcr.io/mailu/webmail:{{version_mailu}}
@ -197,13 +198,18 @@ services:
- resolver
logging:
driver: journald
networks:
- webmail
dns:
- 192.168.203.254
{% include 'templates/docker-container-networks.yml.j2' %}
webmail:
{% if not enable_central_database %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
volumes:
{% include 'templates/docker-compose-volumes.yml.j2' %}
{% if not enable_central_database %}
database:
{% endif %}
smtp_queue:
admin_data:
webdav_data:
@ -212,8 +218,7 @@ volumes:
dkim:
dovecot_mail:
redis:
{% include 'templates/docker-compose-networks.yml.j2' %}
networks:
default:
driver: bridge
ipam:

View File

@ -1,21 +1,19 @@
- name: Create Docker network for MariaDB
docker_network:
name: central_mariadb_network
name: mariadb_network
state: present
when: run_once_docker_mariadb is not defined
- name: install MariaDB
docker_container:
name: central-mariadb
name: 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: central_mariadb_network
volumes:
- database:/var/lib/mysql
- name: mariadb_network
published_ports:
- "127.0.0.1:3306:3306"
command: "--transaction-isolation=READ-COMMITTED --binlog-format=ROW" #for nextcloud

View File

@ -1,18 +1,15 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- 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,11 +10,9 @@ 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,64 +1,83 @@
version: '3'
services:
{% include 'templates/docker-service-redis.yml.j2' %}
{% include 'templates/docker-redis-service.yml.j2' %}
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
networks:
- internal_network
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:
{% include 'templates/docker-container-depends-on.yml.j2' %}
redis:
condition: service_healthy
{% if not enable_central_database %}
- database
{% endif %}
- redis
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"
{% include 'templates/docker-container-depends-on.yml.j2' %}
redis:
condition: service_healthy
depends_on:
{% if not enable_central_database %}
- database
{% endif %}
- redis
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:
{% include 'templates/docker-container-depends-on.yml.j2' %}
redis:
condition: service_healthy
{% if not enable_central_database %}
- database
{% endif %}
- redis
networks:
- external_network
- internal_network
volumes:
- data:/mastodon/public/system
healthcheck:
test: ['CMD-SHELL', "ps aux | grep '[s]idekiq\ 6' || false"]
logging:
driver: journald
{% include 'templates/docker-container-networks.yml.j2' %}
{% if not enable_central_database %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
volumes:
{% if not enable_central_database %}
database:
{% endif %}
redis:
data:
{% include 'templates/docker-compose-networks.yml.j2' %}
networks:
external_network:
internal_network:
internal: true

View File

@ -1,4 +1,7 @@
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_type: "postgres"

View File

@ -1,15 +1,12 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- 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

@ -19,9 +19,14 @@ services:
{% if not enable_central_database %}
depends_on:
- database
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
volumes:
{% if not enable_central_database %}
database:
{% endif %}
data:
networks:
default:
driver: bridge

View File

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

View File

@ -1,18 +1,15 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- 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
vars:

View File

@ -19,7 +19,7 @@ services:
{% if not enable_central_database %}
depends_on:
- database
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
element:
@ -59,9 +59,15 @@ services:
# volumes:
# - instagram_bridge_data:/data
{% include 'templates/docker-compose-volumes.yml.j2' %}
volumes:
{% if not enable_central_database %}
database:
{% endif %}
synapse_data:
#telegram_bridge_data:
#whatsapp_bridge_data:
#facebook_bridge_data:
#instagram_bridge_data:
networks:
default:
driver: bridge

View File

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

View File

@ -1,18 +1,15 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- 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

@ -26,7 +26,15 @@ services:
- "{{docker_compose_instance_confd_directory}}:{{target_mount_conf_d_directory}}:ro"
- "data:/var/www/html:ro"
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
{% if not enable_central_database %}
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
volumes:
{% if not enable_central_database %}
database:
{% endif %}
data:
networks:
default:
driver: bridge

View File

@ -1,8 +1,11 @@
---
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_type: "mariadb"

View File

@ -1,12 +1,4 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- name: "include task certbot-matomo.yml"
include_tasks: certbot-matomo.yml
@ -28,6 +20,11 @@
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

@ -17,7 +17,7 @@ services:
depends_on:
- database
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
web:
@ -34,7 +34,7 @@ services:
volumes_from:
- application
{% include 'templates/docker-service-redis.yml.j2' %}
{% include 'templates/docker-redis-service.yml.j2' %}
cron:
image: "nextcloud:{{version_nextcloud}}-fpm-alpine"
@ -44,9 +44,17 @@ services:
volumes:
- data:/var/www/html
entrypoint: /cron.sh
{% include 'templates/docker-container-depends-on.yml.j2' %}
redis:
{% include 'templates/docker-compose-volumes.yml.j2' %}
depends_on:
{% if not enable_central_database %}
- database
{% endif %}
- redis
volumes:
{% if not enable_central_database %}
database:
{% endif %}
data:
redis:
networks:
default:
driver: bridge

View File

@ -1,4 +1,7 @@
---
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_type: "mariadb"

View File

@ -1,15 +1,12 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- 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

@ -4,7 +4,10 @@ networks:
frontend:
backend:
{% include 'templates/docker-compose-volumes.yml.j2' %}
volumes:
{% if not enable_central_database %}
database:
{% endif %}
data:
x-op-restart-policy: &restart_policy
@ -33,7 +36,9 @@ x-op-app: &app
services:
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
{% if not enable_central_database %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
networks:
- backend
@ -67,9 +72,12 @@ services:
networks:
- frontend
- backend
{% include 'templates/docker-container-depends-on.yml.j2' %}
cache:
seeder:
depends_on:
{% if not enable_central_database %}
- database
{% endif %}
- cache
- seeder
labels:
- autoheal=true
healthcheck:
@ -93,18 +101,24 @@ services:
command: "./docker/prod/worker"
networks:
- backend
{% include 'templates/docker-container-depends-on.yml.j2' %}
cache:
seeder:
depends_on:
{% if not enable_central_database %}
- database
{% endif %}
- cache
- seeder
cron:
<<: *app
command: "./docker/prod/cron"
networks:
- backend
{% include 'templates/docker-container-depends-on.yml.j2' %}
cache:
seeder:
depends_on:
{% if not enable_central_database %}
- database
{% endif %}
- cache
- seeder
seeder:
<<: *app

View File

@ -3,7 +3,8 @@ 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"
database_version: "{{ openproject_database_version | default(postgres_default_version) }}"
database_type: "postgres"

View File

@ -1,18 +1,15 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- 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

@ -18,16 +18,18 @@ services:
{% if not enable_central_database %}
- database
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
{% include 'templates/docker-postgres-service.yml.j2' %}
{% endif %}
{% include 'templates/docker-service-redis.yml.j2' %}
{% include 'templates/docker-redis-service.yml.j2' %}
env_file:
- .env
{% include 'templates/docker-compose-volumes.yml.j2' %}
volumes:
assets:
{% if not enable_central_database %}
database:
{% endif %}
data:
redis:
config:

View File

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

View File

@ -1,15 +1,12 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- 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,11 +1,6 @@
version: '2'
services:
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
{% include 'templates/docker-service-redis.yml.j2' %}
application:
image: zknt/pixelfed
restart: always
@ -19,8 +14,11 @@ services:
- "./env:/var/www/.env"
ports:
- "{{http_port}}:80"
{% include 'templates/docker-container-depends-on.yml.j2' %}
redis:
depends_on:
{% if not enable_central_database %}
- database
{% endif %}
- redis
worker:
image: zknt/pixelfed
restart: always
@ -38,11 +36,22 @@ services:
interval: 60s
timeout: 5s
retries: 1
{% include 'templates/docker-container-depends-on.yml.j2' %}
redis:
application:
depends_on:
- redis
- application
{% if not enable_central_database %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
- database
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
{% include 'templates/docker-redis-service.yml.j2' %}
volumes:
{% if not enable_central_database %}
database:
{% endif %}
redis:
application_data:
bootstrap:

View File

@ -1,4 +1,7 @@
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_type: "mariadb"
database_host: "database"
database_databasename: "{{docker_compose_project_name}}"
database_username: "{{docker_compose_project_name}}"
database_password: "{{pixelfed_database_password}}"

View File

@ -1,6 +1,6 @@
- name: Create Docker network for PostgreSQL
docker_network:
name: central_postgres_network
name: 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: central_postgres_network
- name: postgres_network
published_ports:
- "127.0.0.1:5432:5432"
when: run_once_docker_postgres is not defined

View File

@ -1,11 +1,4 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- name: "include tasks nginx-docker-proxy-domain.yml"
include_tasks: nginx-docker-proxy-domain.yml
@ -15,6 +8,11 @@
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

@ -21,8 +21,14 @@ services:
depends_on:
- database
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
{% include 'templates/docker-mariadb-service.yml.j2' %}
{% endif %}
{% include 'templates/docker-compose-volumes.yml.j2' %}
volumes:
{% if not enable_central_database %}
database:
{% endif %}
data:
networks:
default:
driver: bridge

View File

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

View File

@ -1,15 +1,12 @@
---
- name: include docker vars
include_vars: vars/docker-database-service.yml.j2
- name: create central database
include_role:
name: docker-{{database_type}}
when: enable_central_database | bool
- 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

@ -20,8 +20,11 @@ services:
depends_on:
- database
{% include 'templates/docker-service-{{ database_type }}.yml.j2' %}
{% include 'templates/docker-mariadb-service.yml.j2' %}
volumes:
database:
{% endif %}
networks:
default:
driver: bridge

View File

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

View File

@ -1,6 +0,0 @@
networks:
{% if enable_central_database %}
central_{{ database_type }}_network:
external: true
{% endif %}
{{docker_compose_project_name}}_network:

View File

@ -1,4 +0,0 @@
volumes:
{% if not enable_central_database %}
database:
{% endif %}

View File

@ -1,5 +0,0 @@
{% if enable_central_database %}
depends_on:
database:
condition: service_healthy
{% endif %}

View File

@ -1,5 +0,0 @@
networks:
- {{docker_compose_project_name}}_network
{% if enable_central_database %}
- central_{{ database_type }}_network
{% endif %}

View File

@ -1,4 +1,3 @@
{% if not enable_central_database %}
database:
logging:
driver: journald
@ -18,6 +17,3 @@
interval: 3s
timeout: 1s
retries: 5
networks:
- {{docker_compose_project_name}}_network
{% endif %}

View File

@ -1,4 +1,4 @@
{% if not enable_central_database %}
database:
image: postgres:{{database_version}}-alpine
environment:
@ -16,6 +16,3 @@
- type: volume
source: database
target: /var/lib/postgresql/data
networks:
- {{docker_compose_project_name}}_network
{% endif %}

View File

@ -10,5 +10,3 @@
interval: 1s
timeout: 3s
retries: 30
networks:
- {{docker_compose_project_name}}_network

View File

@ -1,4 +0,0 @@
docker_compose_instance_directory: "{{ docker_compose_instance_directory | default(path_docker_compose_instances + docker_compose_project_name + '/') }}"
database_host: "{{ database_host | default('database') }}"
database_databasename: "{{ database_databasename | default(docker_compose_project_name) }}"
database_username: "{{ database_username | default(docker_compose_project_name) }}"