Compare commits

...

8 Commits

59 changed files with 248 additions and 155 deletions

View File

@ -205,6 +205,14 @@
vars: vars:
domain: matomo.{{top_domain}} domain: matomo.{{top_domain}}
http_port: 8018 http_port: 8018
- name: setup listmonk
hosts: listmonk
become: true
roles:
- role: docker-listmonk
vars:
domain: listmonk.{{top_domain}}
http_port: 8019
- name: setup akaunting hosts - name: setup akaunting hosts
hosts: akaunting hosts: akaunting
become: true become: true

View File

@ -81,7 +81,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_akaunting_path`: Set this variable to the path where your Docker Compose files for Akaunting are located. - `docker_compose_instance_directory`: Set this variable to the path where your Docker Compose files for Akaunting are located.
- `akaunting_db_password`, `akaunting_version`, `akaunting_company_name`, `akaunting_company_email`, `akaunting_setup_admin_email`, and `akaunting_setup_admin_password`: These should be set in your `.env` files as per your requirements. - `akaunting_db_password`, `akaunting_version`, `akaunting_company_name`, `akaunting_company_email`, `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

View File

@ -2,7 +2,7 @@
- name: setup akaunting - name: setup akaunting
command: command:
cmd: docker-compose -p akaunting up -d --force-recreate cmd: docker-compose -p akaunting up -d --force-recreate
chdir: "{{docker_compose_akaunting_path}}" chdir: "{{docker_compose_instance_directory}}"
environment: environment:
#AKAUNTING_SETUP: true #AKAUNTING_SETUP: true
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600

View File

@ -8,20 +8,20 @@
- name: register directory - name: register directory
stat: stat:
path: "{{docker_compose_akaunting_path}}" path: "{{docker_compose_instance_directory}}"
register: docker_compose_akaunting_path_register register: docker_compose_instance_directory_register
- name: checkout repository - name: checkout repository
ansible.builtin.shell: git checkout . ansible.builtin.shell: git checkout .
become: true become: true
args: args:
chdir: "{{docker_compose_akaunting_path}}" chdir: "{{docker_compose_instance_directory}}"
when: docker_compose_akaunting_path_register.stat.exists when: docker_compose_instance_directory_register.stat.exists
- name: pull docker repository - name: pull docker repository
git: git:
repo: "https://github.com/akaunting/docker.git" repo: "https://github.com/akaunting/docker.git"
dest: "{{docker_compose_akaunting_path}}" dest: "{{docker_compose_instance_directory}}"
update: yes update: yes
notify: setup akaunting notify: setup akaunting
become: true become: true
@ -37,12 +37,12 @@
ansible.builtin.shell: find . -type f -exec sed -i 's/akaunting:latest/akaunting:{{akaunting_version}}/' {} + && find . -type f -exec sed -i 's/version=latest/version={{akaunting_version}}/' {} + ansible.builtin.shell: find . -type f -exec sed -i 's/akaunting:latest/akaunting:{{akaunting_version}}/' {} + && find . -type f -exec sed -i 's/version=latest/version={{akaunting_version}}/' {} +
become: true become: true
args: args:
chdir: "{{docker_compose_akaunting_path}}" chdir: "{{docker_compose_instance_directory}}"
- name: configure db.env - name: configure db.env
template: src=db.env.j2 dest={{docker_compose_akaunting_path}}/env/db.env template: src=db.env.j2 dest={{docker_compose_instance_directory}}/env/db.env
notify: setup akaunting notify: setup akaunting
- name: configure run.env - name: configure run.env
template: src=run.env.j2 dest={{docker_compose_akaunting_path}}/env/run.env template: src=run.env.j2 dest={{docker_compose_instance_directory}}/env/run.env
notify: setup akaunting notify: setup akaunting

View File

@ -1 +1 @@
docker_compose_akaunting_path: "{{path_docker_compose_files}}akaunting/" docker_compose_instance_directory: "{{path_docker_compose_files}}akaunting/"

View File

