mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2024-11-01 02:33:10 +01:00
Implemented vars, tasks and templates for central database setup until mastodon role
This commit is contained in:
parent
4e09fbd3fb
commit
ab7ca07ac9
@ -1,19 +1,18 @@
|
|||||||
---
|
---
|
||||||
|
- 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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
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"
|
- name: "include tasks update-repository-with-docker-compose.yml"
|
||||||
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
|
- name: configure run.env
|
||||||
template: src=run.env.j2 dest={{docker_compose_instance_directory}}/env/run.env
|
template: src=run.env.j2 dest={{docker_compose_instance_directory}}/env/run.env
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -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}}
|
|
@ -1,6 +1,9 @@
|
|||||||
version: '3.7'
|
version: '3.7'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
image: docker.io/akaunting/akaunting:{{version_akaunting}}
|
image: docker.io/akaunting/akaunting:{{version_akaunting}}
|
||||||
build:
|
build:
|
||||||
@ -14,15 +17,11 @@ services:
|
|||||||
- env/run.env
|
- env/run.env
|
||||||
environment:
|
environment:
|
||||||
- AKAUNTING_SETUP
|
- AKAUNTING_SETUP
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
depends_on:
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
- database
|
|
||||||
|
|
||||||
{% include 'templates/docker-mariadb-service.yml.j2' %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
data:
|
data:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
{% include 'templates/docker-networks-for-role.yml.j2' %}
|
@ -3,12 +3,12 @@ APP_URL=https://{{domain}}
|
|||||||
LOCALE=en-US
|
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)
|
# 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
|
# Change these to match env/db.env
|
||||||
DB_DATABASE=akaunting
|
DB_DATABASE={{database_databasename}}
|
||||||
DB_USERNAME=admin
|
DB_USERNAME={{database_username}}
|
||||||
DB_PASSWORD={{akaunting_database_password}}
|
DB_PASSWORD={{database_password}}
|
||||||
|
|
||||||
# You should change this to a random string of three numbers or letters followed by an underscore
|
# You should change this to a random string of three numbers or letters followed by an underscore
|
||||||
DB_PREFIX=asd_
|
DB_PREFIX=asd_
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
docker_compose_project_name: "akaunting"
|
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_file_path: "{{docker_compose_instance_directory}}docker-compose.yml"
|
||||||
docker_compose_backup_path: "/tmp/{{docker_compose_project_name}}-docker-compose-backup.yml"
|
docker_compose_backup_path: "/tmp/{{docker_compose_project_name}}-docker-compose-backup.yml"
|
||||||
database_host: "database"
|
database_type: "mariadb"
|
||||||
database_databasename: "{{docker_compose_project_name}}"
|
|
||||||
database_username: "admin"
|
|
||||||
database_password: "{{akaunting_database_password}}"
|
database_password: "{{akaunting_database_password}}"
|
||||||
repository_address: "https://github.com/akaunting/docker.git"
|
repository_address: "https://github.com/akaunting/docker.git"
|
||||||
|
@ -1,4 +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: receive {{ mail_interface_domain }} certificate
|
- 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 }}
|
command: certbot certonly --agree-tos --email {{ administrator_email }} --non-interactive --webroot -w /var/lib/letsencrypt/ -d {{ mail_interface_domain }}
|
||||||
|
|
||||||
@ -11,10 +19,5 @@
|
|||||||
dest: "{{nginx_servers_directory}}{{domain}}.conf"
|
dest: "{{nginx_servers_directory}}{{domain}}.conf"
|
||||||
notify: restart nginx
|
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"
|
- name: "include tasks update-repository-with-docker-compose.yml"
|
||||||
include_tasks: update-repository-with-docker-compose.yml
|
include_tasks: update-repository-with-docker-compose.yml
|
@ -4,47 +4,40 @@ services:
|
|||||||
image: attendize_web:latest
|
image: attendize_web:latest
|
||||||
ports:
|
ports:
|
||||||
- "{{http_port}}:80"
|
- "{{http_port}}:80"
|
||||||
#- "8081:443"
|
|
||||||
volumes:
|
volumes:
|
||||||
- .:/usr/share/nginx/html
|
- .:/usr/share/nginx/html
|
||||||
- .:/var/www
|
- .:/var/www
|
||||||
depends_on:
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
{% if not enable_central_database %}
|
maildev:
|
||||||
- database
|
redis:
|
||||||
{% endif %}
|
worker:
|
||||||
- maildev
|
|
||||||
- redis
|
|
||||||
- worker
|
|
||||||
env_file:
|
env_file:
|
||||||
- ./.env
|
- ./.env
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
|
||||||
worker:
|
worker:
|
||||||
image: attendize_worker:latest
|
image: attendize_worker:latest
|
||||||
depends_on:
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
{% if not enable_central_database %}
|
maildev:
|
||||||
- database
|
redis:
|
||||||
{% endif %}
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
- maildev
|
|
||||||
- redis
|
|
||||||
volumes:
|
volumes:
|
||||||
- .:/usr/share/nginx/html
|
- .:/usr/share/nginx/html
|
||||||
- .:/var/www
|
- .:/var/www
|
||||||
|
|
||||||
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
|
|
||||||
maildev:
|
maildev:
|
||||||
image: maildev/maildev
|
image: maildev/maildev
|
||||||
ports:
|
ports:
|
||||||
- "{{ mail_interface_http_port }}:1080"
|
- "{{ mail_interface_http_port }}:1080"
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker-redis-service.yml.j2' %}
|
{% include 'templates/docker-redis-service.yml.j2' %}
|
||||||
|
|
||||||
{% if not enable_central_database %}
|
|
||||||
depends_on:
|
|
||||||
- database
|
|
||||||
|
|
||||||
{% include 'templates/docker-mariadb-service.yml.j2' %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
redis:
|
redis:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
{% include 'templates/docker-networks-for-role.yml.j2' %}
|
@ -1,11 +1,8 @@
|
|||||||
---
|
---
|
||||||
docker_compose_project_name: "attendize"
|
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_file_path: "{{docker_compose_instance_directory}}docker-compose.yml"
|
||||||
docker_compose_backup_path: "/tmp/{{docker_compose_project_name}}-docker-compose-backup.yml"
|
docker_compose_backup_path: "/tmp/{{docker_compose_project_name}}-docker-compose-backup.yml"
|
||||||
mail_interface_domain: "mail.{{domain}}"
|
mail_interface_domain: "mail.{{domain}}"
|
||||||
database_host: "database"
|
database_type: "mariadb"
|
||||||
database_databasename: "{{docker_compose_project_name}}"
|
|
||||||
database_username: "{{docker_compose_project_name}}"
|
|
||||||
database_password: "{{attendize_database_password}}"
|
database_password: "{{attendize_database_password}}"
|
||||||
repository_address: "https://github.com/Attendize/Attendize.git"
|
repository_address: "https://github.com/Attendize/Attendize.git"
|
@ -1,4 +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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
include_tasks: nginx-docker-proxy-domain.yml
|
include_tasks: nginx-docker-proxy-domain.yml
|
||||||
|
|
||||||
|
@ -12,5 +12,16 @@ services:
|
|||||||
- data:/baserow/data
|
- data:/baserow/data
|
||||||
ports:
|
ports:
|
||||||
- "{{http_port}}:80"
|
- "{{http_port}}:80"
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
|
|
||||||
|
{% include 'templates/docker-redis-service.yml.j2' %}
|
||||||
|
|
||||||
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
data:
|
data:
|
||||||
|
redis:
|
||||||
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
|
|
||||||
|
{% include 'templates/docker-networks-for-role.yml.j2' %}
|
@ -8,3 +8,13 @@ EMAIL_SMTP_PORT={{ system_email_smtp_port }}
|
|||||||
EMAIL_SMTP_USER={{ system_email_username }}
|
EMAIL_SMTP_USER={{ system_email_username }}
|
||||||
EMAIL_SMTP_PASSWORD={{ system_email_password }}
|
EMAIL_SMTP_PASSWORD={{ system_email_password }}
|
||||||
EMAIL_SMTP_USE_TLS={{ system_email_tls | upper }}
|
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=
|
||||||
|
@ -1,2 +1,4 @@
|
|||||||
docker_compose_project_name: "baserow"
|
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"
|
@ -1,6 +1,6 @@
|
|||||||
docker_compose_project_name: "bigbluebutton"
|
docker_compose_project_name: "bigbluebutton"
|
||||||
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
|
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
|
||||||
database_host: "postgres"
|
database_host: "postgres"
|
||||||
database_databasename: "greenlight-v3"
|
database_databasename: "greenlight-v3"
|
||||||
database_username: "postgres"
|
database_username: "postgres"
|
||||||
database_password: ""
|
database_password: ""
|
@ -1,4 +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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
include_tasks: nginx-docker-proxy-domain.yml
|
include_tasks: nginx-docker-proxy-domain.yml
|
||||||
loop: "{{ domains }}"
|
loop: "{{ domains }}"
|
||||||
|
@ -63,13 +63,21 @@ env:
|
|||||||
## TODO: The SMTP mail server used to validate new accounts and send notifications
|
## TODO: The SMTP mail server used to validate new accounts and send notifications
|
||||||
# SMTP ADDRESS, username, and password are required
|
# SMTP ADDRESS, username, and password are required
|
||||||
# WARNING the char '#' in SMTP password can cause problems!
|
# WARNING the char '#' in SMTP password can cause problems!
|
||||||
DISCOURSE_SMTP_ADDRESS: {{system_email_host}}
|
DISCOURSE_SMTP_ADDRESS: {{ system_email_host }}
|
||||||
DISCOURSE_SMTP_PORT: {{system_email_smtp_port}}
|
DISCOURSE_SMTP_PORT: {{ system_email_smtp_port }}
|
||||||
DISCOURSE_SMTP_USER_NAME: {{system_email}}
|
DISCOURSE_SMTP_USER_NAME: {{ system_email }}
|
||||||
DISCOURSE_SMTP_PASSWORD: {{system_email_password}}
|
DISCOURSE_SMTP_PASSWORD: {{ system_email_password }}
|
||||||
DISCOURSE_SMTP_ENABLE_START_TLS: {{ system_email_start_tls | upper }}
|
DISCOURSE_SMTP_ENABLE_START_TLS: {{ system_email_start_tls | upper }}
|
||||||
DISCOURSE_SMTP_DOMAIN: {{system_email_domain}}
|
DISCOURSE_SMTP_DOMAIN: {{ system_email_domain }}
|
||||||
DISCOURSE_NOTIFICATION_EMAIL: {{system_email}}
|
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
|
## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
|
||||||
#LETSENCRYPT_ACCOUNT_EMAIL: administrator@veen.world
|
#LETSENCRYPT_ACCOUNT_EMAIL: administrator@veen.world
|
||||||
@ -85,7 +93,7 @@ env:
|
|||||||
## The Docker container is stateless; all data is stored in /shared
|
## The Docker container is stateless; all data is stored in /shared
|
||||||
volumes:
|
volumes:
|
||||||
- volume:
|
- volume:
|
||||||
host: discourse_application_data
|
host: discourse_data
|
||||||
guest: /shared
|
guest: /shared
|
||||||
- volume:
|
- volume:
|
||||||
host: /var/discourse/shared/standalone/log/var-log
|
host: /var/discourse/shared/standalone/log/var-log
|
||||||
|
@ -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"
|
@ -23,8 +23,6 @@ services:
|
|||||||
# Use single node discovery in order to disable production mode and avoid bootstrap checks.
|
# 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
|
# see: https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
|
||||||
discovery.type: single-node
|
discovery.type: single-node
|
||||||
networks:
|
|
||||||
- elk
|
|
||||||
|
|
||||||
logstash:
|
logstash:
|
||||||
build:
|
build:
|
||||||
@ -47,8 +45,6 @@ services:
|
|||||||
- "9600:9600"
|
- "9600:9600"
|
||||||
environment:
|
environment:
|
||||||
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
|
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
|
||||||
networks:
|
|
||||||
- elk
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- elasticsearch
|
- elasticsearch
|
||||||
|
|
||||||
@ -64,14 +60,8 @@ services:
|
|||||||
read_only: true
|
read_only: true
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:{{ http_port }}:5601"
|
- "127.0.0.1:{{ http_port }}:5601"
|
||||||
networks:
|
|
||||||
- elk
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- elasticsearch
|
- elasticsearch
|
||||||
|
|
||||||
networks:
|
|
||||||
elk:
|
|
||||||
driver: bridge
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
|
@ -1,12 +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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
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}}"
|
- name: "create {{docker_compose_instance_directory}}"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}"
|
path: "{{docker_compose_instance_directory}}"
|
||||||
|
@ -10,9 +10,7 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
|
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
|
||||||
depends_on:
|
depends_on:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
- postgres
|
|
||||||
% endif %}
|
|
||||||
- redis
|
- redis
|
||||||
env_file: .env
|
env_file: .env
|
||||||
command: celery -A funkwhale_api.taskapp worker -l INFO --concurrency=${CELERYD_CONCURRENCY-0}
|
command: celery -A funkwhale_api.taskapp worker -l INFO --concurrency=${CELERYD_CONCURRENCY-0}
|
||||||
@ -20,23 +18,24 @@ services:
|
|||||||
- C_FORCE_ROOT=true
|
- C_FORCE_ROOT=true
|
||||||
volumes:
|
volumes:
|
||||||
- "data:${MEDIA_ROOT}"
|
- "data:${MEDIA_ROOT}"
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
|
||||||
|
|
||||||
celerybeat:
|
celerybeat:
|
||||||
restart: always
|
restart: always
|
||||||
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
|
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
|
||||||
depends_on:
|
depends_on:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
- postgres
|
|
||||||
% endif %}
|
|
||||||
- redis
|
- redis
|
||||||
env_file: .env
|
env_file: .env
|
||||||
command: celery -A funkwhale_api.taskapp beat --pidfile= -l INFO
|
command: celery -A funkwhale_api.taskapp beat --pidfile= -l INFO
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
|
||||||
api:
|
api:
|
||||||
restart: always
|
restart: always
|
||||||
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
|
image: funkwhale/api:${FUNKWHALE_VERSION:-latest}
|
||||||
depends_on:
|
depends_on:
|
||||||
- postgres
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
- redis
|
- redis
|
||||||
env_file: .env
|
env_file: .env
|
||||||
volumes:
|
volumes:
|
||||||
@ -44,6 +43,7 @@ services:
|
|||||||
#- "${STATIC_ROOT}:${STATIC_ROOT}"
|
#- "${STATIC_ROOT}:${STATIC_ROOT}"
|
||||||
ports:
|
ports:
|
||||||
- "5000"
|
- "5000"
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
|
||||||
front:
|
front:
|
||||||
restart: always
|
restart: always
|
||||||
@ -61,15 +61,13 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
# override those variables in your .env file if needed
|
# override those variables in your .env file if needed
|
||||||
- "${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT}:80"
|
- "${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT}:80"
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
{% include 'templates/docker-postgres-service.yml.j2' %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
data:
|
data:
|
||||||
redis:
|
redis:
|
||||||
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
|
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-networks-for-role.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
|
@ -1,7 +1,5 @@
|
|||||||
docker_compose_project_name: "funkwhale"
|
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;"
|
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_password: "{{funkwhale_database_password}}"
|
||||||
database_version: "{{ funkwhale_database_version | default(postgres_default_version) }}"
|
database_version: "{{ funkwhale_database_version | default(postgres_default_version) }}"
|
||||||
|
database_type: "postgres"
|
@ -1,12 +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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
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}}"
|
- name: "create {{docker_compose_instance_directory}}"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}"
|
path: "{{docker_compose_instance_directory}}"
|
||||||
|
@ -27,18 +27,11 @@ services:
|
|||||||
- data:/data
|
- data:/data
|
||||||
- /etc/timezone:/etc/timezone:ro
|
- /etc/timezone:/etc/timezone:ro
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
depends_on:
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
- database
|
|
||||||
{% include 'templates/docker-mariadb-service.yml.j2' %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
data:
|
data:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
networks:
|
{% include 'templates/docker-networks-for-role.yml.j2' %}
|
||||||
default:
|
|
||||||
driver: bridge
|
|
@ -1,6 +1,3 @@
|
|||||||
docker_compose_project_name: "gitea"
|
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"
|
@ -1,12 +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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
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}}"
|
- name: "create {{docker_compose_instance_directory}}"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}"
|
path: "{{docker_compose_instance_directory}}"
|
||||||
|
@ -41,15 +41,11 @@ services:
|
|||||||
|
|
||||||
{% include 'templates/docker-redis-service.yml.j2' %}
|
{% include 'templates/docker-redis-service.yml.j2' %}
|
||||||
|
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
{% include 'templates/docker-postgres-service.yml.j2' %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
redis:
|
redis:
|
||||||
config:
|
config:
|
||||||
logs:
|
logs:
|
||||||
data:
|
data:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
docker_compose_project_name: "gitlab"
|
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_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"
|
@ -1,15 +1,18 @@
|
|||||||
---
|
---
|
||||||
|
- 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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
include_tasks: nginx-docker-proxy-domain.yml
|
include_tasks: nginx-docker-proxy-domain.yml
|
||||||
loop: "{{ domains }}"
|
loop: "{{ domains }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: domain
|
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}}"
|
- name: "create {{docker_compose_instance_directory}}"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}"
|
path: "{{docker_compose_instance_directory}}"
|
||||||
|
@ -11,21 +11,20 @@ services:
|
|||||||
JOOMLA_DB_PASSWORD: "{{database_password}}"
|
JOOMLA_DB_PASSWORD: "{{database_password}}"
|
||||||
JOOMLA_DB_NAME: "{{database_databasename}}"
|
JOOMLA_DB_NAME: "{{database_databasename}}"
|
||||||
restart: always
|
restart: always
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
depends_on:
|
|
||||||
- database
|
|
||||||
{% endif %}
|
|
||||||
volumes:
|
volumes:
|
||||||
- data:/var/www/html
|
- data:/var/www/html
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:{{http_port}}:80"
|
- "127.0.0.1:{{http_port}}:80"
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
{% if enable_central_database %}
|
||||||
|
depends_on:
|
||||||
|
database:
|
||||||
|
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
{% include 'templates/docker-mariadb-service.yml.j2' %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
data:
|
data:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
{% include 'templates/docker-networks-for-role.yml.j2' %}
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
docker_compose_project_name: "joomla"
|
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"
|
@ -1,12 +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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
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}}"
|
- name: "create {{docker_compose_instance_directory}}"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}"
|
path: "{{docker_compose_instance_directory}}"
|
||||||
|
@ -11,13 +11,9 @@ services:
|
|||||||
- TZ=Etc/UTC
|
- TZ=Etc/UTC
|
||||||
volumes:
|
volumes:
|
||||||
- ./config.toml:/listmonk/config.toml
|
- ./config.toml:/listmonk/config.toml
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
|
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
depends_on:
|
|
||||||
- database
|
|
||||||
|
|
||||||
{% include 'templates/docker-postgres-service.yml.j2' %}
|
{% include 'templates/docker-networks-for-role.yml.j2' %}
|
||||||
|
|
||||||
volumes:
|
|
||||||
database:
|
|
||||||
{% endif %}
|
|
@ -1,7 +1,4 @@
|
|||||||
docker_compose_project_name: "listmonk"
|
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_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"
|
@ -1,4 +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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
include_tasks: nginx-docker-proxy-domain.yml
|
include_tasks: nginx-docker-proxy-domain.yml
|
||||||
vars:
|
vars:
|
||||||
@ -28,11 +36,6 @@
|
|||||||
state: directory
|
state: directory
|
||||||
mode: 0755
|
mode: 0755
|
||||||
|
|
||||||
- name: create database in central MariaDB
|
|
||||||
include_role:
|
|
||||||
name: docker-mariadb
|
|
||||||
when: enable_central_database | bool
|
|
||||||
|
|
||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template:
|
template:
|
||||||
src: "docker-compose.yml.j2"
|
src: "docker-compose.yml.j2"
|
||||||
|
@ -3,19 +3,8 @@ version: '2.2'
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker-redis-service.yml.j2' %}
|
{% include 'templates/docker-redis-service.yml.j2' %}
|
||||||
env_file: mailu.env
|
|
||||||
depends_on:
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
- resolver
|
|
||||||
dns:
|
|
||||||
- 192.168.203.254
|
|
||||||
depends_on:
|
|
||||||
- resolver
|
|
||||||
dns:
|
|
||||||
- 192.168.203.254
|
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
- webmail
|
|
||||||
- radicale
|
|
||||||
|
|
||||||
# Core services
|
# Core services
|
||||||
resolver:
|
resolver:
|
||||||
@ -25,6 +14,10 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
default:
|
default:
|
||||||
ipv4_address: 192.168.203.254
|
ipv4_address: 192.168.203.254
|
||||||
|
{{docker_compose_project_name}}_network:
|
||||||
|
{% if enable_central_database %}
|
||||||
|
central_{{ database_type }}_network:
|
||||||
|
{% endif %}
|
||||||
logging:
|
logging:
|
||||||
driver: journald
|
driver: journald
|
||||||
|
|
||||||
@ -53,10 +46,10 @@ services:
|
|||||||
database:
|
database:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
{% endif %}
|
{% endif %}
|
||||||
networks:
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
- default
|
default:
|
||||||
- webmail
|
webmail:
|
||||||
- radicale
|
radicale:
|
||||||
dns:
|
dns:
|
||||||
- 192.168.203.254
|
- 192.168.203.254
|
||||||
|
|
||||||
@ -68,16 +61,16 @@ services:
|
|||||||
- "admin_data:/data"
|
- "admin_data:/data"
|
||||||
- "dkim:/dkim"
|
- "dkim:/dkim"
|
||||||
depends_on:
|
depends_on:
|
||||||
- resolver
|
resolver:
|
||||||
- front
|
front:
|
||||||
- redis
|
redis:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
- database
|
|
||||||
{% endif %}
|
|
||||||
logging:
|
logging:
|
||||||
driver: journald
|
driver: journald
|
||||||
dns:
|
dns:
|
||||||
- 192.168.203.254
|
- 192.168.203.254
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
|
||||||
imap:
|
imap:
|
||||||
image: ghcr.io/mailu/dovecot:{{version_mailu}}
|
image: ghcr.io/mailu/dovecot:{{version_mailu}}
|
||||||
restart: always
|
restart: always
|
||||||
@ -92,6 +85,7 @@ services:
|
|||||||
- 192.168.203.254
|
- 192.168.203.254
|
||||||
logging:
|
logging:
|
||||||
driver: journald
|
driver: journald
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
|
||||||
smtp:
|
smtp:
|
||||||
image: ghcr.io/mailu/postfix:{{version_mailu}}
|
image: ghcr.io/mailu/postfix:{{version_mailu}}
|
||||||
@ -107,6 +101,7 @@ services:
|
|||||||
- 192.168.203.254
|
- 192.168.203.254
|
||||||
logging:
|
logging:
|
||||||
driver: journald
|
driver: journald
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
|
||||||
oletools:
|
oletools:
|
||||||
image: ghcr.io/mailu/oletools:{{version_mailu}}
|
image: ghcr.io/mailu/oletools:{{version_mailu}}
|
||||||
@ -116,8 +111,8 @@ services:
|
|||||||
- resolver
|
- resolver
|
||||||
dns:
|
dns:
|
||||||
- 192.168.203.254
|
- 192.168.203.254
|
||||||
networks:
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
- noinet
|
noinet:
|
||||||
|
|
||||||
antispam:
|
antispam:
|
||||||
image: ghcr.io/mailu/rspamd:{{version_mailu}}
|
image: ghcr.io/mailu/rspamd:{{version_mailu}}
|
||||||
@ -134,11 +129,12 @@ services:
|
|||||||
- resolver
|
- resolver
|
||||||
dns:
|
dns:
|
||||||
- 192.168.203.254
|
- 192.168.203.254
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
- noinet
|
|
||||||
logging:
|
logging:
|
||||||
driver: journald
|
driver: journald
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
default:
|
||||||
|
noinet:
|
||||||
|
|
||||||
|
|
||||||
# Optional services
|
# Optional services
|
||||||
antivirus:
|
antivirus:
|
||||||
@ -153,6 +149,7 @@ services:
|
|||||||
- 192.168.203.254
|
- 192.168.203.254
|
||||||
logging:
|
logging:
|
||||||
driver: journald
|
driver: journald
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
|
||||||
webdav:
|
webdav:
|
||||||
image: ghcr.io/mailu/radicale:{{version_mailu}}
|
image: ghcr.io/mailu/radicale:{{version_mailu}}
|
||||||
@ -168,6 +165,7 @@ services:
|
|||||||
- resolver
|
- resolver
|
||||||
dns:
|
dns:
|
||||||
- 192.168.203.254
|
- 192.168.203.254
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
|
||||||
fetchmail:
|
fetchmail:
|
||||||
image: ghcr.io/mailu/fetchmail:{{version_mailu}}
|
image: ghcr.io/mailu/fetchmail:{{version_mailu}}
|
||||||
@ -184,6 +182,7 @@ services:
|
|||||||
- resolver
|
- resolver
|
||||||
dns:
|
dns:
|
||||||
- 192.168.203.254
|
- 192.168.203.254
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
|
||||||
webmail:
|
webmail:
|
||||||
image: ghcr.io/mailu/webmail:{{version_mailu}}
|
image: ghcr.io/mailu/webmail:{{version_mailu}}
|
||||||
@ -198,18 +197,13 @@ services:
|
|||||||
- resolver
|
- resolver
|
||||||
logging:
|
logging:
|
||||||
driver: journald
|
driver: journald
|
||||||
networks:
|
|
||||||
- webmail
|
|
||||||
dns:
|
dns:
|
||||||
- 192.168.203.254
|
- 192.168.203.254
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
{% include 'templates/docker-postgres-service.yml.j2' %}
|
webmail:
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
|
||||||
smtp_queue:
|
smtp_queue:
|
||||||
admin_data:
|
admin_data:
|
||||||
webdav_data:
|
webdav_data:
|
||||||
@ -218,7 +212,8 @@ volumes:
|
|||||||
dkim:
|
dkim:
|
||||||
dovecot_mail:
|
dovecot_mail:
|
||||||
redis:
|
redis:
|
||||||
networks:
|
|
||||||
|
{% include 'templates/docker-networks-for-role.yml.j2' %}
|
||||||
default:
|
default:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
ipam:
|
ipam:
|
||||||
|
@ -1,19 +1,21 @@
|
|||||||
- name: Create Docker network for MariaDB
|
- name: Create Docker network for MariaDB
|
||||||
docker_network:
|
docker_network:
|
||||||
name: mariadb_network
|
name: central_mariadb_network
|
||||||
state: present
|
state: present
|
||||||
when: run_once_docker_mariadb is not defined
|
when: run_once_docker_mariadb is not defined
|
||||||
|
|
||||||
- name: install MariaDB
|
- name: install MariaDB
|
||||||
docker_container:
|
docker_container:
|
||||||
name: mariadb
|
name: central-mariadb
|
||||||
image: mariadb:latest #could lead to problems with nextcloud
|
image: mariadb:latest #could lead to problems with nextcloud
|
||||||
detach: yes
|
detach: yes
|
||||||
env:
|
env:
|
||||||
MARIADB_ROOT_PASSWORD: "{{central_mariadb_root_password}}"
|
MARIADB_ROOT_PASSWORD: "{{central_mariadb_root_password}}"
|
||||||
MARIADB_AUTO_UPGRADE: "1"
|
MARIADB_AUTO_UPGRADE: "1"
|
||||||
networks:
|
networks:
|
||||||
- name: mariadb_network
|
- name: central_mariadb_network
|
||||||
|
volumes:
|
||||||
|
- database:/var/lib/mysql
|
||||||
published_ports:
|
published_ports:
|
||||||
- "127.0.0.1:3306:3306"
|
- "127.0.0.1:3306:3306"
|
||||||
command: "--transaction-isolation=READ-COMMITTED --binlog-format=ROW" #for nextcloud
|
command: "--transaction-isolation=READ-COMMITTED --binlog-format=ROW" #for nextcloud
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
---
|
---
|
||||||
|
- 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"
|
- name: "include create-domains.yml"
|
||||||
include_tasks: create-domains.yml
|
include_tasks: create-domains.yml
|
||||||
loop: "{{ domains }}"
|
loop: "{{ domains }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: domain
|
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}}"
|
- name: "create {{docker_compose_instance_directory}}"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}"
|
path: "{{docker_compose_instance_directory}}"
|
||||||
|
@ -10,9 +10,11 @@ DB_PORT=5432
|
|||||||
DB_NAME={{database_databasename}}
|
DB_NAME={{database_databasename}}
|
||||||
DB_USER={{database_username}}
|
DB_USER={{database_username}}
|
||||||
DB_PASS={{database_password}}
|
DB_PASS={{database_password}}
|
||||||
|
|
||||||
REDIS_HOST=redis
|
REDIS_HOST=redis
|
||||||
REDIS_PORT=6379
|
REDIS_PORT=6379
|
||||||
REDIS_PASSWORD=
|
REDIS_PASSWORD=
|
||||||
|
|
||||||
SMTP_SERVER={{system_email_host}}
|
SMTP_SERVER={{system_email_host}}
|
||||||
SMTP_PORT={{system_email_smtp_port}}
|
SMTP_PORT={{system_email_smtp_port}}
|
||||||
SMTP_LOGIN={{system_email_username}}
|
SMTP_LOGIN={{system_email_username}}
|
||||||
|
@ -3,81 +3,63 @@ services:
|
|||||||
|
|
||||||
{% include 'templates/docker-redis-service.yml.j2' %}
|
{% include 'templates/docker-redis-service.yml.j2' %}
|
||||||
|
|
||||||
networks:
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
- internal_network
|
|
||||||
|
|
||||||
web:
|
web:
|
||||||
image: tootsuite/mastodon:{{version_mastodon}}
|
image: tootsuite/mastodon:{{version_mastodon}}
|
||||||
restart: always
|
restart: always
|
||||||
env_file: .env.production
|
env_file: .env.production
|
||||||
command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000"
|
command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000"
|
||||||
networks:
|
|
||||||
- external_network
|
|
||||||
- internal_network
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
# prettier-ignore
|
|
||||||
test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:3000/health || exit 1']
|
test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:3000/health || exit 1']
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:{{http_port}}:3000"
|
- "127.0.0.1:{{http_port}}:3000"
|
||||||
depends_on:
|
depends_on:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
- database
|
redis:
|
||||||
{% endif %}
|
condition: service_healthy
|
||||||
- redis
|
|
||||||
volumes:
|
volumes:
|
||||||
- data:/mastodon/public/system
|
- data:/mastodon/public/system
|
||||||
logging:
|
logging:
|
||||||
driver: journald
|
driver: journald
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
|
||||||
streaming:
|
streaming:
|
||||||
image: tootsuite/mastodon:{{version_mastodon}}
|
image: tootsuite/mastodon:{{version_mastodon}}
|
||||||
restart: always
|
restart: always
|
||||||
env_file: .env.production
|
env_file: .env.production
|
||||||
command: node ./streaming
|
command: node ./streaming
|
||||||
networks:
|
|
||||||
- external_network
|
|
||||||
- internal_network
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
# prettier-ignore
|
|
||||||
test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:4000/api/v1/streaming/health || exit 1']
|
test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:4000/api/v1/streaming/health || exit 1']
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:{{stream_port}}:4000"
|
- "127.0.0.1:{{stream_port}}:4000"
|
||||||
depends_on:
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
{% if not enable_central_database %}
|
redis:
|
||||||
- database
|
condition: service_healthy
|
||||||
{% endif %}
|
|
||||||
- redis
|
|
||||||
logging:
|
logging:
|
||||||
driver: journald
|
driver: journald
|
||||||
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
|
|
||||||
sidekiq:
|
sidekiq:
|
||||||
image: tootsuite/mastodon:{{version_mastodon}}
|
image: tootsuite/mastodon:{{version_mastodon}}
|
||||||
restart: always
|
restart: always
|
||||||
env_file: .env.production
|
env_file: .env.production
|
||||||
command: bundle exec sidekiq
|
command: bundle exec sidekiq
|
||||||
depends_on:
|
depends_on:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
- database
|
redis:
|
||||||
{% endif %}
|
condition: service_healthy
|
||||||
- redis
|
|
||||||
networks:
|
|
||||||
- external_network
|
|
||||||
- internal_network
|
|
||||||
volumes:
|
volumes:
|
||||||
- data:/mastodon/public/system
|
- data:/mastodon/public/system
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ['CMD-SHELL', "ps aux | grep '[s]idekiq\ 6' || false"]
|
test: ['CMD-SHELL', "ps aux | grep '[s]idekiq\ 6' || false"]
|
||||||
logging:
|
logging:
|
||||||
driver: journald
|
driver: journald
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-networks-for-container.yml.j2' %}
|
||||||
{% include 'templates/docker-postgres-service.yml.j2' %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
|
||||||
redis:
|
redis:
|
||||||
data:
|
data:
|
||||||
networks:
|
|
||||||
external_network:
|
{% include 'templates/docker-networks-for-role.yml.j2' %}
|
||||||
internal_network:
|
|
||||||
internal: true
|
|
@ -1,7 +1,4 @@
|
|||||||
docker_compose_project_name: "mastodon"
|
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_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"
|
@ -1,12 +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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
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}}"
|
- name: "create {{docker_compose_instance_directory}}"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}"
|
path: "{{docker_compose_instance_directory}}"
|
||||||
|
@ -19,14 +19,9 @@ services:
|
|||||||
{% if not enable_central_database %}
|
{% if not enable_central_database %}
|
||||||
depends_on:
|
depends_on:
|
||||||
- database
|
- database
|
||||||
{% include 'templates/docker-mariadb-service.yml.j2' %}
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
volumes:
|
volumes:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
|
||||||
data:
|
data:
|
||||||
networks:
|
|
||||||
default:
|
|
||||||
driver: bridge
|
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
---
|
---
|
||||||
docker_compose_project_name: "matomo"
|
docker_compose_project_name: "matomo"
|
||||||
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
|
database_type: "mariadb"
|
||||||
database_host: "database"
|
|
||||||
database_databasename: "{{docker_compose_project_name}}"
|
|
||||||
database_username: "{{docker_compose_project_name}}"
|
|
||||||
database_password: "{{matomo_database_password}}"
|
database_password: "{{matomo_database_password}}"
|
@ -1,15 +1,18 @@
|
|||||||
---
|
---
|
||||||
|
- 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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
include_tasks: nginx-docker-proxy-domain.yml
|
include_tasks: nginx-docker-proxy-domain.yml
|
||||||
vars:
|
vars:
|
||||||
domain: "{{synapse_domain}}"
|
domain: "{{synapse_domain}}"
|
||||||
http_port: "{{synapse_http_port}}"
|
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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
include_tasks: nginx-docker-proxy-domain.yml
|
include_tasks: nginx-docker-proxy-domain.yml
|
||||||
vars:
|
vars:
|
||||||
|
@ -19,7 +19,7 @@ services:
|
|||||||
{% if not enable_central_database %}
|
{% if not enable_central_database %}
|
||||||
depends_on:
|
depends_on:
|
||||||
- database
|
- database
|
||||||
{% include 'templates/docker-postgres-service.yml.j2' %}
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
element:
|
element:
|
||||||
@ -60,14 +60,9 @@ services:
|
|||||||
# - instagram_bridge_data:/data
|
# - instagram_bridge_data:/data
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
|
||||||
synapse_data:
|
synapse_data:
|
||||||
#telegram_bridge_data:
|
#telegram_bridge_data:
|
||||||
#whatsapp_bridge_data:
|
#whatsapp_bridge_data:
|
||||||
#facebook_bridge_data:
|
#facebook_bridge_data:
|
||||||
#instagram_bridge_data:
|
#instagram_bridge_data:
|
||||||
networks:
|
|
||||||
default:
|
|
||||||
driver: bridge
|
|
@ -1,7 +1,5 @@
|
|||||||
---
|
---
|
||||||
docker_compose_project_name: "matrix"
|
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"
|
@ -1,15 +1,18 @@
|
|||||||
---
|
---
|
||||||
|
- 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"
|
- name: "include tasks create-proxy-with-domain-replace.yml"
|
||||||
include_tasks: create-proxy-with-domain-replace.yml
|
include_tasks: create-proxy-with-domain-replace.yml
|
||||||
loop: "{{ domains + [source_domain] }}"
|
loop: "{{ domains + [source_domain] }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: domain
|
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"
|
- name: "create {{docker_compose_instance_confd_directory}} and parent directories"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_confd_directory}}"
|
path: "{{docker_compose_instance_confd_directory}}"
|
||||||
|
@ -26,15 +26,8 @@ services:
|
|||||||
- "{{docker_compose_instance_confd_directory}}:{{target_mount_conf_d_directory}}:ro"
|
- "{{docker_compose_instance_confd_directory}}:{{target_mount_conf_d_directory}}:ro"
|
||||||
- "data:/var/www/html:ro"
|
- "data:/var/www/html:ro"
|
||||||
|
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
{% include 'templates/docker-mariadb-service.yml.j2' %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
|
||||||
data:
|
data:
|
||||||
networks:
|
|
||||||
default:
|
|
||||||
driver: bridge
|
|
@ -1,11 +1,8 @@
|
|||||||
---
|
---
|
||||||
docker_compose_project_name: "mybb"
|
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_directory: "{{docker_compose_instance_directory}}conf.d/"
|
||||||
docker_compose_instance_confd_defaultconf_file: "{{docker_compose_instance_confd_directory}}default.conf"
|
docker_compose_instance_confd_defaultconf_file: "{{docker_compose_instance_confd_directory}}default.conf"
|
||||||
target_mount_conf_d_directory: "{{nginx_servers_directory}}"
|
target_mount_conf_d_directory: "{{nginx_servers_directory}}"
|
||||||
source_domain: "mybb.{{top_domain}}"
|
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"
|
@ -1,4 +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 task certbot-matomo.yml"
|
- name: "include task certbot-matomo.yml"
|
||||||
include_tasks: certbot-matomo.yml
|
include_tasks: certbot-matomo.yml
|
||||||
|
|
||||||
@ -20,11 +28,6 @@
|
|||||||
dest: "{{path_docker_volumes}}nextcloud/nginx.conf"
|
dest: "{{path_docker_volumes}}nextcloud/nginx.conf"
|
||||||
notify: docker compose project setup
|
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}}"
|
- name: "create {{docker_compose_instance_directory}}"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}"
|
path: "{{docker_compose_instance_directory}}"
|
||||||
|
@ -17,7 +17,7 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- database
|
- database
|
||||||
|
|
||||||
{% include 'templates/docker-mariadb-service.yml.j2' %}
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
web:
|
web:
|
||||||
@ -44,17 +44,9 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- data:/var/www/html
|
- data:/var/www/html
|
||||||
entrypoint: /cron.sh
|
entrypoint: /cron.sh
|
||||||
depends_on:
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
{% if not enable_central_database %}
|
redis:
|
||||||
- database
|
|
||||||
{% endif %}
|
|
||||||
- redis
|
|
||||||
volumes:
|
volumes:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
|
||||||
data:
|
data:
|
||||||
redis:
|
redis:
|
||||||
networks:
|
|
||||||
default:
|
|
||||||
driver: bridge
|
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
---
|
---
|
||||||
docker_compose_project_name: "nextcloud"
|
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"
|
@ -1,12 +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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
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"
|
- name: "include tasks update-repository-with-docker-compose.yml"
|
||||||
include_tasks: update-repository-with-docker-compose.yml
|
include_tasks: update-repository-with-docker-compose.yml
|
||||||
|
|
||||||
|
@ -5,9 +5,7 @@ networks:
|
|||||||
backend:
|
backend:
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
|
||||||
data:
|
data:
|
||||||
|
|
||||||
x-op-restart-policy: &restart_policy
|
x-op-restart-policy: &restart_policy
|
||||||
@ -36,9 +34,7 @@ x-op-app: &app
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
{% include 'templates/docker-postgres-service.yml.j2' %}
|
|
||||||
{% endif %}
|
|
||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
@ -72,12 +68,9 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
depends_on:
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
{% if not enable_central_database %}
|
cache:
|
||||||
- database
|
seeder:
|
||||||
{% endif %}
|
|
||||||
- cache
|
|
||||||
- seeder
|
|
||||||
labels:
|
labels:
|
||||||
- autoheal=true
|
- autoheal=true
|
||||||
healthcheck:
|
healthcheck:
|
||||||
@ -101,24 +94,18 @@ services:
|
|||||||
command: "./docker/prod/worker"
|
command: "./docker/prod/worker"
|
||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
depends_on:
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
{% if not enable_central_database %}
|
cache:
|
||||||
- database
|
seeder:
|
||||||
{% endif %}
|
|
||||||
- cache
|
|
||||||
- seeder
|
|
||||||
|
|
||||||
cron:
|
cron:
|
||||||
<<: *app
|
<<: *app
|
||||||
command: "./docker/prod/cron"
|
command: "./docker/prod/cron"
|
||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
depends_on:
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
{% if not enable_central_database %}
|
cache:
|
||||||
- database
|
seeder:
|
||||||
{% endif %}
|
|
||||||
- cache
|
|
||||||
- seeder
|
|
||||||
|
|
||||||
seeder:
|
seeder:
|
||||||
<<: *app
|
<<: *app
|
||||||
|
@ -3,8 +3,7 @@ repository_directory: "{{ path_docker_compose_instances }}{{docker
|
|||||||
docker_compose_instance_directory: "{{repository_directory}}compose/"
|
docker_compose_instance_directory: "{{repository_directory}}compose/"
|
||||||
docker_compose_file_path: "{{docker_compose_instance_directory}}docker-compose.yml"
|
docker_compose_file_path: "{{docker_compose_instance_directory}}docker-compose.yml"
|
||||||
docker_compose_backup_path: "/tmp/{{docker_compose_project_name}}-docker-compose-backup.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}}"
|
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"
|
@ -1,15 +1,18 @@
|
|||||||
---
|
---
|
||||||
|
- 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"
|
- name: "include create-domains.yml"
|
||||||
include_tasks: create-domains.yml
|
include_tasks: create-domains.yml
|
||||||
loop: "{{ domains }}"
|
loop: "{{ domains }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: domain
|
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}}"
|
- name: "create {{docker_compose_instance_directory}}"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}"
|
path: "{{docker_compose_instance_directory}}"
|
||||||
|
@ -18,7 +18,7 @@ services:
|
|||||||
{% if not enable_central_database %}
|
{% if not enable_central_database %}
|
||||||
- database
|
- database
|
||||||
|
|
||||||
{% include 'templates/docker-postgres-service.yml.j2' %}
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% include 'templates/docker-redis-service.yml.j2' %}
|
{% include 'templates/docker-redis-service.yml.j2' %}
|
||||||
@ -27,9 +27,7 @@ services:
|
|||||||
- .env
|
- .env
|
||||||
volumes:
|
volumes:
|
||||||
assets:
|
assets:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
|
||||||
data:
|
data:
|
||||||
redis:
|
redis:
|
||||||
config:
|
config:
|
@ -1,6 +1,3 @@
|
|||||||
docker_compose_project_name: "peertube"
|
docker_compose_project_name: "peertube"
|
||||||
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
|
database_type: "mariadb"
|
||||||
database_host: "database"
|
|
||||||
database_databasename: "{{docker_compose_project_name}}"
|
|
||||||
database_username: "{{docker_compose_project_name}}"
|
|
||||||
database_password: "{{peertube_database_password}}"
|
database_password: "{{peertube_database_password}}"
|
@ -1,12 +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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
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}}"
|
- name: "create {{docker_compose_instance_directory}}"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}"
|
path: "{{docker_compose_instance_directory}}"
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
version: '2'
|
version: '2'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
|
|
||||||
|
{% include 'templates/docker-redis-service.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
image: zknt/pixelfed
|
image: zknt/pixelfed
|
||||||
restart: always
|
restart: always
|
||||||
@ -14,11 +19,8 @@ services:
|
|||||||
- "./env:/var/www/.env"
|
- "./env:/var/www/.env"
|
||||||
ports:
|
ports:
|
||||||
- "{{http_port}}:80"
|
- "{{http_port}}:80"
|
||||||
depends_on:
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
{% if not enable_central_database %}
|
redis:
|
||||||
- database
|
|
||||||
{% endif %}
|
|
||||||
- redis
|
|
||||||
worker:
|
worker:
|
||||||
image: zknt/pixelfed
|
image: zknt/pixelfed
|
||||||
restart: always
|
restart: always
|
||||||
@ -36,22 +38,12 @@ services:
|
|||||||
interval: 60s
|
interval: 60s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 1
|
retries: 1
|
||||||
depends_on:
|
{% include 'templates/docker-depends-on-central-database.yml.j2' %}
|
||||||
- redis
|
redis:
|
||||||
- application
|
application:
|
||||||
{% if not enable_central_database %}
|
|
||||||
|
|
||||||
- database
|
|
||||||
|
|
||||||
{% include 'templates/docker-mariadb-service.yml.j2' %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% include 'templates/docker-redis-service.yml.j2' %}
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
|
||||||
redis:
|
redis:
|
||||||
application_data:
|
application_data:
|
||||||
bootstrap:
|
bootstrap:
|
@ -1,7 +1,4 @@
|
|||||||
docker_compose_project_name: "pixelfed"
|
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;"
|
nginx_docker_reverse_proxy_extra_configuration: "client_max_body_size 512M;"
|
||||||
database_host: "database"
|
database_type: "mariadb"
|
||||||
database_databasename: "{{docker_compose_project_name}}"
|
|
||||||
database_username: "{{docker_compose_project_name}}"
|
|
||||||
database_password: "{{pixelfed_database_password}}"
|
database_password: "{{pixelfed_database_password}}"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
- name: Create Docker network for PostgreSQL
|
- name: Create Docker network for PostgreSQL
|
||||||
docker_network:
|
docker_network:
|
||||||
name: postgres_network
|
name: central_postgres_network
|
||||||
state: present
|
state: present
|
||||||
when: run_once_docker_postgres is not defined
|
when: run_once_docker_postgres is not defined
|
||||||
|
|
||||||
@ -13,7 +13,7 @@
|
|||||||
POSTGRES_PASSWORD: "{{ central_postgres_password }}"
|
POSTGRES_PASSWORD: "{{ central_postgres_password }}"
|
||||||
POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C" # Necessary for docker-matrix
|
POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C" # Necessary for docker-matrix
|
||||||
networks:
|
networks:
|
||||||
- name: postgres_network
|
- name: central_postgres_network
|
||||||
published_ports:
|
published_ports:
|
||||||
- "127.0.0.1:5432:5432"
|
- "127.0.0.1:5432:5432"
|
||||||
when: run_once_docker_postgres is not defined
|
when: run_once_docker_postgres is not defined
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
---
|
---
|
||||||
|
- 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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
include_tasks: nginx-docker-proxy-domain.yml
|
include_tasks: nginx-docker-proxy-domain.yml
|
||||||
@ -8,11 +15,6 @@
|
|||||||
vars:
|
vars:
|
||||||
nginx_docker_reverse_proxy_extra_configuration: "client_max_body_size {{wordpress_max_upload_size}};"
|
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}}"
|
- name: "create {{docker_compose_instance_directory}}"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}"
|
path: "{{docker_compose_instance_directory}}"
|
||||||
|
@ -21,14 +21,9 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- database
|
- database
|
||||||
|
|
||||||
{% include 'templates/docker-mariadb-service.yml.j2' %}
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
{% if not enable_central_database %}
|
{% include 'templates/docker-database-volume.yml.j2' %}
|
||||||
database:
|
|
||||||
{% endif %}
|
|
||||||
data:
|
data:
|
||||||
networks:
|
|
||||||
default:
|
|
||||||
driver: bridge
|
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
docker_compose_project_name: "wordpress"
|
docker_compose_project_name: "wordpress"
|
||||||
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
|
|
||||||
wordpress_max_upload_size: "64M"
|
wordpress_max_upload_size: "64M"
|
||||||
database_host: "database"
|
database_type: "mariadb"
|
||||||
database_databasename: "{{docker_compose_project_name}}"
|
|
||||||
database_username: "{{docker_compose_project_name}}"
|
|
||||||
database_password: "{{wordpress_database_password}}"
|
database_password: "{{wordpress_database_password}}"
|
@ -1,12 +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"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
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}}"
|
- name: "create {{docker_compose_instance_directory}}"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}"
|
path: "{{docker_compose_instance_directory}}"
|
||||||
|
@ -20,11 +20,8 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- database
|
- database
|
||||||
|
|
||||||
{% include 'templates/docker-mariadb-service.yml.j2' %}
|
{% include 'templates/docker-{{ database_type }}-service.yml.j2' %}
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
database:
|
database:
|
||||||
{% endif %}
|
{% endif %}
|
||||||
networks:
|
|
||||||
default:
|
|
||||||
driver: bridge
|
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
docker_compose_project_name: "yourls"
|
docker_compose_project_name: "yourls"
|
||||||
docker_compose_instance_directory: "{{path_docker_compose_instances}}{{docker_compose_project_name}}/"
|
database_type: "mariadb"
|
||||||
database_host: "database"
|
|
||||||
database_databasename: "{{docker_compose_project_name}}"
|
|
||||||
database_username: "{{docker_compose_project_name}}"
|
|
||||||
database_password: "{{yourls_database_password}}"
|
database_password: "{{yourls_database_password}}"
|
3
templates/docker-database-volume.yml.j2
Normal file
3
templates/docker-database-volume.yml.j2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{% if not enable_central_database %}
|
||||||
|
database:
|
||||||
|
{% endif %}
|
5
templates/docker-depends-on-central-database.yml.j2
Normal file
5
templates/docker-depends-on-central-database.yml.j2
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{% if enable_central_database %}
|
||||||
|
depends_on:
|
||||||
|
database:
|
||||||
|
condition: service_healthy
|
||||||
|
{% endif %}
|
@ -1,3 +1,4 @@
|
|||||||
|
{% if not enable_central_database %}
|
||||||
database:
|
database:
|
||||||
logging:
|
logging:
|
||||||
driver: journald
|
driver: journald
|
||||||
@ -17,3 +18,6 @@
|
|||||||
interval: 3s
|
interval: 3s
|
||||||
timeout: 1s
|
timeout: 1s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
networks:
|
||||||
|
- {{docker_compose_project_name}}_network
|
||||||
|
{% endif %}
|
0
templates/docker-network-for-container-add.yml.j2
Normal file
0
templates/docker-network-for-container-add.yml.j2
Normal file
5
templates/docker-networks-for-container.yml.j2
Normal file
5
templates/docker-networks-for-container.yml.j2
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
networks:
|
||||||
|
- {{docker_compose_project_name}}_network
|
||||||
|
{% if enable_central_database %}
|
||||||
|
- central_{{ database_type }}_network
|
||||||
|
{% endif %}
|
6
templates/docker-networks-for-role.yml.j2
Normal file
6
templates/docker-networks-for-role.yml.j2
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
networks:
|
||||||
|
{% if enable_central_database %}
|
||||||
|
central_{{ database_type }}_network:
|
||||||
|
external: true
|
||||||
|
{% endif %}
|
||||||
|
{{docker_compose_project_name}}_network:
|
@ -1,4 +1,4 @@
|
|||||||
|
{% if not enable_central_database %}
|
||||||
database:
|
database:
|
||||||
image: postgres:{{database_version}}-alpine
|
image: postgres:{{database_version}}-alpine
|
||||||
environment:
|
environment:
|
||||||
@ -13,6 +13,9 @@
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 6
|
retries: 6
|
||||||
volumes:
|
volumes:
|
||||||
- type: volume
|
- type: volume
|
||||||
source: database
|
source: database
|
||||||
target: /var/lib/postgresql/data
|
target: /var/lib/postgresql/data
|
||||||
|
networks:
|
||||||
|
- {{docker_compose_project_name}}_network
|
||||||
|
{% endif %}
|
@ -10,3 +10,5 @@
|
|||||||
interval: 1s
|
interval: 1s
|
||||||
timeout: 3s
|
timeout: 3s
|
||||||
retries: 30
|
retries: 30
|
||||||
|
networks:
|
||||||
|
- {{docker_compose_project_name}}_network
|
4
vars/docker-database-service.yml.j2
Normal file
4
vars/docker-database-service.yml.j2
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
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) }}"
|
Loading…
Reference in New Issue
Block a user