My personal homelab
This is my personal homelab config. Given the nature of this project, as it applies only to me, third-party pull requests are not expected.
TL;DR:
Below is a general structure for this repository:
/ansible/
- Ansible playbooks for easy maintenance for multiple servers/docs/
- General documentation and installation guides/docker-images/
- Contains Dockerfiles for all custom and external docker images- Each docker image contains reusable general config
- Each docker image can be used in 1 or more docker-apps
/docker-apps/
- Reusable config for individual docker-apps, eg. PiHole- Each docker app contains reusable general config, including auxiliary services (eg. PiHole itself, Apache/Nginx reverse proxy, cron certificate manager, cron web backups, ...)
- Each docker app can be used in 1 or more docker-apps on individual servers
/other-apps/
- Non-Docker apps (eg. for microcontrollers)/servers/
- Setup for individual physical servers
Common env variables:
HOMELAB_APP_TYPE
- Main app name (eg. pihole)HOMELAB_ENV
- Current env type, either dev or prodHOMELAB_APP_EXTERNAL_DOMAIN
- Local domain alias (eg. pihole.home)HOMELAB_HEALTHCHECK_URL
- Healthcheck URL to report CRON job statusHOMELAB_CONTAINER_VARIANT
- In case multiple containers of the same image are used in a single app, this differentiates between them- Credentials:
HOMELAB_APP_USERNAME
- Username (or email) for app loginHOMELAB_APP_PASSWORD
- Password for app login