@ -22,20 +22,20 @@
- name: register directory - name: register directory
stat: stat:
path: "{{docker_compose_attendize_path}}" path: "{{docker_compose_instance_directory}}"
register: docker_compose_attendize_path_register register: docker_compose_instance_directory_register
- name: checkout repository - name: checkout repository
ansible.builtin.shell: git checkout . ansible.builtin.shell: git checkout .
become: true become: true
args: args:
chdir: "{{docker_compose_attendize_path}}" chdir: "{{docker_compose_instance_directory}}"
when: docker_compose_attendize_path_register.stat.exists when: docker_compose_instance_directory_register.stat.exists
- name: checkout Attendize repository - name: checkout Attendize repository
ansible.builtin.git: ansible.builtin.git:
repo: "https://github.com/Attendize/Attendize.git" repo: "https://github.com/Attendize/Attendize.git"
dest: "{{docker_compose_attendize_path}}" dest: "{{docker_compose_instance_directory}}"
version: master version: master
become: true become: true
@ -47,5 +47,5 @@
- name: create docker-compose.yml file from template - name: create docker-compose.yml file from template
template: template:
src: docker-compose.yml.j2 src: docker-compose.yml.j2
dest: "{{docker_compose_attendize_path}}/docker-compose.yml" dest: "{{docker_compose_instance_directory}}/docker-compose.yml"
mode: 0644 mode: 0644

View File

@ -1,3 +1,3 @@
--- ---
docker_compose_attendize_path: "{{path_docker_compose_files}}attendize/" docker_compose_instance_directory: "{{path_docker_compose_files}}attendize/"
mail_interface_domain: "mail.{{domain}}" mail_interface_domain: "mail.{{domain}}"

View File

@ -6,20 +6,20 @@
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx notify: restart nginx
- name: "create {{docker_compose_path}}" - name: "create {{docker_compose_instance_directory}}"
file: file:
path: "{{docker_compose_path}}" path: "{{docker_compose_instance_directory}}"
state: directory state: directory
mode: 0755 mode: 0755
- name: add docker-compose.yml - name: add docker-compose.yml
template: src=docker-compose.yml.j2 dest={{docker_compose_path}}docker-compose.yml template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
notify: recreate baserow notify: recreate baserow
- name: add env - name: add env
template: template:
src: env.j2 src: env.j2
dest: "{{docker_compose_path}}env" dest: "{{docker_compose_instance_directory}}env"
mode: '770' mode: '770'
force: yes force: yes
notify: recreate baserow notify: recreate baserow

View File

@ -1 +1 @@
docker_compose_path: "{{path_docker_compose_files}}baserow/" docker_compose_instance_directory: "{{path_docker_compose_files}}baserow/"

View File

@ -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_bigbluebutton_path}}" chdir: "{{docker_compose_instance_directory}}"
environment: environment:
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600
@ -10,7 +10,7 @@
- name: docker compose up bigbluebutton - name: docker compose up bigbluebutton
command: command:
cmd: docker-compose -p bigbluebutton up -d --force-recreate cmd: docker-compose -p bigbluebutton up -d --force-recreate
chdir: "{{docker_compose_bigbluebutton_path}}" chdir: "{{docker_compose_instance_directory}}"
environment: environment:
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600

View File

@ -9,7 +9,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_bigbluebutton_path}}" dest: "{{docker_compose_instance_directory}}"
update: yes update: yes
recursive: yes recursive: yes
version: main version: main
@ -23,5 +23,5 @@
when: git_result.failed when: git_result.failed
- name: deploy .env - name: deploy .env
template: src=env.j2 dest={{docker_compose_bigbluebutton_path}}/.env template: src=env.j2 dest={{docker_compose_instance_directory}}/.env
notify: setup bigbluebutton notify: setup bigbluebutton

View File

@ -1 +1 @@
docker_compose_bigbluebutton_path: "{{path_docker_compose_files}}bigbluebutton/" docker_compose_instance_directory: "{{path_docker_compose_files}}bigbluebutton/"

View File

@ -2,7 +2,7 @@
- name: recreate funkwhale - name: recreate funkwhale
command: command:
cmd: docker-compose -p funkwhale up -d --force-recreate cmd: docker-compose -p funkwhale up -d --force-recreate
chdir: "{{docker_compose_path}}" chdir: "{{docker_compose_instance_directory}}"
environment: environment:
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600

View File

@ -6,20 +6,20 @@
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx notify: restart nginx
- name: "create {{docker_compose_path}}" - name: "create {{docker_compose_instance_directory}}"
file: file:
path: "{{docker_compose_path}}" path: "{{docker_compose_instance_directory}}"
state: directory state: directory
mode: 0755 mode: 0755
- name: add docker-compose.yml - name: add docker-compose.yml
template: src=docker-compose.yml.j2 dest={{docker_compose_path}}docker-compose.yml template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
notify: recreate funkwhale notify: recreate funkwhale
- name: add .env - name: add .env
template: template:
src: env.j2 src: env.j2
dest: "{{docker_compose_path}}.env" dest: "{{docker_compose_instance_directory}}.env"
mode: '770' mode: '770'
force: yes force: yes
notify: recreate funkwhale notify: recreate funkwhale

