Skip to content



Ansible is an open-source software provisioning, configuration management, and application-deployment tool enabling infrastructure as code. It runs on many Unix-like systems, and can configure both Unix-like systems as well as Microsoft Windows.


Ansible Playbooks are the backbone of the services on my system. I've migrated from docker-compose to a system that fully automates deployments for all the services I need. Each service is relatively broken down into reusable chunks. Some exceptions should be noted like the peer_to_peer stack that is a collection of services bound together with a VPN. Each server has it's own playbook, and then those are all included in a site.yml Additionally, there is an update.yml playbook for running updates on all servers.

  • local.yml - Includes the main, secondary, matrix, and ansible playbooks
  • main.yml - Used to set-up my main docker instances that houses most of my services
  • secondary.yml - Used to set-up my secondary server that houses Pi-Hole and VPN
  • ansible.yml - Used to setup the server that runs the ansible playbooks, when not ran from localhost
  • matrix.yml - Used to update and secure the Matrix Chat server
  • update.yml - Used to run updates across all machines
  • remote.yml - Used to manage Caddy, Security, and Common configurations for VPS