____
| _ \ _ __ _ ___ __
| | | | '__| | | \ \ / /
| |_| | | | |_| |\ V /
|____/|_| \__,_| \_/
Setup Scripts for a HomeLab
-
Create Environment Files: In every service’s folder, copy the example environment file to a new .env file
-
Update the .env files and other configs for each service based on your requirements.
-
Run the main script to bring all your services down and up smoothly:
./down_and_up.sh
If you want to set up your server environment to match this repo exactly
-
The setup script is built for Debian 12 (and compatible Debian-based systems).
-
Run the provided post-install script (it must be a Debian derivative)
./debian_post_install.sh
| Name | Description | Config |
|---|---|---|
| Gluetun | VPN service for containers | /configs |
| qBittorrent | Torrent client | /configs |
| Radarr | Movies automation | /configs |
| Sonarr | TV automation | /configs |
| Readarr | Book management | /configs |
| Prowlarr | Indexer manager | /configs |
| Bazarr | Subtitle automation | /configs |
| Jackett | Indexer proxy | /configs |
| Recyclarr | Config sync for *Arr apps | /configs |
| Unpackerr | Unpack Downloaded Files | /configs |
| Flaresolverr | Captcha solver | /configs |
| SwurApp | Companion utility | /configs |
| Synthwave | Music Downloader | /configs |
| Name | Description | Config |
|---|---|---|
| Backrest | Simple backup management | /configs |
| Name | Description | Config |
|---|---|---|
| Docker Proxy | Secure Docker socket proxy | /configs |
| Homepage | Dashboard for homelab | configs |
| MySpeed | Self-hosted speed test | /configs |
| Name | Description | Config |
|---|---|---|
| Audiobookshelf | Audiobooks streaming server | /configs |
| Jellyfin | Media server | /configs |
| Jellyseerr | Request manager for Jellyfin | /configs |
You can fork this repository and customize the Caddy configuration by editing the Caddy Template File. After updating, you can reuse the deployment scripts located in the action files to deploy your changes.
The public services are reverse proxied using Tailscale, which allows secure access to only the services you want exposed to the public internet. Use the provided Public Compose File to deploy public services. Configure environment variables by copying and editing the env File as needed.
| Name | Description | Config |
|---|---|---|
| Caddy | Reverse proxy & web server | /configs |
| Name | Description | Config |
|---|---|---|
| Qdarnt | Vector DB | /configs |
| BentoPDF | PDF Tools | /configs |
| dawarich | Timeline Tracker | /configs |
| Name | Description | Config |
|---|---|---|
| Uptime-Kuma | Uptime Monitor | /configs |
| Beszel | System Monitoring | /configs |
| Quantum File Browser | File Browser | /configs |
Get container IP address:
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_name>