View File

@ -1,2 +1,2 @@
docker_compose_path: "{{path_docker_compose_files}}funkwhale/" docker_compose_instance_directory: "{{path_docker_compose_files}}funkwhale/"
client_max_body_size: "512M" client_max_body_size: "512M"

View File

@ -2,7 +2,7 @@
## update ## update
```bash ```bash
cd {{path_docker_compose_folder}} cd {{docker_compose_instance_directory}}
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 {{path_docker_compose_folder}} && docker-compose -p gitea up -d --force-recreate cd {{docker_compose_instance_directory}} && docker-compose -p gitea up -d --force-recreate
``` ```
## database access ## database access

View File

@ -2,7 +2,7 @@
- name: recreate gitea - name: recreate gitea
command: command:
cmd: docker-compose -p gitea up -d --force-recreate cmd: docker-compose -p gitea up -d --force-recreate
chdir: "{{path_docker_compose_folder}}" chdir: "{{docker_compose_instance_directory}}"
environment: environment:
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600

View File

@ -6,12 +6,12 @@
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx notify: restart nginx
- name: "create {{path_docker_compose_folder}}" - name: "create {{docker_compose_instance_directory}}"
file: file:
path: "{{path_docker_compose_folder}}" path: "{{docker_compose_instance_directory}}"
state: directory state: directory
mode: 0755 mode: 0755
- name: add docker-compose.yml - name: add docker-compose.yml
template: src=docker-compose.yml.j2 dest={{path_docker_compose_folder}}docker-compose.yml template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
notify: recreate gitea notify: recreate gitea

View File

@ -1 +1 @@
path_docker_compose_folder: "{{path_docker_compose_files}}gitea/" docker_compose_instance_directory: "{{path_docker_compose_files}}gitea/"

View File

@ -2,7 +2,7 @@
- name: recreate joomla - name: recreate joomla
command: command:
cmd: docker-compose -p joomla up -d --force-recreate cmd: docker-compose -p joomla up -d --force-recreate
chdir: "{{path_docker_compose_folder}}" chdir: "{{docker_compose_instance_directory}}"
environment: environment:
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600

View File

@ -6,12 +6,12 @@
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx notify: restart nginx
- name: "create {{path_docker_compose_folder}}" - name: "create {{docker_compose_instance_directory}}"
file: file:
path: "{{path_docker_compose_folder}}" path: "{{docker_compose_instance_directory}}"
state: directory state: directory
mode: 0755 mode: 0755
- name: add docker-compose.yml - name: add docker-compose.yml
template: src=docker-compose.yml.j2 dest={{path_docker_compose_folder}}docker-compose.yml template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
notify: recreate joomla notify: recreate joomla

View File

@ -1 +1 @@
path_docker_compose_folder: "{{path_docker_compose_files}}joomla/" docker_compose_instance_directory: "{{path_docker_compose_files}}joomla/"

View File

