Compare commits

..

10 Commits

61 changed files with 207 additions and 354 deletions

View File

@ -1,6 +1,7 @@
# General
verbose: false # Prints well formated debug information
top_domain: "localhost"
top_domain: "localhost" # Change this in inventory to your domain
ip4_address: "127.0.0.1" # Change thie in inventory to the ip address of your server
backups_folder_path: "/Backups/"
# Server Tact Variables
@ -128,6 +129,7 @@ domain_roulette: "roulette.{{top_domain}}"
domain_attendize: "tickets.{{top_domain}}"
domain_yourls: "s.{{top_domain}}"
domain_openproject: "project.{{top_domain}}"
domains_wordpress: ["wordpress.{{top_domain}}","blog.{{top_domain}}"]
### Common Configurations
postgres_default_version: "16"

View File

@ -2,15 +2,3 @@
systemd:
name: backup-docker-to-local.service
daemon_reload: yes
- name: "reload backup-docker-to-local-everything.service"
systemd:
name: backup-docker-to-local-everything.service
daemon_reload: yes
- name: "restart backup-docker-to-local.timer"
systemd:
name: backup-docker-to-local.timer
state: started
enabled: yes
daemon_reload: yes

View File

@ -34,11 +34,16 @@
notify: reload backup-docker-to-local.service
when: run_once_backup_docker_to_local is not defined
- name: configure backup-docker-to-local.timer.tpl
template: src=backup-docker-to-local.timer.j2 dest=/etc/systemd/system/backup-docker-to-local.timer
register: backup_docker_to_local_timer
changed_when: backup_docker_to_local_timer.changed or activate_all_timers | bool
notify: restart backup-docker-to-local.timer
- name: set service_name to the name of the current role
set_fact:
service_name: "{{ role_name }}"
when: run_once_backup_docker_to_local is not defined
- name: "include role for systemd-timer for {{service_name}}"
include_role:
name: systemd-timer
vars:
on_calendar: "{{on_calendar_backup_docker_to_local}}"
when: run_once_backup_docker_to_local is not defined
- name: seed database values

View File

@ -1,10 +0,0 @@
[Unit]
Description=backups the docker volumes
[Timer]
OnCalendar={{on_calendar_backup_docker_to_local}}
RandomizedDelaySec={{randomized_delay_sec}}
Persistent=false
[Install]
WantedBy=timers.target

View File

@ -14,15 +14,19 @@
template: src=backup-remote-to-local.service.j2 dest=/etc/systemd/system/backup-remote-to-local.service
notify: reload backup-remote-to-local service
- name: create backup-remote-to-local.timer
template: src=backup-remote-to-local.timer.j2 dest=/etc/systemd/system/backup-remote-to-local.timer
register: backup_backup_remote_to_local_timer
changed_when: backup_backup_remote_to_local_timer.changed or activate_all_timers | bool
notify: restart backup-remote-to-local timer
- name: create backups-remote-to-local.sh
template:
src: backups-remote-to-local.sh.j2
dest: "{{docker_backup_remote_to_local_folder}}backups-remote-to-local.sh"
mode: 0755
- name: set service_name to the name of the current role
set_fact:
service_name: "{{ role_name }}"
- name: "include role for systemd-timer for {{service_name}}"
include_role:
name: systemd-timer
vars:
on_calendar: "{{on_calendar_backup_remote_to_local}}"

View File

@ -1,10 +0,0 @@
[Unit]
Description=starts pull remote backup timer
[Timer]
OnCalendar={{on_calendar_backup_remote_to_local}}
RandomizedDelaySec={{randomized_delay_sec}}
Persistent=false
[Install]
WantedBy=timers.target

View File

@ -1,12 +0,0 @@
- name: "restart cleanup-backups.timer"
systemd:
name: cleanup-backups.timer
state: restarted
enabled: yes
daemon_reload: yes
when: run_once_cleanup_backup_timer is not defined
- name: run the cleanup_backup_timer tasks once
set_fact:
run_once_cleanup_backup_timer: true
when: run_once_cleanup_backup_timer is not defined

View File

