inventory | ||
playbooks | ||
roles | ||
.gitignore | ||
ansible.cfg | ||
LICENSE | ||
Makefile | ||
README.md |
Homeservers
This repository contains Ansible scripts to setup our home servers.
The common
role executes some common OS tasks.
The docker
role installs Docker.
The other roles are specifically for the various services we run.
Running services
All services below are running under Docker, except NSD because I couldn't figure out how to enable IPv6 for it.
- Authoritative DNS using NSD (ns.pizzapim.nl)
- Reverse proxy using Traefik
- Git server using Forgejo (git.pizzapim.nl)
- Static website using Hugo (pizzapim.nl)
- File sychronisation using Syncthing
- Microblogging server using Mastodon (social.pizzapim.nl)
- Calendar and contact synchronisation using Radicale (dav.pizzapim.nl)
- KMS server using vlmcsd
- Cloud file sotrage using Seafile
- Backups using Borg and Borgmatic
Possible future services
- matrix
- peertube?
- jitsi
TODO
- Forward to https not working correctly yet.
- Fix known hosts between max and lewis
NSD
ZSK Rollover
Could make automatic key rollovers with cron or some other tool.
Idempotency
Currently I always resign zones. But for idempotency I should probably only do it if the zone has changed or the keys have changed.
Firewall
A little more difficult because of docker networking but probably doable.
Backup server
Given that I am now backing up my data to another server using Borg, it makes sense to include that server into IaC as well. Should be pretty straight forward:
- Install Borg and Borgmatic
- Initialize the Borg repository if it doesn't exist yet.
- Add the homeserver's public key to authorized keys.