Ansible project to manage my services.
Go to file
2024-06-15 16:11:58 +02:00
playbooks Add role backup-secrets. 2024-05-14 19:12:39 +02:00
roles Bump lldap to 2024-06-13. 2024-06-15 16:11:58 +02:00
.gitignore The Great Ansible Update. 2024-02-17 19:01:04 +01:00 The Great Ansible Update. 2024-02-17 19:01:04 +01:00
ansible.cfg The Great Ansible Update. 2024-02-17 19:01:04 +01:00
env.yml Update Stalwart mail server to v0.8.1 from v0.7.3 2024-05-24 23:14:59 +02:00 Add script to create PostgreSQL user/database. 2024-03-30 17:23:15 +01:00 Update Stalwart mailserver to 0.7.3 from 0.6.0. 2024-05-02 22:49:00 +02:00
secrets.yml.example Move Synapse OIDC client id/secret from synapse_secrets to authelia_secrets. 2024-05-11 10:58:34 +02:00


This repository contains all the files I use to manage services hosted on



Install Ansible:

sudo apt install -y ansible

SSL certificates

Install Certbot:

sudo apt install -y certbot python3-certbot-dns-ovh python3-certbot-nginx

Request certificates:

# For the NGINX reverse proxy
sudo certbot certonly --nginx -d,*

# For Coturn
bash <(wget -q -O -
sudo zerossl-bot certonly --nginx -m -d

# For the mailserver
sudo certbot certonly --nginx -d


Copy the existing secrets.yml.example to secrets.yml, run ansible-vault encrypt secrets.yml to encrypt the file with a password, and finally edit the newly encrypted file with ansible-vault edit secrets.yml.

If you want to change the vault password run ansible-vault rekey secrets.yml.


Run the backup-services.yml playbook once to setup the passphrase file.

After that, you can create a root cronjob to run this playbook without requiring interactivity:

0 4 * * * export ANSIBLE_ROLES_PATH=/home/viyurz/vps/roles/; /usr/bin/ansible-playbook /home/viyurz/vps/playbooks/backup-services.yml -e include_secrets=false -e selected_projects=''

Here we leave selected_projects empty to backup all projects.