@ -1,10 +1,13 @@
- name: create cleanup-backups.timer
template:
src: "cleanup-backups.timer.j2"
dest: "/etc/systemd/system/cleanup-backups.timer"
register: cleanup_backups_timer
changed_when: cleanup_backups_timer.changed or activate_all_timers | bool
notify: restart cleanup-backups.timer
- name: set service_name to the name of the current role
set_fact:
service_name: "{{ role_name }}"
when: run_once_cleanup_backups_timer is not defined
- name: "include role for systemd-timer for {{service_name}}"
include_role:
name: systemd-timer
vars:
on_calendar: "{{on_calendar_cleanup_backups}}"
when: run_once_cleanup_backups_timer is not defined
- name: run the cleanup_backups_timer tasks once

View File

@ -1,10 +0,0 @@
[Unit]
Description=starts cleanup-backups.service
[Timer]
OnCalendar={{on_calendar_cleanup_backups}}
RandomizedDelaySec={{randomized_delay_sec}}
Persistent=true
[Install]
WantedBy=timers.target

View File

@ -3,9 +3,3 @@
name: cleanup-disc-space.service
enabled: yes
daemon_reload: yes
- name: "restart cleanup-disc-space.timer"
systemd:
name: cleanup-disc-space.timer
state: restarted
enabled: yes
daemon_reload: yes

View File

@ -15,10 +15,12 @@
dest: /etc/systemd/system/cleanup-disc-space.service
notify: reload cleanup-disc-space.service
- name: create cleanup-disc-space.timer
template:
src: cleanup-disc-space.timer.j2
dest: /etc/systemd/system/cleanup-disc-space.timer
register: cleanup_disc_space_timer
changed_when: cleanup_disc_space_timer.changed or activate_all_timers | bool
notify: restart cleanup-disc-space.timer
- name: set service_name to the name of the current role
set_fact:
service_name: "{{ role_name }}"
- name: "include role for systemd-timer for {{service_name}}"
include_role:
name: systemd-timer
vars:
on_calendar: "{{on_calendar_cleanup_disc_space}}"

View File

@ -1,10 +0,0 @@
[Unit]
Description=starts cleanup-disc-space.service
[Timer]
OnCalendar={{on_calendar_cleanup_disc_space}}
RandomizedDelaySec={{randomized_delay_sec}}
Persistent=true
[Install]
WantedBy=timers.target

View File

@ -3,10 +3,3 @@
name: cleanup-failed-docker-backups.service
enabled: yes
daemon_reload: yes
- name: "restart cleanup-failed-docker-backups.timer"
systemd:
name: cleanup-failed-docker-backups.timer
state: restarted
enabled: yes
daemon_reload: yes

View File

@ -19,13 +19,16 @@
notify: reload cleanup-failed-docker-backups.service daemon
when: run_once_cleanup_failed_docker_backups is not defined
- name: create cleanup-failed-docker-backups.timer
template:
src: cleanup-failed-docker-backups.timer.j2
dest: /etc/systemd/system/cleanup-failed-docker-backups.timer
register: cleanup_failed_docker_backups_timer
changed_when: cleanup_failed_docker_backups_timer.changed or activate_all_timers | bool
notify: restart cleanup-failed-docker-backups.timer
- name: set service_name to the name of the current role
set_fact:
service_name: "{{ role_name }}"
when: run_once_cleanup_failed_docker_backups is not defined
- name: "include role for systemd-timer for {{service_name}}"
include_role:
name: systemd-timer
vars:
on_calendar: "{{on_calendar_cleanup_failed_docker}}"
when: run_once_cleanup_failed_docker_backups is not defined
- name: run the cleanup_failed_docker_backups tasks once

View File

@ -1,10 +0,0 @@
[Unit]
Description=starts cleanup-failed-docker-backups.service
[Timer]
OnCalendar={{on_calendar_cleanup_failed_docker}}
RandomizedDelaySec={{randomized_delay_sec}}
Persistent=true
[Install]
WantedBy=timers.target

View File

@ -5,9 +5,3 @@
state: restarted
enabled: yes
daemon_reload: yes
- name: "restart deploy-letsencrypt-mailu.timer"
systemd:
name: deploy-letsencrypt-mailu.timer
state: restarted
enabled: yes
daemon_reload: yes

