https://github.com/scottgibb/home-lab-containers
Holds all docker compose files and setup scripts required for each Linux system
https://github.com/scottgibb/home-lab-containers
docker docker-compose shell yml
Last synced: 4 months ago
JSON representation
Holds all docker compose files and setup scripts required for each Linux system
- Host: GitHub
- URL: https://github.com/scottgibb/home-lab-containers
- Owner: ScottGibb
- License: gpl-3.0
- Created: 2023-11-12T18:27:39.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-02-18T00:55:25.000Z (4 months ago)
- Last Synced: 2026-02-18T03:34:18.816Z (4 months ago)
- Topics: docker, docker-compose, shell, yml
- Language: Python
- Homepage:
- Size: 1.48 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Home Lab Containers
[](https://github.com/ScottGibb/Home-Lab-Containers/actions/workflows/mega_linter.yaml)

## Summary
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.
## Downloading the Repository
When downloading the repository, it is advised to recursively download all the submodules as well. To do so, please use the following commands:
```bash
git submodule update --init --recursive
```
## Usage
The 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.
### Starting Services
To start all services for a specific system, navigate to its directory and run:
```bash
cd # e.g., cd PiHome
docker compose up -d
```
### Stopping Services
To stop all services for a specific system:
```bash
cd
docker compose down
```
### Viewing Logs
To view logs for all services:
```bash
cd
docker compose logs -f
```
### System Organization
Each 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.)
### Project Names
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.
### Environment Variables
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.