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