View File

@ -54,10 +54,10 @@
dest: "/etc/systemd/system/deploy-letsencrypt-mailu.service"
notify: restart deploy-letsencrypt-mailu.service
- name: configure deploy-letsencrypt-mailu.timer
template:
src: "deploy-letsencrypt-mailu.timer.j2"
dest: "/etc/systemd/system/deploy-letsencrypt-mailu.timer"
register: deploy_letsencrypt_mailu_timer
changed_when: deploy_letsencrypt_mailu_timer.changed or activate_all_timers | bool
notify: restart deploy-letsencrypt-mailu.timer
- name: "include role for systemd-timer for {{service_name}}"
include_role:
name: systemd-timer
vars:
on_calendar: "{{on_calendar_deploy_mailu_certificates}}"
service_name: "deploy-letsencrypt-mailu"
persistent: "true"

View File

@ -1,10 +0,0 @@
[Unit]
Description=Deployment of Let's Encrypt's certificates
[Timer]
OnCalendar={{on_calendar_deploy_mailu_certificates}}
RandomizedDelaySec={{randomized_delay_sec}}
Persistent=true
[Install]
WantedBy=timers.target

View File

@ -54,7 +54,9 @@ services:
- "dkim:/dkim"
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
resolver:
condition: service_started
front:
condition: service_started
logging:
driver: journald
dns:
@ -149,13 +151,12 @@ services:
- "webdav_data:/data"
logging:
driver: journald
networks:
- radicale
depends_on:
- resolver
dns:
- 192.168.203.254
{% include 'templates/docker-container-networks.yml.j2' %}
radicale:
fetchmail:
image: ghcr.io/mailu/fetchmail:{{version_mailu}}

View File

@ -1,2 +1,3 @@
docker_compose_project_name: "mailu"
database_password: "{{mailu_database_password}}"
database_type: "mariadb"

View File

@ -40,7 +40,7 @@
timeout: 300
when: run_once_docker_mariadb is not defined
- name: create database
- name: "Create database: {{ database_databasename }}"
mysql_db:
name: "{{ database_databasename }}"
state: present
@ -49,8 +49,7 @@
login_host: 127.0.0.1
login_port: 3306
- name: create database user
- name: "Create database user: {{ database_username }}"
mysql_user:
name: "{{database_username}}"
password: "{{database_password}}"

View File

@ -18,7 +18,7 @@ services:
MYSQL_USER: "{{database_username}}"
MYSQL_PASSWORD: "{{database_password}}"
MYSQL_HOST: {{database_host}}:3306
{% include 'templates/docker-container-depends-on-just-database.yml.j2' %}
{% include 'templates/docker-container-depends-on-database-redis.yml.j2' %}
{% include 'templates/docker-container-networks.yml.j2' %}
web:

View File

@ -2,9 +2,3 @@
systemd:
name: heal-docker.service
daemon_reload: yes
- name: "restart heal-docker.timer"
systemd:
name: heal-docker.timer
state: restarted
enabled: yes
daemon_reload: yes

View File

@ -18,13 +18,16 @@
notify: reload heal-docker.service
when: run_once_heal_docker is not defined
- name: create heal-docker.timer
template:
src: heal-docker.timer.j2
dest: "/etc/systemd/system/heal-docker.timer"
register: heal_docker_timer
changed_when: heal_docker_timer.changed or activate_all_timers | bool
notify: restart heal-docker.timer
- name: set service_name to the name of the current role
set_fact:
service_name: "{{ role_name }}"
when: run_once_heal_docker is not defined
- name: "include role for systemd-timer for {{service_name}}"
include_role:
name: systemd-timer
vars:
on_calendar: "{{on_calendar_heal_docker}}"
when: run_once_heal_docker is not defined
- name: run the heal_docker tasks once

View File

@ -1,10 +0,0 @@
[Unit]
Description=starts heal-docker.service
[Timer]
OnCalendar={{on_calendar_heal_docker}}
RandomizedDelaySec={{randomized_delay_sec}}
Persistent=false
[Install]
WantedBy=timers.target