@ -0,0 +1,49 @@
# Docker Listmonk Role
This role deploys the Listmonk application using Docker. Listmonk is a high performance, self-hosted newsletter and mailing list manager with a modern dashboard.
## Prerequisites
- Docker and Docker Compose should be installed on your system.
- Make sure that the required ports are available and not used by other services.
## Installation and Configuration
1. **Clone the Repository**:
- Ensure you have the latest version of this playbook from the repository.
2. **Configure Variables**:
- Set your desired configurations in `vars/main.yml`. This includes the path to your Docker Compose files and any other relevant variables.
3. **Run the Playbook**:
- Execute the ansible playbook to set up Listmonk.
4. **Initial Database Setup**:
- After the first setup, run the following command to initialize the Listmonk database:
```bash
docker compose run --rm application ./listmonk --install
```
5. **Configure Reverse Proxy** (Optional):
- If you are using a reverse proxy, configure it as per your domain settings in the `nginx-docker-reverse-proxy` role.
6. **Start Services**:
- Use the following command to start Listmonk services:
```bash
docker-compose -p listmonk up -d --force-recreate
```
## Configuration Files
- **docker-compose.yml**: Defines the Docker setup for Listmonk and its database.
- **config.toml**: Contains the application settings including the database connection, admin credentials, and server settings.
## Further Information
- For detailed installation instructions and configuration options, visit the [Listmonk Installation Documentation](https://listmonk.app/docs/installation/).
- You can also find more information on the [Listmonk GitHub Repository](https://github.com/knadh/listmonk/).
## Dependencies
- This role depends on `nginx-docker-reverse-proxy` for setting up a reverse proxy for Listmonk.
## Developed with AI
This Docker Listmonk role was developed with assistance from ChatGPT, a conversational AI by OpenAI. The conversation and guidance provided by ChatGPT can be found [here](https://chat.openai.com/share/95e722f5-3bd9-4203-8755-def2eca4796e).

View File

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

View File

@ -4,18 +4,24 @@
- name: configure {{domain}}.conf - name: configure {{domain}}.conf
template: template:
src: "roles/docker-reverse-proxy/templates/domain.conf.j2" src: "roles/nginx-docker-reverse-proxy/templates/domain.conf.j2"
dest: "/etc/nginx/conf.d/{{domain}}.conf" dest: "/etc/nginx/conf.d/{{domain}}.conf"
notify: restart nginx notify: restart nginx
- name: "create {{path_docker_compose_files}}listmonk/" - name: "create {{docker_compose_instance_directory}}"
file: file:
path: "{{path_docker_compose_files}}listmonk/" path: "{{docker_compose_instance_directory}}"
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: "{{path_docker_compose_files}}listmonk/docker-compose.yml" dest: "{{docker_compose_instance_directory}}docker-compose.yml"
notify: recreate listmonk
- name: add config.toml
template:
src: "config.toml.j2"
dest: "{{docker_compose_instance_directory}}config.toml"
notify: recreate listmonk notify: recreate listmonk

View File

@ -1,23 +1,23 @@
[app] [app]
# Interface and port where the app will run its webserver. The default value # Interface and port where the application will run its webserver. The default value
# of localhost will only listen to connections from the current machine. To # of localhost will only listen to connections from the current machine. To
# listen on all interfaces use '0.0.0.0'. To listen on the default web address # listen on all interfaces use '0.0.0.0'. To listen on the default web address
# port, use port 80 (this will require running with elevated permissions). # port, use port 80 (this will require running with elevated permissions).
address = "localhost:9000" address = "0.0.0.0:9000"
# BasicAuth authentication for the admin dashboard. This will eventually # BasicAuth authentication for the admin dashboard. This will eventually
# be replaced with a better multi-user, role-based authentication system. # be replaced with a better multi-user, role-based authentication system.
# IMPORTANT: Leave both values empty to disable authentication on admin # IMPORTANT: Leave both values empty to disable authentication on admin
# only where an external authentication is already setup. # only where an external authentication is already setup.
admin_username = "listmonk" admin_username = "{{listmonk_admin_username}}"
admin_password = "listmonk" admin_password = "{{listmonk_admin_password}}"
# Database. # Database.
[db] [db]
host = "localhost" host = "database"
port = 5432 port = 5432
user = "listmonk" user = "listmonk"
password = "listmonk" password = "{{listmonk_database_password}}"
# Ensure that this database has been created in Postgres. # Ensure that this database has been created in Postgres.
database = "listmonk" database = "listmonk"

View File

@ -4,24 +4,24 @@
version: "3.7" version: "3.7"
x-app-defaults: &app-defaults x-application-defaults: &application-defaults
restart: unless-stopped restart: unless-stopped
image: listmonk/listmonk:latest image: listmonk/listmonk:latest
ports: ports:
- "9000:9000" - "127.0.0.1:{{http_port}}:9000"
networks: networks:
- listmonk - listmonk
environment: environment:
- TZ=Etc/UTC - TZ=Etc/UTC
x-db-defaults: &db-defaults x-database-defaults: &database-defaults
image: postgres:13 image: postgres:13-alpine
ports: ports:
- "9432:5432" - "9432:5432"
networks: networks:
- listmonk - listmonk
environment: environment:
- POSTGRES_PASSWORD=listmonk - POSTGRES_PASSWORD={{listmonk_database_password}}
- POSTGRES_USER=listmonk - POSTGRES_USER=listmonk
- POSTGRES_DB=listmonk - POSTGRES_DB=listmonk
restart: unless-stopped restart: unless-stopped
@ -32,21 +32,22 @@ x-db-defaults: &db-defaults
retries: 6 retries: 6
services: services:
db: database:
<<: *db-defaults <<: *database-defaults
container_name: listmonk_db container_name: database
volumes: volumes:
- type: volume - type: volume
source: listmonk-data source: listmonk-data
target: /var/lib/postgresql/data target: /var/lib/postgresql/data
app: application:
<<: *app-defaults <<: *application-defaults
container_name: listmonk_app container_name: listmonk_application
depends_on: depends_on:
- db - database
volumes: volumes:
- ./config.toml:/listmonk/config.toml - ./config.toml:/listmonk/config.toml
networks: networks:
listmonk: listmonk:

View File

@ -0,0 +1 @@
docker_compose_instance_directory: "{{path_docker_compose_files}}listmonk/"

View File

@ -2,7 +2,7 @@
- name: recreate mailu - name: recreate mailu
command: command:
cmd: docker-compose -p mailu up -d --force-recreate cmd: docker-compose -p mailu up -d --force-recreate
chdir: "{{path_docker_compose_files}}mailu/" chdir: "{{docker_compose_instance_directory}}"
environment: environment:
COMPOSE_HTTP_TIMEOUT: 900 COMPOSE_HTTP_TIMEOUT: 900
DOCKER_CLIENT_TIMEOUT: 900 DOCKER_CLIENT_TIMEOUT: 900

View File

@ -36,13 +36,13 @@
- name: add docker-compose.yml - name: add docker-compose.yml
template: template:
src: "docker-compose.yml.j2" src: "docker-compose.yml.j2"
dest: "{{path_docker_compose_files}}mailu/docker-compose.yml" dest: "{{docker_compose_instance_directory}}docker-compose.yml"
notify: recreate mailu notify: recreate mailu
- name: add mailu.env - name: add mailu.env
template: template:
src: "mailu.env.j2" src: "mailu.env.j2"
dest: "{{path_docker_compose_files}}mailu/mailu.env" dest: "{{docker_compose_instance_directory}}mailu.env"
notify: recreate mailu notify: recreate mailu
- name: add deploy-letsencrypt-mailu.sh - name: add deploy-letsencrypt-mailu.sh

View File

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/sh
cp /etc/letsencrypt/live/{{domain}}/privkey.pem /etc/mailu/certs/key.pem || exit 1 cp /etc/letsencrypt/live/{{domain}}/privkey.pem /etc/mailu/certs/key.pem || exit 1
cp /etc/letsencrypt/live/{{domain}}/fullchain.pem /etc/mailu/certs/cert.pem || exit 1 cp /etc/letsencrypt/live/{{domain}}/fullchain.pem /etc/mailu/certs/cert.pem || exit 1
docker exec {{mailu_front_container_name}} nginx -s reload cd {{docker_compose_instance_directory}} && docker compose exec front nginx -s reload || exit 1

View File

@ -1 +1 @@
mailu_front_container_name: "mailu-front-1" docker_compose_instance_directory: "{{path_docker_compose_files}}mailu/"

View File

@ -2,7 +2,7 @@
- name: recreate mastodon - name: recreate mastodon
command: command:
cmd: docker-compose -p mastodon up -d --force-recreate cmd: docker-compose -p mastodon up -d --force-recreate
chdir: "{{docker_compose_mastodon_path}}" chdir: "{{docker_compose_instance_directory}}"
environment: environment:
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600

View File

@ -6,19 +6,19 @@
template: src=templates/mastodon.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf template: src=templates/mastodon.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx notify: restart nginx
- name: "create {{docker_compose_mastodon_path}}" - name: "create {{docker_compose_instance_directory}}"
file: file:
path: "{{docker_compose_mastodon_path}}" path: "{{docker_compose_instance_directory}}"
state: directory state: directory
mode: 0755 mode: 0755
- name: copy docker-compose.yml - name: copy docker-compose.yml
template: src=docker-compose.yml.j2 dest={{docker_compose_mastodon_path}}docker-compose.yml template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
notify: recreate mastodon notify: recreate mastodon
- name: copy configuration - name: copy configuration
template: template:
src: .env.production.j2 src: .env.production.j2
dest: "{{docker_compose_mastodon_path}}.env.production" dest: "{{docker_compose_instance_directory}}.env.production"
force: no force: no
notify: recreate mastodon notify: recreate mastodon

View File

@ -1 +1 @@
docker_compose_mastodon_path: "{{path_docker_compose_files}}mastodon/" docker_compose_instance_directory: "{{path_docker_compose_files}}mastodon/"

View File

@ -2,7 +2,7 @@
- name: recreate matomo - name: recreate matomo
command: command:
cmd: docker-compose -p matomo up -d --force-recreate cmd: docker-compose -p matomo up -d --force-recreate
chdir: "{{path_docker_compose_files}}matomo/" chdir: "{{docker_compose_instance_directory}}"
environment: environment:
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600

View File

@ -8,14 +8,14 @@
dest: "/etc/nginx/conf.d/{{domain}}.conf" dest: "/etc/nginx/conf.d/{{domain}}.conf"
notify: restart nginx notify: restart nginx
- name: "create {{path_docker_compose_files}}matomo/" - name: "create {{docker_compose_instance_directory}}"
file: file:
path: "{{path_docker_compose_files}}matomo/" path: "{{docker_compose_instance_directory}}"
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: "{{path_docker_compose_files}}matomo/docker-compose.yml" dest: "{{docker_compose_instance_directory}}docker-compose.yml"
notify: recreate matomo notify: recreate matomo

View File

@ -0,0 +1,2 @@
---
docker_compose_instance_directory: "{{path_docker_compose_files}}matomo/"

View File

@ -0,0 +1,8 @@
---
- name: recreate mybb
command:
cmd: docker-compose -p mybb up -d --force-recreate
chdir: "{{path_docker_compose_files}}mybb/"
environment:
COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600

View File

@ -10,41 +10,13 @@
file: file:
path: "{{conf_d_docker_path}}" path: "{{conf_d_docker_path}}"
state: directory state: directory
mode: 0755
- name: "create {{default_conf_docker_path}}" - name: "create {{default_conf_docker_path}}"
template: src="default.conf" dest="{{default_conf_docker_path}}" template: src="default.conf" dest="{{default_conf_docker_path}}"
- name: "setup mybb" - name: add docker-compose.yml
docker_compose: template:
project_name: mybb src: "docker-compose.yml.j2"
definition: dest: "{{docker_compose_instance_directory}}docker-compose.yml"
application: notify: recreate matomo
log_driver: journald
image: mybb/mybb:latest
restart: always
links:
- database
volumes:
- mybb-data:/var/www/html
server:
log_driver: journald
links:
- application
image: nginx:mainline
restart: always
ports:
- "127.0.0.1:{{http_port}}:80"
volumes:
- "{{conf_d_docker_path}}:{{conf_d_path}}"
- "mybb-data:/var/www/html:ro"
database:
log_driver: journald
image: mariadb
environment:
MYSQL_DATABASE: "mybb"
MYSQL_USER: "mybb"
MYSQL_PASSWORD: "{{mybb_database_password}}"
MARIADB_AUTO_UPGRADE: "1"
volumes:
- mybb-database:/var/lib/mysql
restart: always

View File

@ -0,0 +1,42 @@
services:
application:
log_driver: journald
image: mybb/mybb:latest
restart: always
links:
- database
volumes:
- mybb-data:/var/www/html
server:
log_driver: journald
links:
- application
image: nginx:mainline
restart: always
ports:
- "127.0.0.1:{{http_port}}:80"
volumes:
- "{{conf_d_docker_path}}:{{conf_d_path}}"
- "mybb-data:/var/www/html:ro"
database:
log_driver: journald
image: mariadb
environment:
MYSQL_DATABASE: "mybb"
MYSQL_USER: "mybb"
MYSQL_PASSWORD: "{{mybb_database_password}}"
MARIADB_AUTO_UPGRADE: "1"
volumes:
- database:/var/lib/mysql
healthcheck:
test: "/usr/bin/mariadb --user=mybb --password={{mybb_database_password}} --execute \"SHOW DATABASES;\""
interval: 3s
timeout: 1s
retries: 5
restart: always
volumes:
database:
data:
networks:
default:
driver: bridge

View File

@ -1,5 +1,6 @@
--- ---
docker_compose_instance_directory: "{{path_docker_compose_files}}mybb/"
conf_d_path: "/etc/nginx/conf.d/" conf_d_path: "/etc/nginx/conf.d/"
#default_conf_path: "/etc/nginx/nginx.conf"
conf_d_docker_path: "/etc/docker/applications/mybb{{conf_d_path}}" conf_d_docker_path: "/etc/docker/applications/mybb{{conf_d_path}}"
default_conf_docker_path: "{{conf_d_docker_path}}default.conf" default_conf_docker_path: "{{conf_d_docker_path}}default.conf"

View File

@ -2,7 +2,7 @@
- name: recreate nextcloud - name: recreate nextcloud
command: command:
cmd: docker-compose -p nextcloud up -d --force-recreate cmd: docker-compose -p nextcloud up -d --force-recreate
chdir: "{{path_docker_compose_files}}nextcloud/" chdir: "{{docker_compose_instance_directory}}"
environment: environment:
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600

View File

@ -20,14 +20,14 @@
dest: "{{path_docker_volumes}}nextcloud/nginx.conf" dest: "{{path_docker_volumes}}nextcloud/nginx.conf"
notify: recreate nextcloud notify: recreate nextcloud
- name: "create {{path_docker_compose_files}}nextcloud/" - name: "create {{docker_compose_instance_directory}}"
file: file:
path: "{{path_docker_compose_files}}nextcloud/" path: "{{docker_compose_instance_directory}}"
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: "{{path_docker_compose_files}}nextcloud/docker-compose.yml" dest: "{{docker_compose_instance_directory}}docker-compose.yml"
notify: recreate nextcloud notify: recreate nextcloud

View File

@ -0,0 +1,2 @@
---
docker_compose_instance_directory: "{{path_docker_compose_files}}nextcloud/"

View File

@ -2,7 +2,7 @@
- name: recreate peertube - name: recreate peertube
command: command:
cmd: docker-compose -p peertube up -d --force-recreate cmd: docker-compose -p peertube up -d --force-recreate
chdir: "{{docker_compose_peertube_path}}" chdir: "{{docker_compose_instance_directory}}"
environment: environment:
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600

View File

@ -6,18 +6,18 @@
template: src=templates/peertube.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf template: src=templates/peertube.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx notify: restart nginx
- name: "create {{docker_compose_peertube_path}}" - name: "create {{docker_compose_instance_directory}}"
file: file:
path: "{{docker_compose_peertube_path}}" path: "{{docker_compose_instance_directory}}"
state: directory state: directory
mode: 0755 mode: 0755
- name: copy docker-compose.yml - name: copy docker-compose.yml
template: src=docker-compose.yml.j2 dest={{docker_compose_peertube_path}}docker-compose.yml template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
notify: recreate peertube notify: recreate peertube
- name: copy configuration - name: copy configuration
template: template:
src: env.j2 src: env.j2
dest: "{{docker_compose_peertube_path}}.env" dest: "{{docker_compose_instance_directory}}.env"
notify: recreate peertube notify: recreate peertube

View File

@ -1 +1 @@
docker_compose_peertube_path: "{{path_docker_compose_files}}peertube/" docker_compose_instance_directory: "{{path_docker_compose_files}}peertube/"

View File

@ -6,20 +6,20 @@
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx notify: restart nginx
- name: "create {{docker_compose_path}}" - name: "create {{docker_compose_instance_directory}}"
file: file:
path: "{{docker_compose_path}}" path: "{{docker_compose_instance_directory}}"
state: directory state: directory
mode: 0755 mode: 0755
- name: add docker-compose.yml - name: add docker-compose.yml
template: src=docker-compose.yml.j2 dest={{docker_compose_path}}docker-compose.yml template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
notify: recreate pixelfed notify: recreate pixelfed
- name: add env - name: add env
template: template:
src: env.j2 src: env.j2
dest: "{{docker_compose_path}}env" dest: "{{docker_compose_instance_directory}}env"
mode: '770' mode: '770'
force: yes force: yes
notify: recreate pixelfed notify: recreate pixelfed

View File

@ -1,2 +1,2 @@
docker_compose_path: "{{path_docker_compose_files}}pixelfed/" docker_compose_instance_directory: "{{path_docker_compose_files}}pixelfed/"
client_max_body_size: "512M" client_max_body_size: "512M"

View File

@ -2,7 +2,7 @@
- name: recreate and build roulette-wheel - name: recreate and build roulette-wheel
command: command:
cmd: docker-compose -p roulette-wheel up -d --force-recreate --build cmd: docker-compose -p roulette-wheel up -d --force-recreate --build
chdir: "{{docker_compose_path}}" chdir: "{{docker_compose_instance_directory}}"
environment: environment:
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600

View File

@ -6,9 +6,9 @@
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx notify: restart nginx
- name: "create {{docker_compose_path}}" - name: "create {{docker_compose_instance_directory}}"
file: file:
path: "{{docker_compose_path}}" path: "{{docker_compose_instance_directory}}"
state: directory state: directory
mode: 0755 mode: 0755
@ -28,9 +28,9 @@
when: git_result.failed when: git_result.failed
- name: add docker-compose.yml - name: add docker-compose.yml
template: src=docker-compose.yml.j2 dest={{docker_compose_path}}docker-compose.yml template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
notify: recreate and build roulette-wheel notify: recreate and build roulette-wheel
- name: add Dockerfile - name: add Dockerfile
template: src=Dockerfile.j2 dest={{docker_compose_path}}Dockerfile template: src=Dockerfile.j2 dest={{docker_compose_instance_directory}}Dockerfile
notify: recreate and build roulette-wheel notify: recreate and build roulette-wheel

View File

@ -1,2 +1,2 @@
docker_compose_path: "{{path_docker_compose_files}}roulette-wheel/" docker_compose_instance_directory: "{{path_docker_compose_files}}roulette-wheel/"
app_path: "{{path_docker_compose_files}}roulette-wheel/app/" app_path: "{{path_docker_compose_files}}roulette-wheel/app/"

View File

@ -2,14 +2,14 @@
- 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_wordpress_path}}" chdir: "{{docker_compose_instance_directory}}"
environment: environment:
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600
- name: recreate wordpress - name: recreate wordpress
command: command:
cmd: docker-compose -p wordpress up -d --force-recreate cmd: docker-compose -p wordpress up -d --force-recreate
chdir: "{{docker_compose_wordpress_path}}" chdir: "{{docker_compose_instance_directory}}"
environment: environment:
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600

View File

@ -13,28 +13,28 @@
template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{ domain }}.conf template: src=roles/nginx-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{ domain }}.conf
notify: restart nginx notify: restart nginx
- name: "create {{docker_compose_wordpress_path}}" - name: "create {{docker_compose_instance_directory}}"
file: file:
path: "{{docker_compose_wordpress_path}}" path: "{{docker_compose_instance_directory}}"
state: directory state: directory
mode: 0755 mode: 0755
- name: "Transfering upload.ini to {{docker_compose_wordpress_path}}" - name: "Transfering upload.ini to {{docker_compose_instance_directory}}"
template: template:
src: upload.ini.j2 src: upload.ini.j2
dest: "{{docker_compose_wordpress_path}}upload.ini" dest: "{{docker_compose_instance_directory}}upload.ini"
notify: notify:
- recreate wordpress - recreate wordpress
- rebuild wordpress container - rebuild wordpress container
- name: "Transfering Dockerfile to {{docker_compose_wordpress_path}}" - name: "Transfering Dockerfile to {{docker_compose_instance_directory}}"
copy: copy:
src: Dockerfile src: Dockerfile
dest: "{{docker_compose_wordpress_path}}Dockerfile" dest: "{{docker_compose_instance_directory}}Dockerfile"
notify: notify:
- recreate wordpress - recreate wordpress
- rebuild wordpress container - rebuild wordpress container
- name: "add docker-compose.yml to {{docker_compose_wordpress_path}}" - name: "add docker-compose.yml to {{docker_compose_instance_directory}}"
template: src=docker-compose.yml.j2 dest={{docker_compose_wordpress_path}}docker-compose.yml template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
notify: recreate wordpress notify: recreate wordpress

