This repository contains an Ansible playbook for configuring a local home network. It includes roles for setting up various services like DNS, DHCP, reverse proxy, and more.
This playbook is designed to automate the setup and configuration of a home network. It uses Ansible to manage different hosts and services, making it easy to maintain and update the network infrastructure.
- Ansible 2.9 or higher
- LastPass CLI (
lpass) for secret management (optional)
-
Clone the repository:
git clone https://github.com/pumbaasdad/system-restore.git
-
Install dependencies: This project uses
uvfor python dependency management.pip install uv uv sync
-
Configure Inventory: Update the
inventory.ymlfile with your hosts and groups. -
Configure Variables: Set the variables in
group_vars/andhost_vars/to match your environment. -
Run the playbook:
ansible-playbook playbook.yml
This playbook includes the following roles:
bind9: Configures BIND9 for DNS services.certbot: Manages SSL certificates using Certbot.cloudflared: Sets up Cloudflare Tunnel.container: Manages LXC containers.core: Core system configuration.docker_host: Configures a host for running Docker containers.handbrake: Sets up HandBrake for video transcoding.java: Installs Java.kea: Configures Kea for DHCP services.mongo: Installs and configures MongoDB.nginx: Configures NGINX as a web server or reverse proxy.package: Manages system packages.plex: Sets up a Plex media server.proxmox: Configures Proxmox VE.proxmox_firewall: Configures the Proxmox firewall.ssh_server: Configures an SSH server.unifi: Manages UniFi network devices.virtual_machine: Manages virtual machines.yubikey: Configures YubiKey for authentication.
This project is licensed under the MIT License - see the LICENSE file for details.