This repository keeps an active list of all the Docker stacks and key software components for each Pi in my home. This was done to version control each device in my house and maintain the configs across multiple linux devices.
When downloading the repository, it is advised to recursively download all the submodules as well. To do so, please use the following commands:
git submodule update --init --recursiveThe repository uses Docker Compose's include feature to organize services across multiple compose files. Each system (HPNas, PiDesk, PiHome, PiLab, PrusaPrint) has a main docker-compose.yml file that includes all necessary service definitions.
To start all services for a specific system, navigate to its directory and run:
cd <system-directory> # e.g., cd PiHome
docker compose up -dTo stop all services for a specific system:
cd <system-directory>
docker compose downTo view logs for all services:
cd <system-directory>
docker compose logs -fEach system's main docker-compose.yml includes:
- utils/: Shared services (Portainer, uptime-kuma) used across all systems
- System-specific services: Organized in subdirectories (Networking, Storage, IOT, etc.)
Each system has a unified project name defined in its main compose file:
- HPNas:
hpnas - PiDesk:
pidesk - PiHome:
pihome - PiLab:
pilab - PrusaPrint:
prusaprint
Note: Previously, each subdirectory had its own project name (e.g., networking, iot, apps, storage). With the Docker Compose include directive, all services are now consolidated under a single project name per system. This is the correct and expected behavior - all included services become part of the parent project.
All environment variables are now defined inline in the docker-compose files. You can customize them by editing the respective docker-compose.yml files directly.