View File

@ -3,9 +3,3 @@
name: health-btrfs.service
enabled: yes
daemon_reload: yes
- name: "restart health-btrfs.timer"
systemd:
name: health-btrfs.timer
state: restarted
enabled: yes
daemon_reload: yes

View File

@ -15,10 +15,12 @@
dest: /etc/systemd/system/health-btrfs.service
notify: reload health-btrfs.service
- name: create health-btrfs.timer
template:
src: health-btrfs.timer.j2
dest: "/etc/systemd/system/health-btrfs.timer"
register: health_btrs_timer
changed_when: health_btrs_timer.changed or activate_all_timers | bool
notify: restart health-btrfs.timer
- name: set service_name to the name of the current role
set_fact:
service_name: "{{ role_name }}"
- name: "include role for systemd-timer for {{service_name}}"
include_role:
name: systemd-timer
vars:
on_calendar: "{{on_calendar_health_btrfs}}"

View File

@ -1,10 +0,0 @@
[Unit]
Description=starts health-btrfs.service
[Timer]
OnCalendar={{on_calendar_health_btrfs}}
RandomizedDelaySec={{randomized_delay_sec}}
Persistent=false
[Install]
WantedBy=timers.target

View File

@ -3,9 +3,3 @@
name: health-disc-space.service
enabled: yes
daemon_reload: yes
- name: "restart health-disc-space.timer"
systemd:
name: health-disc-space.timer
state: restarted
enabled: yes
daemon_reload: yes

View File

@ -15,10 +15,12 @@
dest: /etc/systemd/system/health-disc-space.service
notify: reload health-disc-space.service
- name: create health-disc-space.timer
template:
src: health-disc-space.timer.j2
dest: /etc/systemd/system/health-disc-space.timer
register: health_disc_space_timer
changed_when: health_disc_space_timer.changed or activate_all_timers | bool
notify: restart health-disc-space.timer
- name: set service_name to the name of the current role
set_fact:
service_name: "{{ role_name }}"
- name: "include role for systemd-timer for {{service_name}}"
include_role:
name: systemd-timer
vars:
on_calendar: "{{on_calendar_health_disc_space}}"

View File

@ -1,10 +0,0 @@
[Unit]
Description=starts health-disc-space.service
[Timer]
OnCalendar={{on_calendar_health_disc_space}}
RandomizedDelaySec={{randomized_delay_sec}}
Persistent=true
[Install]
WantedBy=timers.target

View File

@ -3,9 +3,3 @@
name: health-docker-container.service
enabled: yes
daemon_reload: yes
- name: "restart health-docker-container.timer"
systemd:
name: health-docker-container.timer
state: restarted
enabled: yes
daemon_reload: yes

View File

@ -16,13 +16,16 @@
notify: reload health-docker-container.service
when: run_once_health_docker_container is not defined
- name: create health-docker-container.timer
template:
src: health-docker-container.timer.j2
dest: "/etc/systemd/system/health-docker-container.timer"
register: health_docker_container_timer
changed_when: health_docker_container_timer.changed or activate_all_timers | bool
notify: restart health-docker-container.timer
- name: set service_name to the name of the current role
set_fact:
service_name: "{{ role_name }}"
when: run_once_health_docker_container is not defined
- name: "include role for systemd-timer for {{service_name}}"
include_role:
name: systemd-timer
vars:
on_calendar: "{{on_calendar_health_docker_container}}"
when: run_once_health_docker_container is not defined
- name: run the health_docker_container tasks once

View File

@ -1,10 +0,0 @@
[Unit]
Description=starts health-docker-container.service
[Timer]
OnCalendar={{on_calendar_health_docker_container}}
RandomizedDelaySec={{randomized_delay_sec}}
Persistent=false
[Install]
WantedBy=timers.target

View File

@ -3,9 +3,3 @@
name: health-docker-volumes.service
enabled: yes
daemon_reload: yes
- name: "restart health-docker-volumes.timer"
systemd:
name: health-docker-volumes.timer
state: restarted
enabled: yes
daemon_reload: yes

