mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-02-22 04:29:38 +01:00
Implemented helper role docker-central-database and refactored code
This commit is contained in:
parent
cb6a42e97d
commit
5503326ea6
@ -86,7 +86,7 @@ Detailed steps for backing up your Akaunting instance, including setting manual
|
|||||||
### Setting Variables
|
### Setting Variables
|
||||||
Variables are crucial in configuring your Akaunting setup. Ensure you set the following variables correctly in your environment:
|
Variables are crucial in configuring your Akaunting setup. Ensure you set the following variables correctly in your environment:
|
||||||
|
|
||||||
- `docker_compose_instance_directory`: Set this variable to the path where your Docker Compose files for Akaunting are located.
|
- `docker_compose.directories.instance`: Set this variable to the path where your Docker Compose files for Akaunting are located.
|
||||||
- `akaunting_db_password`, `applications.akaunting.version`, `applications.akaunting.company_name`, `applications.akaunting.company_email`, `applications.akaunting.setup_admin_email`, and `akaunting_setup_admin_password`: These should be set in your `.env` files as per your requirements.
|
- `akaunting_db_password`, `applications.akaunting.version`, `applications.akaunting.company_name`, `applications.akaunting.company_email`, `applications.akaunting.setup_admin_email`, and `akaunting_setup_admin_password`: These should be set in your `.env` files as per your requirements.
|
||||||
|
|
||||||
### Additional Configuration
|
### Additional Configuration
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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
|
||||||
@ -9,5 +10,5 @@
|
|||||||
include_tasks: update-repository-with-docker-compose.yml
|
include_tasks: update-repository-with-docker-compose.yml
|
||||||
|
|
||||||
- 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.directories.instance}}/env/run.env
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
image: docker.io/akaunting/akaunting:{{applications.akaunting.version}}
|
image: docker.io/akaunting/akaunting:{{applications.akaunting.version}}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- name: "include tasks to receive attendize certbot certificate"
|
- name: "include tasks to receive attendize certbot certificate"
|
||||||
include_tasks: recieve-certbot-certificate.yml
|
include_tasks: recieve-certbot-certificate.yml
|
||||||
|
@ -2,7 +2,7 @@ services:
|
|||||||
|
|
||||||
{% include 'templates/docker/services/redis.yml.j2' %}
|
{% include 'templates/docker/services/redis.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
web:
|
web:
|
||||||
image: "attendize_web:{{applications.attendize.version}}"
|
image: "attendize_web:{{applications.attendize.version}}"
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: add env
|
- name: add env
|
||||||
template:
|
template:
|
||||||
src: env.j2
|
src: env.j2
|
||||||
dest: "{{docker_compose_instance_directory}}env"
|
dest: "{{docker_compose.directories.instance}}env"
|
||||||
mode: '770'
|
mode: '770'
|
||||||
force: yes
|
force: yes
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
@ -2,7 +2,7 @@ services:
|
|||||||
|
|
||||||
{% include 'templates/docker/services/redis.yml.j2' %}
|
{% include 'templates/docker/services/redis.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
image: "baserow/baserow:{{applications.baserow.version}}"
|
image: "baserow/baserow:{{applications.baserow.version}}"
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
- name: create docker-compose.yml for bigbluebutton
|
- name: create docker-compose.yml for bigbluebutton
|
||||||
command:
|
command:
|
||||||
cmd: bash ./scripts/generate-compose
|
cmd: bash ./scripts/generate-compose
|
||||||
chdir: "{{docker_compose_instance_directory}}"
|
chdir: "{{docker_compose.directories.instance}}"
|
||||||
environment:
|
environment:
|
||||||
COMPOSE_HTTP_TIMEOUT: 600
|
COMPOSE_HTTP_TIMEOUT: 600
|
||||||
DOCKER_CLIENT_TIMEOUT: 600
|
DOCKER_CLIENT_TIMEOUT: 600
|
||||||
@ -63,7 +63,7 @@
|
|||||||
command:
|
command:
|
||||||
cmd: docker-compose -p bigbluebutton up -d --force-recreate
|
cmd: docker-compose -p bigbluebutton up -d --force-recreate
|
||||||
# Don't use the --build flag here. This leads to bugs
|
# Don't use the --build flag here. This leads to bugs
|
||||||
chdir: "{{docker_compose_instance_directory}}"
|
chdir: "{{docker_compose.directories.instance}}"
|
||||||
environment:
|
environment:
|
||||||
COMPOSE_HTTP_TIMEOUT: 600
|
COMPOSE_HTTP_TIMEOUT: 600
|
||||||
DOCKER_CLIENT_TIMEOUT: 600
|
DOCKER_CLIENT_TIMEOUT: 600
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
- name: pull docker repository
|
- name: pull docker repository
|
||||||
git:
|
git:
|
||||||
repo: "https://github.com/bigbluebutton/docker.git"
|
repo: "https://github.com/bigbluebutton/docker.git"
|
||||||
dest: "{{docker_compose_instance_directory}}"
|
dest: "{{docker_compose.directories.instance}}"
|
||||||
update: yes
|
update: yes
|
||||||
recursive: yes
|
recursive: yes
|
||||||
version: main
|
version: main
|
||||||
@ -35,7 +35,7 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: deploy .env
|
- name: deploy .env
|
||||||
template: src=env.j2 dest={{docker_compose_instance_directory}}/.env
|
template: src=env.j2 dest={{docker_compose.directories.instance}}/.env
|
||||||
notify: setup bigbluebutton
|
notify: setup bigbluebutton
|
||||||
|
|
||||||
- name: flush docker service
|
- name: flush docker service
|
||||||
@ -49,7 +49,7 @@
|
|||||||
- name: create admin
|
- name: create admin
|
||||||
command:
|
command:
|
||||||
cmd: docker compose exec greenlight bundle exec rake admin:create
|
cmd: docker compose exec greenlight bundle exec rake admin:create
|
||||||
chdir: "{{docker_compose_instance_directory}}"
|
chdir: "{{docker_compose.directories.instance}}"
|
||||||
when: mode_setup | bool
|
when: mode_setup | bool
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
register: admin_creation_result
|
register: admin_creation_result
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
application_id: "bigbluebutton"
|
application_id: "bigbluebutton"
|
||||||
docker_compose_file: "{{docker_compose_instance_directory}}docker-compose.yml"
|
docker_compose_file: "{{docker_compose.directories.instance}}docker-compose.yml"
|
||||||
database_instance: "bigbluebutton"
|
database_instance: "bigbluebutton"
|
||||||
database_name: "greenlight-v3"
|
database_name: "greenlight-v3"
|
||||||
database_username: "postgres"
|
database_username: "postgres"
|
||||||
|
@ -53,5 +53,5 @@
|
|||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template:
|
template:
|
||||||
src: docker-compose.yml.j2
|
src: docker-compose.yml.j2
|
||||||
dest: "{{docker_compose_instance_directory}}docker-compose.yml"
|
dest: "{{docker_compose.directories.instance}}docker-compose.yml"
|
||||||
notify: docker compose project build and setup
|
notify: docker compose project build and setup
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
application_id: "bluesky"
|
application_id: "bluesky"
|
||||||
social_app_path: "{{ docker_compose_instance_directory }}/social-app"
|
social_app_path: "{{ docker_compose.directories.instance }}/social-app"
|
||||||
|
|
||||||
# This should be removed when the following issue is closed:
|
# This should be removed when the following issue is closed:
|
||||||
# https://github.com/bluesky-social/pds/issues/52
|
# https://github.com/bluesky-social/pds/issues/52
|
||||||
pdsadmin_folder_path: "{{ docker_compose_instance_directory }}/pdsadmin"
|
pdsadmin_folder_path: "{{ docker_compose.directories.instance }}/pdsadmin"
|
||||||
pdsadmin_file_path: "{{pdsadmin_folder_path}}/pdsadmin"
|
pdsadmin_file_path: "{{pdsadmin_folder_path}}/pdsadmin"
|
||||||
pdsadmin_temporary_tar_path: "/tmp/pdsadmin.tar.gz"
|
pdsadmin_temporary_tar_path: "/tmp/pdsadmin.tar.gz"
|
71
roles/docker-central-database/README.md
Normal file
71
roles/docker-central-database/README.md
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# Database Setup Role 🚀
|
||||||
|
|
||||||
|
This Ansible role provides the necessary tasks, files, templates, and variables to set up databases in your Docker Compose environment. It is essential for configuring your application's database, whether using a local or a central instance of **MariaDB** or **PostgreSQL**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Overview 🔍
|
||||||
|
|
||||||
|
- **Database Variables**
|
||||||
|
Defined in [./vars/database.yml](./vars/database.yml), these variables include:
|
||||||
|
- `database_instance`
|
||||||
|
- `database_host`
|
||||||
|
- `database_name`
|
||||||
|
- `database_username`
|
||||||
|
- `database_port`
|
||||||
|
- `database_env`
|
||||||
|
|
||||||
|
- **Tasks**
|
||||||
|
Located in [./tasks/main.yml](./tasks/main.yml), the tasks perform the following:
|
||||||
|
- Include the Docker Compose role.
|
||||||
|
- Load database variables.
|
||||||
|
- Create the environment file for the chosen database from a template.
|
||||||
|
- Optionally create a central database (if enabled).
|
||||||
|
|
||||||
|
- **Templates**
|
||||||
|
- **Environment Files:**
|
||||||
|
- [PostgreSQL Environment Template](./templates/env/postgres.env.j2)
|
||||||
|
- [MariaDB Environment Template](./templates/env/mariadb.env.j2)
|
||||||
|
- **Service Files:**
|
||||||
|
- [MariaDB Service Template](./templates/services/mariadb.yml.j2)
|
||||||
|
- [PostgreSQL Service Template](./templates/services/postgres.yml.j2)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Usage 📋
|
||||||
|
|
||||||
|
To use this role, include it in your playbook as follows:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
|
- your_database_role_name
|
||||||
|
```
|
||||||
|
|
||||||
|
When executed, the role will:
|
||||||
|
|
||||||
|
1. Load database configuration variables.
|
||||||
|
2. Generate the appropriate environment file for the database.
|
||||||
|
3. Incorporate the Docker Compose routines.
|
||||||
|
4. Create a central database if `enable_central_database` is set to `true`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Author
|
||||||
|
|
||||||
|
Developed by [Kevin Veen-Birkenbach](https://www.veen.world/) 💻🌐
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Acknowledgments & ChatGPT Conversations 🤖💬
|
||||||
|
|
||||||
|
This role was created with the assistance of ChatGPT. The following ChatGPT conversations helped shape the design and implementation of this role:
|
||||||
|
|
||||||
|
- https://chatgpt.com/share/67a23d18-fb54-800f-983c-d6d00752b0b4
|
||||||
|
- https://chatgpt.com/share/67a244bb-11e4-800f-980f-5ef0e8b109d7
|
||||||
|
|
||||||
|
Feel free to explore these discussions for insights into design decisions and implementation details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Happy automating! 🎉
|
19
roles/docker-central-database/tasks/main.yml
Normal file
19
roles/docker-central-database/tasks/main.yml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# Docker Routines
|
||||||
|
- name: "include docker-compose role"
|
||||||
|
include_role:
|
||||||
|
name: docker-compose
|
||||||
|
|
||||||
|
# Database Routines
|
||||||
|
- name: "load variables from {{ role_path }}/vars/database.yml for whole play"
|
||||||
|
include_vars: "{{ role_path }}/vars/database.yml"
|
||||||
|
|
||||||
|
- name: "create {{database_env}}"
|
||||||
|
template:
|
||||||
|
src: "env/{{database_type}}.env.j2"
|
||||||
|
dest: "{{database_env}}"
|
||||||
|
notify: docker compose project build and setup
|
||||||
|
|
||||||
|
- name: create central database
|
||||||
|
include_role:
|
||||||
|
name: docker-{{database_type}}
|
||||||
|
when: enable_central_database | bool
|
5
roles/docker-central-database/templates/env/mariadb.env.j2
vendored
Normal file
5
roles/docker-central-database/templates/env/mariadb.env.j2
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
MYSQL_DATABASE="{{database_name}}"
|
||||||
|
MYSQL_USER="{{database_username}}"
|
||||||
|
MYSQL_PASSWORD="{{database_password}}"
|
||||||
|
MYSQL_ROOT_PASSWORD="{{database_password}}"
|
||||||
|
MARIADB_AUTO_UPGRADE="1"
|
4
roles/docker-central-database/templates/env/postgres.env.j2
vendored
Normal file
4
roles/docker-central-database/templates/env/postgres.env.j2
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
POSTGRES_PASSWORD={{database_password}}
|
||||||
|
POSTGRES_USER={{database_username}}
|
||||||
|
POSTGRES_DB={{database_name}}
|
||||||
|
POSTGRES_INITDB_ARGS=--encoding=UTF8 --locale=C
|
@ -6,12 +6,8 @@
|
|||||||
driver: journald
|
driver: journald
|
||||||
image: mariadb
|
image: mariadb
|
||||||
restart: {{docker_restart_policy}}
|
restart: {{docker_restart_policy}}
|
||||||
environment:
|
env_file:
|
||||||
MYSQL_DATABASE: "{{database_name}}"
|
- mein_env_file.env
|
||||||
MYSQL_USER: "{{database_username}}"
|
|
||||||
MYSQL_PASSWORD: "{{database_password}}"
|
|
||||||
MYSQL_ROOT_PASSWORD: "{{database_password}}"
|
|
||||||
MARIADB_AUTO_UPGRADE: "1"
|
|
||||||
command: "--transaction-isolation=READ-COMMITTED --binlog-format=ROW"
|
command: "--transaction-isolation=READ-COMMITTED --binlog-format=ROW"
|
||||||
volumes:
|
volumes:
|
||||||
- database:/var/lib/mysql
|
- database:/var/lib/mysql
|
@ -3,11 +3,8 @@
|
|||||||
database:
|
database:
|
||||||
image: postgres:{{applications.postgres.database_version}}-alpine
|
image: postgres:{{applications.postgres.database_version}}-alpine
|
||||||
container_name: {{application_id}}-database
|
container_name: {{application_id}}-database
|
||||||
environment:
|
env_file:
|
||||||
- POSTGRES_PASSWORD={{database_password}}
|
- {{database_env}}
|
||||||
- POSTGRES_USER={{database_username}}
|
|
||||||
- POSTGRES_DB={{database_name}}
|
|
||||||
- POSTGRES_INITDB_ARGS=--encoding=UTF8 --locale=C
|
|
||||||
restart: {{docker_restart_policy}}
|
restart: {{docker_restart_policy}}
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD-SHELL", "pg_isready -U {{database_name}}"]
|
test: ["CMD-SHELL", "pg_isready -U {{database_name}}"]
|
6
roles/docker-central-database/vars/database.yml
Normal file
6
roles/docker-central-database/vars/database.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
database_instance: "{{ 'central-' + database_type if enable_central_database | bool else application_id }}"
|
||||||
|
database_host: "{{ 'central-' + database_type if enable_central_database | bool else 'database' }}"
|
||||||
|
database_name: "{{ application_id }}"
|
||||||
|
database_username: "{{ application_id }}"
|
||||||
|
database_port: "{{ 3306 if database_type == 'mariadb' else 5432 }}"
|
||||||
|
database_env: "{{docker_compose.directories.env}}{{database_type}}.env"
|
@ -12,7 +12,7 @@
|
|||||||
- name: docker compose project setup
|
- name: docker compose project setup
|
||||||
command:
|
command:
|
||||||
cmd: docker-compose -p "{{application_id}}" up -d --force-recreate
|
cmd: docker-compose -p "{{application_id}}" up -d --force-recreate
|
||||||
chdir: "{{docker_compose_instance_directory}}"
|
chdir: "{{docker_compose.directories.instance}}"
|
||||||
environment:
|
environment:
|
||||||
COMPOSE_HTTP_TIMEOUT: 600
|
COMPOSE_HTTP_TIMEOUT: 600
|
||||||
DOCKER_CLIENT_TIMEOUT: 600
|
DOCKER_CLIENT_TIMEOUT: 600
|
||||||
@ -23,7 +23,7 @@
|
|||||||
- name: docker compose project build and setup
|
- name: docker compose project build and setup
|
||||||
command:
|
command:
|
||||||
cmd: docker-compose -p "{{application_id}}" up -d --force-recreate --build
|
cmd: docker-compose -p "{{application_id}}" up -d --force-recreate --build
|
||||||
chdir: "{{docker_compose_instance_directory}}"
|
chdir: "{{docker_compose.directories.instance}}"
|
||||||
environment:
|
environment:
|
||||||
COMPOSE_HTTP_TIMEOUT: 600
|
COMPOSE_HTTP_TIMEOUT: 600
|
||||||
DOCKER_CLIENT_TIMEOUT: 600
|
DOCKER_CLIENT_TIMEOUT: 600
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
- name: "Set global docker_compose_instance_directory: {{ path_docker_compose_instances }}{{ application_id }}/"
|
- name: "load variables from {{ role_path }}/vars/docker-compose.yml for whole play"
|
||||||
set_fact:
|
include_vars: "{{ role_path }}/vars/docker-compose.yml"
|
||||||
docker_compose_instance_directory: "{{ path_docker_compose_instances }}{{ application_id }}/"
|
|
||||||
|
|
||||||
- name: "Set global domain based on application_id"
|
- name: "Set global domain based on application_id"
|
||||||
set_fact:
|
set_fact:
|
||||||
@ -12,17 +11,20 @@
|
|||||||
http_port: "{{ ports.localhost.http_ports[application_id] if application_id in ports.localhost.http_ports else None }}"
|
http_port: "{{ ports.localhost.http_ports[application_id] if application_id in ports.localhost.http_ports else None }}"
|
||||||
# Default case: One port exists. Some applications like matrix don't have an default port
|
# Default case: One port exists. Some applications like matrix don't have an default port
|
||||||
|
|
||||||
- name: "remove {{ docker_compose_instance_directory }} and all its contents"
|
- name: "remove {{ docker_compose.directories.instance }} and all its contents"
|
||||||
file:
|
file:
|
||||||
path: "{{ docker_compose_instance_directory }}"
|
path: "{{ docker_compose.directories.instance }}"
|
||||||
state: absent
|
state: absent
|
||||||
when: mode_reset | bool
|
when: mode_reset | bool
|
||||||
|
|
||||||
- name: "create {{docker_compose_instance_directory}}"
|
# This could lead to problems in docker-compose directories which are based on a git repository
|
||||||
|
# @todo Verify that this isn't the case. E.g. in accounting
|
||||||
|
- name: "Create all docker-compose directories (including parent directories)"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}"
|
path: "{{ item.value }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0755
|
mode: '0755'
|
||||||
|
with_dict: "{{ docker_compose.directories }}"
|
||||||
|
|
||||||
- name: flush docker service
|
- name: flush docker service
|
||||||
meta: flush_handlers
|
meta: flush_handlers
|
||||||
|
10
roles/docker-compose/vars/docker-compose.yml
Normal file
10
roles/docker-compose/vars/docker-compose.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Private variable for role. Please use docker_compose.directories.instance instead
|
||||||
|
_docker_compose_directories_instance: "{{ path_docker_compose_instances }}{{ application_id }}/"
|
||||||
|
|
||||||
|
# @See https://chatgpt.com/share/67a23d18-fb54-800f-983c-d6d00752b0b4
|
||||||
|
docker_compose:
|
||||||
|
directories:
|
||||||
|
instance: "{{_docker_compose_directories_instance}}" # Folder for docker-compose.yml file
|
||||||
|
env: "{{_docker_compose_directories_instance}}/.env/" # Folder for env files
|
||||||
|
services: "{{_docker_compose_directories_instance}}/services/" # Folder for services
|
||||||
|
volumes: "{{_docker_compose_directories_instance}}/volumes/" # Folder for volumes
|
@ -6,8 +6,9 @@
|
|||||||
name: which
|
name: which
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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
|
||||||
@ -21,7 +22,7 @@
|
|||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template:
|
template:
|
||||||
src: docker-compose.yml.j2
|
src: docker-compose.yml.j2
|
||||||
dest: "{{docker_compose_instance_directory}}docker-compose.yml"
|
dest: "{{docker_compose.directories.instance}}docker-compose.yml"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: flush, to recreate discourse docker compose
|
- name: flush, to recreate discourse docker compose
|
||||||
|
@ -2,7 +2,7 @@ services:
|
|||||||
|
|
||||||
{% include 'templates/docker/services/redis.yml.j2' %}
|
{% include 'templates/docker/services/redis.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
{% include 'templates/docker/compose/volumes.yml.j2' %}
|
||||||
redis:
|
redis:
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
image: "friendica:{{applications.friendica.version}}"
|
image: "friendica:{{applications.friendica.version}}"
|
||||||
|
@ -1,19 +1,20 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: add .env
|
- name: add .env
|
||||||
template:
|
template:
|
||||||
src: env.j2
|
src: env.j2
|
||||||
dest: "{{docker_compose_instance_directory}}.env"
|
dest: "{{docker_compose.directories.instance}}.env"
|
||||||
mode: '770'
|
mode: '770'
|
||||||
force: yes
|
force: yes
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/services/redis.yml.j2' %}
|
{% include 'templates/docker/services/redis.yml.j2' %}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## update
|
## update
|
||||||
```bash
|
```bash
|
||||||
cd {{docker_compose_instance_directory}}
|
cd {{docker_compose.directories.instance}}
|
||||||
docker-compose down
|
docker-compose down
|
||||||
docker-compose pull
|
docker-compose pull
|
||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
@ -17,7 +17,7 @@ Keep in mind to track and to don't interrupt the update process until the migrat
|
|||||||
|
|
||||||
## recreate
|
## recreate
|
||||||
```bash
|
```bash
|
||||||
cd {{docker_compose_instance_directory}} && docker-compose -p gitea up -d --force-recreate
|
cd {{docker_compose.directories.instance}} && docker-compose -p gitea up -d --force-recreate
|
||||||
```
|
```
|
||||||
|
|
||||||
## database access
|
## database access
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
logging:
|
logging:
|
||||||
|
@ -15,7 +15,7 @@ This Ansible role is designed for setting up and managing a GitLab server runnin
|
|||||||
|
|
||||||
## Role Variables
|
## Role Variables
|
||||||
Variables are defined in `vars/main.yml`. Key variables include:
|
Variables are defined in `vars/main.yml`. Key variables include:
|
||||||
- `docker_compose_instance_directory`: Directory for Docker Compose instances.
|
- `docker_compose.directories.instance`: Directory for Docker Compose instances.
|
||||||
- `application_id`, `database_host`, `database_name`, `database_username`, `database_password`: Database configuration variables.
|
- `application_id`, `database_host`, `database_name`, `database_username`, `database_password`: Database configuration variables.
|
||||||
|
|
||||||
## Handlers
|
## Handlers
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -2,7 +2,7 @@ services:
|
|||||||
|
|
||||||
{% include 'templates/docker/services/redis.yml.j2' %}
|
{% include 'templates/docker/services/redis.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
web:
|
web:
|
||||||
image: "gitlab/gitlab-ee:{{applications.gitlab.version}}"
|
image: "gitlab/gitlab-ee:{{applications.gitlab.version}}"
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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
|
||||||
@ -9,5 +10,5 @@
|
|||||||
loop_var: domain
|
loop_var: domain
|
||||||
|
|
||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
image: "joomla:{{applications.joomla.version}}"
|
image: "joomla:{{applications.joomla.version}}"
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
image: quay.io/keycloak/keycloak:{{applications.keycloak.version}}
|
image: quay.io/keycloak/keycloak:{{applications.keycloak.version}}
|
||||||
|
@ -35,7 +35,7 @@ This Ansible role provides a streamlined implementation of an LDAP server with T
|
|||||||
| `application_id` | Name of the Docker Compose project. | `ldap` |
|
| `application_id` | Name of the Docker Compose project. | `ldap` |
|
||||||
| `ldap_root` | Base DN for the LDAP directory. | `dc={{primary_domain_sld}},dc={{primary_domain_tld}}` |
|
| `ldap_root` | Base DN for the LDAP directory. | `dc={{primary_domain_sld}},dc={{primary_domain_tld}}` |
|
||||||
| `ldap_admin_dn` | Distinguished Name (DN) for the LDAP administrator. | `cn={{applications.ldap.administrator_username}},{{ldap_root}}` |
|
| `ldap_admin_dn` | Distinguished Name (DN) for the LDAP administrator. | `cn={{applications.ldap.administrator_username}},{{ldap_root}}` |
|
||||||
| `cert_mount_directory` | Directory to mount SSL/TLS certificates. | `{{docker_compose_instance_directory}}/certs/` |
|
| `cert_mount_directory` | Directory to mount SSL/TLS certificates. | `{{docker_compose.directories.instance}}/certs/` |
|
||||||
| `applications.ldap.administrator_username` | Username for the LDAP admin. | `admin` |
|
| `applications.ldap.administrator_username` | Username for the LDAP admin. | `admin` |
|
||||||
| `applications.ldap.administrator_password` | Password for the LDAP admin. | _Required_ |
|
| `applications.ldap.administrator_password` | Password for the LDAP admin. | _Required_ |
|
||||||
| `applications.ldap.phpldapadmin.version` | Version of phpLDAPadmin Docker image. | `latest` |
|
| `applications.ldap.phpldapadmin.version` | Version of phpLDAPadmin Docker image. | `latest` |
|
||||||
@ -70,7 +70,7 @@ Here’s an example playbook to use this role:
|
|||||||
roles:
|
roles:
|
||||||
- role: docker-ldap
|
- role: docker-ldap
|
||||||
vars:
|
vars:
|
||||||
docker_compose_instance_directory: "/opt/docker/ldap/"
|
docker_compose.directories.instance: "/opt/docker/ldap/"
|
||||||
primary_domain_sld: "veen"
|
primary_domain_sld: "veen"
|
||||||
primary_domain_tld: "world"
|
primary_domain_tld: "world"
|
||||||
applications.ldap.administrator_username: "administrator"
|
applications.ldap.administrator_username: "administrator"
|
||||||
|
@ -19,14 +19,14 @@
|
|||||||
state: absent
|
state: absent
|
||||||
when: not applications.ldap.openldap.expose_to_internet | bool
|
when: not applications.ldap.openldap.expose_to_internet | bool
|
||||||
|
|
||||||
- name: "create {{docker_compose_instance_directory}}"
|
- name: "create {{docker_compose.directories.instance}}"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}"
|
path: "{{docker_compose.directories.instance}}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0755
|
mode: 0755
|
||||||
|
|
||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template:
|
template:
|
||||||
src: "docker-compose.yml.j2"
|
src: "docker-compose.yml.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}docker-compose.yml"
|
dest: "{{docker_compose.directories.instance}}docker-compose.yml"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- name: Set nginx_docker_reverse_proxy_extra_configuration based on applications.listmonk.public_api_activated
|
- name: Set nginx_docker_reverse_proxy_extra_configuration based on applications.listmonk.public_api_activated
|
||||||
set_fact:
|
set_fact:
|
||||||
@ -17,13 +18,13 @@
|
|||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template:
|
template:
|
||||||
src: "docker-compose.yml.j2"
|
src: "docker-compose.yml.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}docker-compose.yml"
|
dest: "{{docker_compose.directories.instance}}docker-compose.yml"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: add config.toml
|
- name: add config.toml
|
||||||
template:
|
template:
|
||||||
src: "config.toml.j2"
|
src: "config.toml.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}config.toml"
|
dest: "{{docker_compose.directories.instance}}config.toml"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: flush docker service
|
- name: flush docker service
|
||||||
@ -33,5 +34,5 @@
|
|||||||
- name: setup routine for listmonk
|
- name: setup routine for listmonk
|
||||||
command:
|
command:
|
||||||
cmd: docker compose run -T --rm application sh -c "yes | ./listmonk --install"
|
cmd: docker compose run -T --rm application sh -c "yes | ./listmonk --install"
|
||||||
chdir: "{{docker_compose_instance_directory}}"
|
chdir: "{{docker_compose.directories.instance}}"
|
||||||
when: mode_setup |bool
|
when: mode_setup |bool
|
@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
restart: {{docker_restart_policy}}
|
restart: {{docker_restart_policy}}
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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:
|
||||||
nginx_docker_reverse_proxy_extra_configuration: "client_max_body_size 31M;"
|
nginx_docker_reverse_proxy_extra_configuration: "client_max_body_size 31M;"
|
||||||
|
|
||||||
- name: "create {{docker_compose_instance_directory}}"
|
- name: "create {{docker_compose.directories.instance}}"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}"
|
path: "{{docker_compose.directories.instance}}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0755
|
mode: 0755
|
||||||
|
|
||||||
@ -26,13 +27,13 @@
|
|||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template:
|
template:
|
||||||
src: "docker-compose.yml.j2"
|
src: "docker-compose.yml.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}docker-compose.yml"
|
dest: "{{docker_compose.directories.instance}}docker-compose.yml"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: add .env
|
- name: add .env
|
||||||
template:
|
template:
|
||||||
src: "env.j2"
|
src: "env.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}.env"
|
dest: "{{docker_compose.directories.instance}}.env"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: flush docker service
|
- name: flush docker service
|
||||||
@ -42,6 +43,6 @@
|
|||||||
- name: execute database migration
|
- name: execute database migration
|
||||||
command:
|
command:
|
||||||
cmd: "docker compose -p mailu exec admin flask mailu admin admin {{primary_domain}} {{mailu_initial_root_password}}"
|
cmd: "docker compose -p mailu exec admin flask mailu admin admin {{primary_domain}} {{mailu_initial_root_password}}"
|
||||||
chdir: "{{docker_compose_instance_directory}}"
|
chdir: "{{docker_compose.directories.instance}}"
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
when: mode_setup |bool
|
when: mode_setup |bool
|
@ -2,7 +2,7 @@ services:
|
|||||||
|
|
||||||
{% include 'templates/docker/services/redis.yml.j2' %}
|
{% include 'templates/docker/services/redis.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
# Core services
|
# Core services
|
||||||
resolver:
|
resolver:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
application_id: "mailu"
|
application_id: "mailu"
|
||||||
database_password: "{{mailu_database_password}}"
|
database_password: "{{mailu_database_password}}"
|
||||||
database_type: "mariadb"
|
database_type: "mariadb"
|
||||||
cert_mount_directory: "{{docker_compose_instance_directory}}/certs/"
|
cert_mount_directory: "{{docker_compose.directories.instance}}/certs/"
|
||||||
enable_wildcard_certificate: false
|
enable_wildcard_certificate: false
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- name: "include create-domains.yml"
|
- name: "include create-domains.yml"
|
||||||
include_tasks: create-domains.yml
|
include_tasks: create-domains.yml
|
||||||
@ -9,13 +10,13 @@
|
|||||||
loop_var: domain
|
loop_var: domain
|
||||||
|
|
||||||
- name: copy docker-compose.yml
|
- name: copy docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: copy configuration
|
- name: copy configuration
|
||||||
template:
|
template:
|
||||||
src: .env.production.j2
|
src: .env.production.j2
|
||||||
dest: "{{docker_compose_instance_directory}}.env.production"
|
dest: "{{docker_compose.directories.instance}}.env.production"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: flush docker service
|
- name: flush docker service
|
||||||
@ -25,5 +26,5 @@
|
|||||||
- name: setup routine for mastodon
|
- name: setup routine for mastodon
|
||||||
command:
|
command:
|
||||||
cmd: "docker-compose run --rm web bundle exec rails db:migrate"
|
cmd: "docker-compose run --rm web bundle exec rails db:migrate"
|
||||||
chdir: "{{docker_compose_instance_directory}}"
|
chdir: "{{docker_compose.directories.instance}}"
|
||||||
when: mode_setup |bool
|
when: mode_setup |bool
|
@ -2,7 +2,7 @@ services:
|
|||||||
|
|
||||||
{% include 'templates/docker/services/redis.yml.j2' %}
|
{% include 'templates/docker/services/redis.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
web:
|
web:
|
||||||
image: ghcr.io/mastodon/mastodon:{{applications.mastodon.version}}
|
image: ghcr.io/mastodon/mastodon:{{applications.mastodon.version}}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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,5 +9,5 @@
|
|||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template:
|
template:
|
||||||
src: "docker-compose.yml.j2"
|
src: "docker-compose.yml.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}docker-compose.yml"
|
dest: "{{docker_compose.directories.instance}}docker-compose.yml"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
logging:
|
logging:
|
||||||
|
@ -95,40 +95,40 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#- name: "create {{docker_compose_instance_directory}}"
|
#- name: "create {{docker_compose.directories.instance}}"
|
||||||
# file:
|
# file:
|
||||||
# path: "{{docker_compose_instance_directory}}"
|
# path: "{{docker_compose.directories.instance}}"
|
||||||
# state: directory
|
# state: directory
|
||||||
# mode: 0755
|
# mode: 0755
|
||||||
#
|
#
|
||||||
#- name: "create {{docker_compose_instance_directory}}mautrix_whatsapp"
|
#- name: "create {{docker_compose.directories.instance}}mautrix_whatsapp"
|
||||||
# file:
|
# file:
|
||||||
# path: "{{docker_compose_instance_directory}}mautrix_whatsapp"
|
# path: "{{docker_compose.directories.instance}}mautrix_whatsapp"
|
||||||
# state: directory
|
# state: directory
|
||||||
# mode: 0755
|
# mode: 0755
|
||||||
#
|
#
|
||||||
#- name: add whatsapp-bridge-config.yml
|
#- name: add whatsapp-bridge-config.yml
|
||||||
# template:
|
# template:
|
||||||
# src: "whatsapp-bridge-config.yml.j2"
|
# src: "whatsapp-bridge-config.yml.j2"
|
||||||
# dest: "{{docker_compose_instance_directory}}mautrix_whatsapp/config.yml"
|
# dest: "{{docker_compose.directories.instance}}mautrix_whatsapp/config.yml"
|
||||||
# notify: recreate matrix
|
# notify: recreate matrix
|
||||||
#
|
#
|
||||||
#- name: add element-config.json
|
#- name: add element-config.json
|
||||||
# template:
|
# template:
|
||||||
# src: "element-config.json.j2"
|
# src: "element-config.json.j2"
|
||||||
# dest: "{{docker_compose_instance_directory}}element-config.json"
|
# dest: "{{docker_compose.directories.instance}}element-config.json"
|
||||||
# notify: recreate matrix
|
# notify: recreate matrix
|
||||||
#
|
#
|
||||||
#- name: add homeserver.yaml
|
#- name: add homeserver.yaml
|
||||||
# template:
|
# template:
|
||||||
# src: "homeserver.yaml.j2"
|
# src: "homeserver.yaml.j2"
|
||||||
# dest: "{{docker_compose_instance_directory}}homeserver.yaml"
|
# dest: "{{docker_compose.directories.instance}}homeserver.yaml"
|
||||||
# notify: recreate matrix
|
# notify: recreate matrix
|
||||||
#
|
#
|
||||||
#- name: add log.config
|
#- name: add log.config
|
||||||
# template:
|
# template:
|
||||||
# src: "log.config.j2"
|
# src: "log.config.j2"
|
||||||
# dest: "{{docker_compose_instance_directory}}{{domains.matrix_synapse}}.log.config"
|
# dest: "{{docker_compose.directories.instance}}{{domains.matrix_synapse}}.log.config"
|
||||||
# notify: recreate matrix
|
# notify: recreate matrix
|
||||||
#
|
#
|
||||||
## https://github.com/matrix-org/synapse/issues/6303
|
## https://github.com/matrix-org/synapse/issues/6303
|
||||||
@ -139,5 +139,5 @@
|
|||||||
#- name: add docker-compose.yml
|
#- name: add docker-compose.yml
|
||||||
# template:
|
# template:
|
||||||
# src: "docker-compose.yml.j2"
|
# src: "docker-compose.yml.j2"
|
||||||
# dest: "{{docker_compose_instance_directory}}docker-compose.yml"
|
# dest: "{{docker_compose.directories.instance}}docker-compose.yml"
|
||||||
# notify: recreate matrix
|
# notify: recreate matrix
|
||||||
|
@ -12,7 +12,7 @@ Matrix is an open-source project that provides a protocol for secure, decentrali
|
|||||||
|
|
||||||
## Files and Their Functions
|
## Files and Their Functions
|
||||||
|
|
||||||
1. **`vars/main.yml`**: Defines variables such as `docker_compose_instance_directory`.
|
1. **`vars/main.yml`**: Defines variables such as `docker_compose.directories.instance`.
|
||||||
2. **`handlers/main.yml`**: Contains handlers like `recreate matrix` for restarting the Matrix service.
|
2. **`handlers/main.yml`**: Contains handlers like `recreate matrix` for restarting the Matrix service.
|
||||||
3. **`tasks/main.yml`**: Contains main tasks like creating directories and configuration files.
|
3. **`tasks/main.yml`**: Contains main tasks like creating directories and configuration files.
|
||||||
4. **`templates/log.config.j2`**: Template for the Matrix server's logging configuration.
|
4. **`templates/log.config.j2`**: Template for the Matrix server's logging configuration.
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- name: "include task certbot-matomo.yml"
|
- name: "include task certbot-matomo.yml"
|
||||||
include_tasks: certbot-matomo.yml
|
include_tasks: certbot-matomo.yml
|
||||||
@ -46,16 +47,16 @@
|
|||||||
- name: shut down docker compose project
|
- name: shut down docker compose project
|
||||||
command:
|
command:
|
||||||
cmd: docker-compose -p "{{application_id}}" down
|
cmd: docker-compose -p "{{application_id}}" down
|
||||||
chdir: "{{ docker_compose_instance_directory }}"
|
chdir: "{{ docker_compose.directories.instance }}"
|
||||||
|
|
||||||
- name: "cleanup project folder"
|
- name: "cleanup project folder"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}mautrix/"
|
path: "{{docker_compose.directories.instance}}mautrix/"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: "create bridge folders"
|
- name: "create bridge folders"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}mautrix/{{item.bridge_name}}"
|
path: "{{docker_compose.directories.instance}}mautrix/{{item.bridge_name}}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: 0755
|
mode: 0755
|
||||||
loop: "{{ bridges }}"
|
loop: "{{ bridges }}"
|
||||||
@ -63,26 +64,26 @@
|
|||||||
- name: add multiple mautrix bridge configuration
|
- name: add multiple mautrix bridge configuration
|
||||||
template:
|
template:
|
||||||
src: "mautrix/{{item.bridge_name}}.config.yml.j2"
|
src: "mautrix/{{item.bridge_name}}.config.yml.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}mautrix/{{item.bridge_name}}/config.yaml"
|
dest: "{{docker_compose.directories.instance}}mautrix/{{item.bridge_name}}/config.yaml"
|
||||||
loop: "{{ bridges }}"
|
loop: "{{ bridges }}"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: add element configuration
|
- name: add element configuration
|
||||||
template:
|
template:
|
||||||
src: "element.config.json.j2"
|
src: "element.config.json.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}element-config.json"
|
dest: "{{docker_compose.directories.instance}}element-config.json"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: add synapse homeserver configuration
|
- name: add synapse homeserver configuration
|
||||||
template:
|
template:
|
||||||
src: "synapse/homeserver.yaml.j2"
|
src: "synapse/homeserver.yaml.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}homeserver.yaml"
|
dest: "{{docker_compose.directories.instance}}homeserver.yaml"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: add synapse log configuration
|
- name: add synapse log configuration
|
||||||
template:
|
template:
|
||||||
src: "synapse/log.config.j2"
|
src: "synapse/log.config.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}{{domains.matrix_synapse}}.log.config"
|
dest: "{{docker_compose.directories.instance}}{{domains.matrix_synapse}}.log.config"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
# https://github.com/matrix-org/synapse/issues/6303
|
# https://github.com/matrix-org/synapse/issues/6303
|
||||||
@ -93,7 +94,7 @@
|
|||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template:
|
template:
|
||||||
src: "docker-compose.yml.j2"
|
src: "docker-compose.yml.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}docker-compose.yml"
|
dest: "{{docker_compose.directories.instance}}docker-compose.yml"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
# Pull image when update is wished.
|
# Pull image when update is wished.
|
||||||
@ -101,13 +102,13 @@
|
|||||||
- name: docker compose pull
|
- name: docker compose pull
|
||||||
command:
|
command:
|
||||||
cmd: docker-compose -p "{{application_id}}" pull
|
cmd: docker-compose -p "{{application_id}}" pull
|
||||||
chdir: "{{docker_compose_instance_directory}}"
|
chdir: "{{docker_compose.directories.instance}}"
|
||||||
when: mode_update | bool
|
when: mode_update | bool
|
||||||
|
|
||||||
- name: docker compose project setup
|
- name: docker compose project setup
|
||||||
command:
|
command:
|
||||||
cmd: docker-compose -p "{{application_id}}" up -d
|
cmd: docker-compose -p "{{application_id}}" up -d
|
||||||
chdir: "{{docker_compose_instance_directory}}"
|
chdir: "{{docker_compose.directories.instance}}"
|
||||||
environment:
|
environment:
|
||||||
COMPOSE_HTTP_TIMEOUT: 600
|
COMPOSE_HTTP_TIMEOUT: 600
|
||||||
DOCKER_CLIENT_TIMEOUT: 600
|
DOCKER_CLIENT_TIMEOUT: 600
|
||||||
@ -118,27 +119,27 @@
|
|||||||
|
|
||||||
- name: wait for registration files
|
- name: wait for registration files
|
||||||
wait_for:
|
wait_for:
|
||||||
path: "{{docker_compose_instance_directory}}mautrix/{{item.bridge_name}}/registration.yaml"
|
path: "{{docker_compose.directories.instance}}mautrix/{{item.bridge_name}}/registration.yaml"
|
||||||
state: present
|
state: present
|
||||||
timeout: 120
|
timeout: 120
|
||||||
loop: "{{ bridges }}"
|
loop: "{{ bridges }}"
|
||||||
|
|
||||||
- name: "change file permissions"
|
- name: "change file permissions"
|
||||||
file:
|
file:
|
||||||
path: "{{docker_compose_instance_directory}}mautrix/{{item.bridge_name}}/registration.yaml"
|
path: "{{docker_compose.directories.instance}}mautrix/{{item.bridge_name}}/registration.yaml"
|
||||||
mode: 0755
|
mode: 0755
|
||||||
loop: "{{ bridges }}"
|
loop: "{{ bridges }}"
|
||||||
|
|
||||||
- name: create admin account
|
- name: create admin account
|
||||||
command:
|
command:
|
||||||
cmd: docker compose exec -it synapse register_new_matrix_user -u {{applications.matrix.administrator_username}} -p {{matrix_admin_password}} -a -c /data/homeserver.yaml http://localhost:8008
|
cmd: docker compose exec -it synapse register_new_matrix_user -u {{applications.matrix.administrator_username}} -p {{matrix_admin_password}} -a -c /data/homeserver.yaml http://localhost:8008
|
||||||
chdir: "{{ docker_compose_instance_directory }}"
|
chdir: "{{ docker_compose.directories.instance }}"
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
when: mode_setup | bool
|
when: mode_setup | bool
|
||||||
|
|
||||||
- name: create chatgpt bot
|
- name: create chatgpt bot
|
||||||
command:
|
command:
|
||||||
cmd: docker compose exec -it synapse register_new_matrix_user -u chatgptbot -p {{matrix_chatgpt_bridge_user_password}} -a -c /data/homeserver.yaml http://localhost:8008
|
cmd: docker compose exec -it synapse register_new_matrix_user -u chatgptbot -p {{matrix_chatgpt_bridge_user_password}} -a -c /data/homeserver.yaml http://localhost:8008
|
||||||
chdir: "{{ docker_compose_instance_directory }}"
|
chdir: "{{ docker_compose.directories.instance }}"
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
when: mode_setup | bool
|
when: mode_setup | bool
|
@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
synapse:
|
synapse:
|
||||||
image: matrixdotorg/synapse:{{applications.matrix.synapse.version}}
|
image: matrixdotorg/synapse:{{applications.matrix.synapse.version}}
|
||||||
@ -13,7 +13,7 @@ services:
|
|||||||
- ./homeserver.yaml:/data/homeserver.yaml:ro
|
- ./homeserver.yaml:/data/homeserver.yaml:ro
|
||||||
- ./{{domains.matrix_synapse}}.log.config:/data/{{domains.matrix_synapse}}.log.config:ro
|
- ./{{domains.matrix_synapse}}.log.config:/data/{{domains.matrix_synapse}}.log.config:ro
|
||||||
{% for item in bridges %}
|
{% for item in bridges %}
|
||||||
- {{docker_compose_instance_directory}}mautrix/{{item.bridge_name}}/registration.yaml:{{registration_file_folder}}{{item.bridge_name}}.registration.yaml:ro
|
- {{docker_compose.directories.instance}}mautrix/{{item.bridge_name}}/registration.yaml:{{registration_file_folder}}{{item.bridge_name}}.registration.yaml:ro
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
environment:
|
environment:
|
||||||
- SYNAPSE_SERVER_NAME={{domains.matrix_synapse}}
|
- SYNAPSE_SERVER_NAME={{domains.matrix_synapse}}
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
application:
|
application:
|
||||||
# Seems like image tag got lost. @todo Check and implement if necessary
|
# Seems like image tag got lost. @todo Check and implement if necessary
|
||||||
log_driver: journald
|
log_driver: journald
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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,5 +9,5 @@
|
|||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template:
|
template:
|
||||||
src: "docker-compose.yml.j2"
|
src: "docker-compose.yml.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}docker-compose.yml"
|
dest: "{{docker_compose.directories.instance}}docker-compose.yml"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
moodle:
|
moodle:
|
||||||
image: docker.io/bitnami/moodle:{{applications.moodle.version}}
|
image: docker.io/bitnami/moodle:{{applications.moodle.version}}
|
||||||
ports:
|
ports:
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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
|
||||||
@ -24,5 +25,5 @@
|
|||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template:
|
template:
|
||||||
src: "docker-compose.yml.j2"
|
src: "docker-compose.yml.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}docker-compose.yml"
|
dest: "{{docker_compose.directories.instance}}docker-compose.yml"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
logging:
|
logging:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
application_id: "mybb"
|
application_id: "mybb"
|
||||||
docker_compose_instance_confd_directory: "{{docker_compose_instance_directory}}conf.d/"
|
docker_compose_instance_confd_directory: "{{docker_compose.directories.instance}}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.directories.http.servers}}"
|
target_mount_conf_d_directory: "{{nginx.directories.http.servers}}"
|
||||||
source_domain: "mybb.{{primary_domain}}"
|
source_domain: "mybb.{{primary_domain}}"
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- name: "include task certbot-matomo.yml"
|
- name: "include task certbot-matomo.yml"
|
||||||
include_tasks: certbot-matomo.yml
|
include_tasks: certbot-matomo.yml
|
||||||
@ -14,15 +15,16 @@
|
|||||||
- name: create nginx.conf
|
- name: create nginx.conf
|
||||||
template:
|
template:
|
||||||
src: "templates/nginx.conf.j2"
|
src: "templates/nginx.conf.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}nginx.conf"
|
dest: "{{docker_compose.directories.volumes}}nginx.conf"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template:
|
template:
|
||||||
src: docker-compose.yml.j2
|
src: docker-compose.yml.j2
|
||||||
dest: "{{docker_compose_instance_directory}}docker-compose.yml"
|
dest: "{{docker_compose.directories.instance}}docker-compose.yml"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
|
# @todo activate
|
||||||
#- name: Include OIDC-specific tasks if OIDC client is active
|
#- name: Include OIDC-specific tasks if OIDC client is active
|
||||||
# include_tasks: oidc_tasks.yml
|
# include_tasks: oidc_tasks.yml
|
||||||
# when: oidc_client_active | bool
|
# when: oidc_client_active | bool
|
||||||
|
@ -2,7 +2,7 @@ services:
|
|||||||
|
|
||||||
{% include 'templates/docker/services/redis.yml.j2' %}
|
{% include 'templates/docker/services/redis.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
image: "nextcloud:{{applications.nextcloud.version}}-fpm-alpine"
|
image: "nextcloud:{{applications.nextcloud.version}}-fpm-alpine"
|
||||||
@ -47,7 +47,7 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:{{http_port}}:80"
|
- "127.0.0.1:{{http_port}}:80"
|
||||||
volumes:
|
volumes:
|
||||||
- "{{docker_compose_instance_directory}}/nginx.conf:/etc/nginx/nginx.conf:ro"
|
- "{{docker_compose.directories.volumes}}nginx.conf:/etc/nginx/nginx.conf:ro"
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- application
|
- application
|
||||||
healthcheck:
|
healthcheck:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
- name: "Transfering oauth2-proxy-keycloak.cfg.j2 to {{docker_compose_instance_directory}}"
|
- name: "Transfering oauth2-proxy-keycloak.cfg.j2 to {{docker_compose.directories.instance}}"
|
||||||
template:
|
template:
|
||||||
src: oauth2-proxy-keycloak.cfg.j2
|
src: oauth2-proxy-keycloak.cfg.j2
|
||||||
dest: "{{docker_compose_instance_directory}}{{applications.oauth2_proxy.configuration_file}}"
|
dest: "{{docker_compose.directories.instance}}{{applications.oauth2_proxy.configuration_file}}"
|
||||||
notify:
|
notify:
|
||||||
- docker compose project setup
|
- docker compose project setup
|
@ -16,7 +16,7 @@ This role is designed to deploy the OpenProject application using Docker. It inc
|
|||||||
The role uses several variables, defined in `vars/main.yml`:
|
The role uses several variables, defined in `vars/main.yml`:
|
||||||
|
|
||||||
- `repository_directory`: The directory for the OpenProject repository.
|
- `repository_directory`: The directory for the OpenProject repository.
|
||||||
- `docker_compose_instance_directory`: Directory for Docker Compose instances.
|
- `docker_compose.directories.instance`: Directory for Docker Compose instances.
|
||||||
|
|
||||||
## Handlers
|
## Handlers
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
- name: rebuild docker image
|
- name: rebuild docker image
|
||||||
command:
|
command:
|
||||||
cmd: docker build --no-cache -t custom_openproject .
|
cmd: docker build --no-cache -t custom_openproject .
|
||||||
chdir: "{{docker_compose_instance_directory}}"
|
chdir: "{{docker_compose.directories.instance}}"
|
||||||
environment:
|
environment:
|
||||||
COMPOSE_HTTP_TIMEOUT: 600
|
COMPOSE_HTTP_TIMEOUT: 600
|
||||||
DOCKER_CLIENT_TIMEOUT: 600
|
DOCKER_CLIENT_TIMEOUT: 600
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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,18 +9,18 @@
|
|||||||
- 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: "Transfering Gemfile.plugins to {{docker_compose_instance_directory}}"
|
- name: "Transfering Gemfile.plugins to {{docker_compose.directories.instance}}"
|
||||||
copy:
|
copy:
|
||||||
src: Gemfile.plugins
|
src: Gemfile.plugins
|
||||||
dest: "{{docker_compose_instance_directory}}Gemfile.plugins"
|
dest: "{{docker_compose.directories.instance}}Gemfile.plugins"
|
||||||
notify:
|
notify:
|
||||||
- docker compose project setup
|
- docker compose project setup
|
||||||
- rebuild docker image
|
- rebuild docker image
|
||||||
|
|
||||||
- name: "Transfering Dockerfile to {{docker_compose_instance_directory}}"
|
- name: "Transfering Dockerfile to {{docker_compose.directories.instance}}"
|
||||||
copy:
|
copy:
|
||||||
src: Dockerfile
|
src: Dockerfile
|
||||||
dest: "{{docker_compose_instance_directory}}Dockerfile"
|
dest: "{{docker_compose.directories.instance}}Dockerfile"
|
||||||
notify:
|
notify:
|
||||||
- docker compose project setup
|
- docker compose project setup
|
||||||
- rebuild docker image
|
- rebuild docker image
|
||||||
@ -33,5 +34,5 @@
|
|||||||
- name: "copy .env"
|
- name: "copy .env"
|
||||||
template:
|
template:
|
||||||
src: env.j2
|
src: env.j2
|
||||||
dest: "{{ docker_compose_instance_directory }}.env"
|
dest: "{{ docker_compose.directories.instance }}.env"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -20,7 +20,7 @@ x-op-app: &app
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
{% include 'roles/docker-oauth2-proxy/templates/container.yml.j2' %}
|
{% include 'roles/docker-oauth2-proxy/templates/container.yml.j2' %}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
application_id: "openproject"
|
application_id: "openproject"
|
||||||
repository_directory: "{{ path_docker_compose_instances }}{{application_id}}/"
|
repository_directory: "{{ path_docker_compose_instances }}{{application_id}}/"
|
||||||
docker_compose_instance_directory: "{{repository_directory}}compose/"
|
docker_compose.directories.instance: "{{repository_directory}}compose/"
|
||||||
repository_address: "https://github.com/opf/openproject-deploy"
|
repository_address: "https://github.com/opf/openproject-deploy"
|
||||||
database_password: "{{openproject_database_password}}"
|
database_password: "{{openproject_database_password}}"
|
||||||
database_type: "postgres"
|
database_type: "postgres"
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- name: "include create-domains.yml"
|
- name: "include create-domains.yml"
|
||||||
include_tasks: create-domains.yml
|
include_tasks: create-domains.yml
|
||||||
@ -9,11 +10,11 @@
|
|||||||
loop_var: domain
|
loop_var: domain
|
||||||
|
|
||||||
- name: copy docker-compose.yml
|
- name: copy docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: copy configuration
|
- name: copy configuration
|
||||||
template:
|
template:
|
||||||
src: env.j2
|
src: env.j2
|
||||||
dest: "{{docker_compose_instance_directory}}.env"
|
dest: "{{docker_compose.directories.instance}}.env"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -2,7 +2,7 @@ services:
|
|||||||
|
|
||||||
{% include 'templates/docker/services/redis.yml.j2' %}
|
{% include 'templates/docker/services/redis.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
image: chocobozzz/peertube:production-{{applications.peertube.version}}
|
image: chocobozzz/peertube:production-{{applications.peertube.version}}
|
||||||
|
@ -9,5 +9,5 @@
|
|||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template:
|
template:
|
||||||
src: "docker-compose.yml.j2"
|
src: "docker-compose.yml.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}docker-compose.yml"
|
dest: "{{docker_compose.directories.instance}}docker-compose.yml"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: add env
|
- name: add env
|
||||||
template:
|
template:
|
||||||
src: env.j2
|
src: env.j2
|
||||||
dest: "{{docker_compose_instance_directory}}env"
|
dest: "{{docker_compose.directories.instance}}env"
|
||||||
mode: '770'
|
mode: '770'
|
||||||
force: yes
|
force: yes
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/services/redis.yml.j2' %}
|
{% include 'templates/docker/services/redis.yml.j2' %}
|
||||||
|
|
||||||
|
@ -9,12 +9,12 @@
|
|||||||
- 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: create {{docker_compose_instance_directory}}/app/config.yaml
|
- name: create {{docker_compose.directories.instance}}/app/config.yaml
|
||||||
copy:
|
copy:
|
||||||
src: "{{ inventory_dir }}/files/{{ inventory_hostname }}/docker/portfolio/config.yaml"
|
src: "{{ inventory_dir }}/files/{{ inventory_hostname }}/docker/portfolio/config.yaml"
|
||||||
dest: "{{docker_compose_instance_directory}}/app/config.yaml"
|
dest: "{{docker_compose.directories.instance}}/app/config.yaml"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -13,9 +13,9 @@
|
|||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: add Dockerfile
|
- name: add Dockerfile
|
||||||
template: src=Dockerfile.j2 dest={{docker_compose_instance_directory}}Dockerfile
|
template: src=Dockerfile.j2 dest={{docker_compose.directories.instance}}Dockerfile
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
application_id: "roulette-wheel"
|
application_id: "roulette-wheel"
|
||||||
app_path: "{{docker_compose_instance_directory}}/app/"
|
app_path: "{{docker_compose.directories.instance}}/app/"
|
@ -1,14 +1,15 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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 .env
|
- name: create .env
|
||||||
template: src=env.j2 dest={{docker_compose_instance_directory}}/.env
|
template: src=env.j2 dest={{docker_compose.directories.instance}}/.env
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -2,7 +2,7 @@ services:
|
|||||||
|
|
||||||
{% include 'templates/docker/services/redis.yml.j2' %}
|
{% include 'templates/docker/services/redis.yml.j2' %}
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
image: snipe/snipe-it:${APP_VERSION}
|
image: snipe/snipe-it:${APP_VERSION}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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
|
||||||
|
@ -36,7 +36,7 @@ x-volumes:
|
|||||||
# - ./config.py:/taiga-back/settings/config.py
|
# - ./config.py:/taiga-back/settings/config.py
|
||||||
|
|
||||||
services:
|
services:
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
taiga-back:
|
taiga-back:
|
||||||
restart: {{docker_restart_policy}}
|
restart: {{docker_restart_policy}}
|
||||||
logging:
|
logging:
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
- name: rebuild wordpress container
|
- name: rebuild wordpress container
|
||||||
command:
|
command:
|
||||||
cmd: docker build --no-cache -t custom_wordpress .
|
cmd: docker build --no-cache -t custom_wordpress .
|
||||||
chdir: "{{docker_compose_instance_directory}}"
|
chdir: "{{docker_compose.directories.instance}}"
|
||||||
environment:
|
environment:
|
||||||
COMPOSE_HTTP_TIMEOUT: 600
|
COMPOSE_HTTP_TIMEOUT: 600
|
||||||
DOCKER_CLIENT_TIMEOUT: 600
|
DOCKER_CLIENT_TIMEOUT: 600
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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
|
||||||
@ -10,22 +11,22 @@
|
|||||||
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: "Transfering upload.ini to {{docker_compose_instance_directory}}"
|
- name: "Transfering upload.ini to {{docker_compose.directories.instance}}"
|
||||||
template:
|
template:
|
||||||
src: upload.ini.j2
|
src: upload.ini.j2
|
||||||
dest: "{{docker_compose_instance_directory}}upload.ini"
|
dest: "{{docker_compose.directories.instance}}upload.ini"
|
||||||
notify:
|
notify:
|
||||||
- docker compose project setup
|
- docker compose project setup
|
||||||
- rebuild wordpress container
|
- rebuild wordpress container
|
||||||
|
|
||||||
- name: "Transfering Dockerfile to {{docker_compose_instance_directory}}"
|
- name: "Transfering Dockerfile to {{docker_compose.directories.instance}}"
|
||||||
copy:
|
copy:
|
||||||
src: Dockerfile
|
src: Dockerfile
|
||||||
dest: "{{docker_compose_instance_directory}}Dockerfile"
|
dest: "{{docker_compose.directories.instance}}Dockerfile"
|
||||||
notify:
|
notify:
|
||||||
- docker compose project setup
|
- docker compose project setup
|
||||||
- rebuild wordpress container
|
- rebuild wordpress container
|
||||||
|
|
||||||
- name: "add docker-compose.yml to {{docker_compose_instance_directory}}"
|
- name: "add docker-compose.yml to {{docker_compose.directories.instance}}"
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
logging:
|
logging:
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
- name: "include docker/compose/database.yml"
|
- name: "include docker-central-database"
|
||||||
include_tasks: docker/compose/database.yml
|
include_role:
|
||||||
|
name: docker-central-database
|
||||||
|
|
||||||
- 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,5 +9,5 @@
|
|||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template:
|
template:
|
||||||
src: "docker-compose.yml.j2"
|
src: "docker-compose.yml.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}docker-compose.yml"
|
dest: "{{docker_compose.directories.instance}}docker-compose.yml"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
{% include 'templates/docker/services/' + database_type + '.yml.j2' %}
|
{% include 'roles/docker-central-database/templates/services/' + database_type + '.yml.j2' %}
|
||||||
|
|
||||||
application:
|
application:
|
||||||
logging:
|
logging:
|
||||||
|
@ -135,12 +135,12 @@ The role includes a **`systemd` service** that runs the deployment script whenev
|
|||||||
Example `nginx-docker-cert-deploy.service.j2`:
|
Example `nginx-docker-cert-deploy.service.j2`:
|
||||||
```ini
|
```ini
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Let's Encrypt deploy to {{docker_compose_instance_directory}}
|
Description=Let's Encrypt deploy to {{docker_compose.directories.instance}}
|
||||||
OnFailure=systemd-notifier.cymais@%n.service
|
OnFailure=systemd-notifier.cymais@%n.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
ExecStart=/usr/bin/bash {{path_administrator_scripts}}/nginx-docker-cert-deploy.sh {{primary_domain}} {{docker_compose_instance_directory}}
|
ExecStart=/usr/bin/bash {{path_administrator_scripts}}/nginx-docker-cert-deploy.sh {{primary_domain}} {{docker_compose.directories.instance}}
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -2,29 +2,29 @@
|
|||||||
|
|
||||||
# Check if the necessary parameters are provided
|
# Check if the necessary parameters are provided
|
||||||
if [ "$#" -ne 2 ]; then
|
if [ "$#" -ne 2 ]; then
|
||||||
echo "Usage: $0 <domain> <docker_compose_instance_directory>"
|
echo "Usage: $0 <domain> <docker_compose.directories.instance>"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Assign parameters
|
# Assign parameters
|
||||||
domain="$1"
|
domain="$1"
|
||||||
docker_compose_instance_directory="$2"
|
docker_compose.directories.instance="$2"
|
||||||
|
|
||||||
# Copy certificates
|
# Copy certificates
|
||||||
cp -RvL "/etc/letsencrypt/live/$domain/"* "$docker_compose_instance_directory/certs" || exit 1
|
cp -RvL "/etc/letsencrypt/live/$domain/"* "$docker_compose.directories.instance/certs" || exit 1
|
||||||
|
|
||||||
# This code is optimized for mailu
|
# This code is optimized for mailu
|
||||||
cp -v "/etc/letsencrypt/live/$domain/privkey.pem" "$docker_compose_instance_directory/certs/key.pem" || exit 1
|
cp -v "/etc/letsencrypt/live/$domain/privkey.pem" "$docker_compose.directories.instance/certs/key.pem" || exit 1
|
||||||
cp -v "/etc/letsencrypt/live/$domain/fullchain.pem" "$docker_compose_instance_directory/certs/cert.pem" || exit 1
|
cp -v "/etc/letsencrypt/live/$domain/fullchain.pem" "$docker_compose.directories.instance/certs/cert.pem" || exit 1
|
||||||
|
|
||||||
# Set correct reading rights
|
# Set correct reading rights
|
||||||
chmod a+r -v "$docker_compose_instance_directory/certs/"*
|
chmod a+r -v "$docker_compose.directories.instance/certs/"*
|
||||||
|
|
||||||
# Flag to track if any Nginx reload was successful
|
# Flag to track if any Nginx reload was successful
|
||||||
nginx_reload_successful=false
|
nginx_reload_successful=false
|
||||||
|
|
||||||
# Reload Nginx in all containers within the Docker Compose setup
|
# Reload Nginx in all containers within the Docker Compose setup
|
||||||
cd "$docker_compose_instance_directory" || exit 1
|
cd "$docker_compose.directories.instance" || exit 1
|
||||||
|
|
||||||
# Iterate over all services
|
# Iterate over all services
|
||||||
for service in $(docker compose ps --services); do
|
for service in $(docker compose ps --services); do
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Let's Encrypt deploy to {{docker_compose_instance_directory}}
|
Description=Let's Encrypt deploy to {{docker_compose.directories.instance}}
|
||||||
OnFailure=systemd-notifier.cymais@%n.service
|
OnFailure=systemd-notifier.cymais@%n.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
ExecStart=/usr/bin/bash {{path_administrator_scripts}}/nginx-docker-cert-deploy.sh {{domain}} {{docker_compose_instance_directory}}
|
ExecStart=/usr/bin/bash {{path_administrator_scripts}}/nginx-docker-cert-deploy.sh {{domain}} {{docker_compose.directories.instance}}
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
- name: include docker vars/docker-database.yml.j2
|
|
||||||
include_vars: vars/docker-database.yml.j2
|
|
||||||
|
|
||||||
- name: "include docker-compose role"
|
|
||||||
include_role:
|
|
||||||
name: docker-compose
|
|
||||||
|
|
||||||
- name: create central database
|
|
||||||
include_role:
|
|
||||||
name: docker-{{database_type}}
|
|
||||||
when: enable_central_database | bool
|
|
@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
- name: "backup detached files"
|
- name: "backup detached files"
|
||||||
command: >
|
command: >
|
||||||
mv "{{docker_compose_instance_directory}}{{ item }}" "/tmp/{{application_id}}-{{ item }}.backup"
|
mv "{{docker_compose.directories.instance}}{{ item }}" "/tmp/{{application_id}}-{{ item }}.backup"
|
||||||
args:
|
args:
|
||||||
removes: "{{docker_compose_instance_directory}}{{ item }}"
|
removes: "{{docker_compose.directories.instance}}{{ item }}"
|
||||||
become: true
|
become: true
|
||||||
loop: "{{ merged_detached_files | default(detached_files) }}"
|
loop: "{{ merged_detached_files | default(detached_files) }}"
|
||||||
|
|
||||||
@ -15,20 +15,20 @@
|
|||||||
ansible.builtin.shell: git checkout .
|
ansible.builtin.shell: git checkout .
|
||||||
become: true
|
become: true
|
||||||
args:
|
args:
|
||||||
chdir: "{{docker_compose_instance_directory}}"
|
chdir: "{{docker_compose.directories.instance}}"
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: pull docker repository
|
- name: pull docker repository
|
||||||
git:
|
git:
|
||||||
repo: "{{ repository_address }}"
|
repo: "{{ repository_address }}"
|
||||||
dest: "{{ repository_directory | default(docker_compose_instance_directory) }}"
|
dest: "{{ repository_directory | default(docker_compose.directories.instance) }}"
|
||||||
update: yes
|
update: yes
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: "restore detached files"
|
- name: "restore detached files"
|
||||||
command: >
|
command: >
|
||||||
mv "/tmp/{{application_id}}-{{ item }}.backup" "{{docker_compose_instance_directory}}{{ item }}"
|
mv "/tmp/{{application_id}}-{{ item }}.backup" "{{docker_compose.directories.instance}}{{ item }}"
|
||||||
args:
|
args:
|
||||||
removes: "/tmp/{{application_id}}-{{ item }}.backup"
|
removes: "/tmp/{{application_id}}-{{ item }}.backup"
|
||||||
become: true
|
become: true
|
||||||
@ -37,6 +37,6 @@
|
|||||||
- name: "copy {{ detached_files }} templates to server"
|
- name: "copy {{ detached_files }} templates to server"
|
||||||
template:
|
template:
|
||||||
src: "{{ item }}.j2"
|
src: "{{ item }}.j2"
|
||||||
dest: "{{docker_compose_instance_directory}}{{ item }}"
|
dest: "{{docker_compose.directories.instance}}{{ item }}"
|
||||||
loop: "{{ detached_files }}"
|
loop: "{{ detached_files }}"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
database_instance: "{{ 'central-' + database_type if enable_central_database | bool else application_id }}"
|
|
||||||
database_host: "{{ 'central-' + database_type if enable_central_database | bool else 'database' }}"
|
|
||||||
database_name: "{{ application_id }}"
|
|
||||||
database_username: "{{ application_id }}"
|
|
||||||
database_port: "{{ 3306 if database_type == 'mariadb' else 5432 }}"
|
|
Loading…
x
Reference in New Issue
Block a user