View File

@ -1,2 +1,2 @@
docker_compose_wordpress_path: "{{path_docker_compose_files}}wordpress/" docker_compose_instance_directory: "{{path_docker_compose_files}}wordpress/"
wordpress_max_upload_size: "64M" wordpress_max_upload_size: "64M"

View File

@ -2,7 +2,7 @@
- name: recreate yourls - name: recreate yourls
command: command:
cmd: docker-compose -p yourls up -d --force-recreate cmd: docker-compose -p yourls up -d --force-recreate
chdir: "{{path_docker_compose_files}}yourls/" chdir: "{{docker_compose_instance_directory}}"
environment: environment:
COMPOSE_HTTP_TIMEOUT: 600 COMPOSE_HTTP_TIMEOUT: 600
DOCKER_CLIENT_TIMEOUT: 600 DOCKER_CLIENT_TIMEOUT: 600

View File

@ -8,14 +8,14 @@
dest: "/etc/nginx/conf.d/{{domain}}.conf" dest: "/etc/nginx/conf.d/{{domain}}.conf"
notify: restart nginx notify: restart nginx
- name: "create {{path_docker_compose_files}}yourls/" - name: "create {{docker_compose_instance_directory}}"
file: file:
path: "{{path_docker_compose_files}}yourls/" path: "{{docker_compose_instance_directory}}"
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: "{{path_docker_compose_files}}yourls/docker-compose.yml" dest: "{{docker_compose_instance_directory}}docker-compose.yml"
notify: recreate yourls notify: recreate yourls

View File

@ -0,0 +1 @@
docker_compose_instance_directory: "{{path_docker_compose_files}}yourls/"