View File

@ -16,13 +16,16 @@
notify: reload health-docker-volumes.service
when: run_once_health_docker_volumes is not defined
- name: create health-docker-volumes.timer
template:
src: health-docker-volumes.timer.j2
dest: "/etc/systemd/system/health-docker-volumes.timer"
register: health_docker_volumes_timer
changed_when: health_docker_volumes_timer.changed or activate_all_timers | bool
notify: restart health-docker-volumes.timer
- name: set service_name to the name of the current role
set_fact:
service_name: "{{ role_name }}"
when: run_once_health_docker_volumes is not defined
- name: "include role for systemd-timer for {{service_name}}"
include_role:
name: systemd-timer
vars:
on_calendar: "{{on_calendar_health_docker_volumes}}"
when: run_once_health_docker_volumes is not defined
- name: run the health_docker_volumes tasks once

View File

@ -1,10 +0,0 @@
[Unit]
Description=starts health-docker-volumes.service
[Timer]
OnCalendar={{on_calendar_health_docker_volumes}}
RandomizedDelaySec={{randomized_delay_sec}}
Persistent=false
[Install]
WantedBy=timers.target

View File

@ -3,9 +3,3 @@
name: health-journalctl.service
enabled: yes
daemon_reload: yes
- name: "restart health-journalctl.timer"
systemd:
name: health-journalctl.timer
state: restarted
enabled: yes
daemon_reload: yes

View File

@ -3,22 +3,34 @@
path: "{{health_journalctl_folder}}"
state: directory
mode: 0755
when: run_once_health_journalctl is not defined
- name: create health-journalctl.sh
copy:
src: health-journalctl.sh
dest: "{{health_journalctl_folder}}health-journalctl.sh"
when: run_once_health_journalctl is not defined
- name: create health-journalctl.service
template:
src: health-journalctl.service.j2
dest: /etc/systemd/system/health-journalctl.service
notify: reload health-journalctl.service
when: run_once_health_journalctl is not defined
- name: create health-journalctl.timer
template:
src: health-journalctl.timer.j2
dest: /etc/systemd/system/health-journalctl.timer
register: health_journalctl_timer
changed_when: health_journalctl_timer.changed or activate_all_timers | bool
notify: restart health-journalctl.timer
- name: set service_name to the name of the current role
set_fact:
service_name: "{{ role_name }}"
when: run_once_health_journalctl is not defined
- name: "include role for systemd-timer for {{service_name}}"
include_role:
name: systemd-timer
vars:
on_calendar: "{{on_calendar_health_journalctl}}"
when: run_once_health_journalctl is not defined
- name: run the health_journalctl tasks once
set_fact:
run_once_health_journalctl: true
when: run_once_health_journalctl is not defined

View File

@ -1,10 +0,0 @@
[Unit]
Description=starts health-journalctl.service
[Timer]
OnCalendar={{on_calendar_health_journalctl}}
RandomizedDelaySec={{randomized_delay_sec}}
Persistent=false
[Install]
WantedBy=timers.target

View File

@ -3,10 +3,3 @@
name: health-nginx.service
enabled: yes
daemon_reload: yes
- name: "restart health-nginx.timer"
systemd:
name: health-nginx.timer
state: restarted
enabled: yes
daemon_reload: yes

View File

@ -24,13 +24,16 @@
notify: reload health-nginx.service
when: run_once_health_nginx is not defined
- name: create health-nginx.timer
template:
src: health-nginx.timer.j2
dest: "/etc/systemd/system/health-nginx.timer"
register: health_nginx_timer
changed_when: health_nginx_timer.changed or activate_all_timers | bool
notify: restart health-nginx.timer
- name: set service_name to the name of the current role
set_fact:
service_name: "{{ role_name }}"
when: run_once_health_nginx is not defined
- name: "include role for systemd-timer for {{service_name}}"
include_role:
name: systemd-timer
vars:
on_calendar: "{{on_calendar_health_nginx}}"
when: run_once_health_nginx is not defined
- name: run the health_nginx tasks once

View File

