This repository contains various Docker Compose files for configuring and managing a home lab environment. The services included in this repository provide media streaming, cloud storage, download management, and more.
The following services are configured within this repository:
- Aria2 - A lightweight multi-protocol & multi-source download utility.
- FileGator - A web-based file manager for self-hosted solutions.
- Heimdall - A dashboard for organizing web applications and services.
- Invidious - A privacy-respecting alternative frontend for YouTube.
- Jellyfin - A media server for streaming movies, TV shows, and music.
- Minio - A high-performance object storage solution.
- Portainer - A web interface for managing Docker environments.
- Postgres - A powerful, open-source relational database.
- Traefik - A modern reverse proxy and load balancer.
This home lab is designed to run in a Docker Swarm environment and currently operates on the following hardware:
- 2x HP 600 G2 Micro Computer Mini Tower PCs
- CPU: Intel Quad Core i5-6500T
- RAM: 16GB DDR4
- Storage: 256GB NVMe SSD + 2TB HDD
This repository includes a Bash script to streamline the deployment of services.
Run the script without arguments to deploy all services:
./deploy.shTo deploy a specific service, provide its name as an argument:
./deploy.sh <service_name>For example, to deploy Jellyfin:
./deploy.sh jellyfin- If no argument is provided, the script iterates over all
.yamlfiles in the directory and deploys each service. - If a specific service name is provided, it deploys only that service using its respective YAML file.
- The deployment occurs via Docker Stack over SSH to the target machine.
Ensure you have the following installed and configured before deploying:
- Docker
- Docker Compose
- SSH access to the target machine
- Properly configured YAML files for each service
This project is licensed under the MIT License.
Feel free to open issues or submit pull requests to improve this repository.