[go: up one dir, main page]

Skip to content

matejkosiarcik/homelab

Repository files navigation

Personal Homelab

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:

diagram

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 prod
  • HOMELAB_APP_EXTERNAL_DOMAIN - Local domain alias (eg. pihole.home)
  • HOMELAB_HEALTHCHECK_URL - Healthcheck URL to report CRON job status
  • HOMELAB_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 login
    • HOMELAB_APP_PASSWORD - Password for app login