@ -1,10 +0,0 @@
[Unit]
Description=starts health-nginx.service
[Timer]
OnCalendar={{ on_calendar_health_nginx }}
RandomizedDelaySec={{ randomized_delay_sec }}
Persistent=false
[Install]
WantedBy=timers.target

View File

@ -1,12 +1,6 @@
- name: "reload certbot service"
systemd:
name: certbot.service
name: nginx-certbot.service
state: reloaded
enabled: yes
daemon_reload: yes
- name: "restart certbot timer"
systemd:
name: certbot.timer
state: restarted
enabled: yes
daemon_reload: yes

View File

@ -4,20 +4,24 @@
state: present
when: run_once_nginx_certbot is not defined
- name: configure certbot.service.tpl
- name: configure nginx-certbot.service
template:
src: certbot.service.j2
dest: /etc/systemd/system/certbot.service
src: nginx-certbot.service.j2
dest: /etc/systemd/system/nginx-certbot.service
notify: reload certbot service
when: run_once_nginx_certbot is not defined
- name: configure certbot.timer.tpl
template:
src: certbot.timer.j2
dest: /etc/systemd/system/certbot.timer
register: certbot_timer
changed_when: certbot_timer.changed or activate_all_timers | bool
notify: restart certbot timer
- name: set service_name to the name of the current role
set_fact:
service_name: "{{ role_name }}"
when: run_once_nginx_certbot is not defined
- name: "include role for systemd-timer for {{service_name}}"
include_role:
name: systemd-timer
vars:
on_calendar: "{{on_calendar_renew_lets_encrypt_certificates}}"
persistent: "true"
when: run_once_nginx_certbot is not defined
- name: run the nginx_certbot tasks once

View File

@ -1,10 +0,0 @@
[Unit]
Description=Renewal of Let's Encrypt's certificates
[Timer]
OnCalendar=0/12:00:00
RandomizedDelaySec={{randomized_delay_sec}}
Persistent=true
[Install]
WantedBy=timers.target

View File

@ -0,0 +1,6 @@
- name: "restart timer"
systemd:
name: "{{service_name}}.timer"
state: restarted
enabled: yes
daemon_reload: yes

View File

@ -0,0 +1,7 @@
- name: create {{service_name}}.timer
template:
src: dummy.timer.j2
dest: "/etc/systemd/system/{{service_name}}.timer"
register: dummy_timer
changed_when: dummy_timer.changed or activate_all_timers | bool
notify: restart timer

View File

@ -0,0 +1,10 @@
[Unit]
Description=Timer to start {{service_name}}.service
[Timer]
OnCalendar={{on_calendar}}
RandomizedDelaySec={{randomized_delay_sec}}
Persistent={{ persistent | default('false') }}
[Install]
WantedBy=timers.target

View File

@ -39,7 +39,7 @@
roles:
- role: docker-wordpress
vars:
domains: "{{wordpress_domains}}"
domains: "{{domains_wordpress}}"
http_port: 8003
- name: setup mediawiki hosts

View File

@ -5,3 +5,4 @@ networks:
external: true
{% endif %}
{{docker_compose_project_name}}_network:
{{ "\n" }}

View File

@ -3,3 +3,4 @@
volumes:
database:
{% endif %}
{{ "\n" }}

View File

@ -3,3 +3,4 @@ volumes:
{% if not enable_central_database | bool %}
database:
{% endif %}
{{ "\n" }}

View File

@ -4,3 +4,4 @@
database:
condition: service_healthy
{% endif %}
{{ "\n" }}

View File

@ -6,3 +6,4 @@
{% endif %}
redis:
condition: service_healthy
{{ "\n" }}

View File

@ -4,3 +4,4 @@
database:
condition: service_healthy
{% endif %}
{{ "\n" }}

View File

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

View File

@ -22,3 +22,4 @@
networks:
- {{docker_compose_project_name}}_network
{% endif %}
{{ "\n" }}

View File

@ -20,3 +20,4 @@
networks:
- {{docker_compose_project_name}}_network
{% endif %}
{{ "\n" }}

View File

@ -13,3 +13,4 @@
retries: 30
networks:
- {{docker_compose_project_name}}_network
{{ "\n" }}