Docker - Pelochus/pelochus-homelab GitHub Wiki
Before running
Check in each compose file if paths are correct, especially for those services who need an external path, like qBittorrent for downloading torrents
Structure
Right now, the structure is pretty simple, just 4 folders for each stack. All data is stored there, unless stored on an external, common path:
├── media
│ ├── jellyfin
│ │ ├── config
│ │ ├── data
│ ├── qbittorrent
│ │ ├── config
│ ├── docker-compose.yml
├── monitoring
│ ├── homarr
│ │ ├── config
│ │ ├── icons
│ ├── docker-compose.yml
This example is a reduced version of the real one
Deploying
Ansible should do this entirely automatically including the Docker network used, however, some useful commands:
docker-compose up -d # Run each stack if inside folder (pulls images if necessary)
docker-compose down # Stop an entire stack AND erases containers (preferable to stop)
docker-compose pull # Update images
docker-compose ps # See compose running (instead of each container)
Docker network
Ansible playbook software-deploy.yml does setup the network automatically. If not, here's the command used:
docker network create --driver=bridge --subnet=10.0.1.0/24 --gateway=10.0.1.1 homelab
The Docker containers are assigned each an IP from 10.0.1.10 to 10.0.1.x, used by Nginx Proxy Manager for accesing the containers locally, forbidding access to other LAN devices. This way, traffic is secured even inside the LAN via SSL
Autoupdating
The playbook os-maintenance.yml does include auto update for PiHole, apt and the Docker containers. It is run automatically on Sundays at 5AM via Cron
More info
Search for each image's docs, these images are not modified, only configured from the official sources
TODO:
- See TODO inside Ansible files. Some minor things left to do