Docker-Home-Server Development
Docker Home Server Testing & Setup
Welcome to my home server development repository! Over the past 4-5 years, I’ve tested a wide variety of Docker containers for self-hosting and automation. This repo collects the containers I’ve found most useful, though some may be missing or not actively maintained. My goal is to organize each container into its own folder with a docker-compose.yml for easy setup and backup. Some configurations contain private information and will be refined before public release.
Below is a list of containers I’ve tested and recommend for various home server tasks.
- adguard
Network-wide ad blocker and privacy protection. - amule
Peer-to-peer file sharing client for the eDonkey network. - apprise
Unified notification service for multiple platforms. - audiobookshelf
Self-hosted audiobook server and web player. - authelia
Authentication and authorization server for your applications. - bazarr
Subtitle management for Radarr and Sonarr. - beets
Music library organizer and tagger. - calibre
E-book management software. - calibre-web
Web-based interface for Calibre e-book library. - chd-converter
Tool for converting playstation disk images to CHD format. - code-server
VS Code running on a remote server accessible through the browser. - ddclient
Dynamic DNS update client. - deemix
Music downloader for Deezer. - deluge
Lightweight, open-source BitTorrent client. - dillinger
Online Markdown editor. - doublecommander
Cross-platform file manager. - elasticsearch
Distributed search and analytics engine. - filebrowser
Web-based file manager for your server. - flaresolverr
Proxy server to bypass Cloudflare protection. - gamevault
Game library manager. - gameyfin
Game streaming server. - gitea
Self-hosted Git service. - glances
System monitoring tool. - gluetun
VPN client for Docker containers. - gmod
Garry's Mod game server. - grafana
Analytics and monitoring dashboard. - grifter
Automation and scripting tool. - headphones
Music download manager for Usenet and torrents. - heimdall
Application dashboard for your server. - homarr
Modern dashboard for managing your home server. - homeassistant
Open-source home automation platform. - homebridge
HomeKit support for non-Apple devices. - immich
Self-hosted photo and video backup solution. - jackett
API support for torrent indexers. - jdownloader
Download manager for various file hosts. - jellyfin
Open-source media server. - joplin
Note-taking and to-do application. - jupyter
Interactive notebooks for code and data. - kometa
Media library metadata manager. - lazylibrarian
Book download and management tool. - libation
Audiobook downloader and manager. - lidarr
Music collection manager for Usenet and torrents. - mailcow
Self-hosted mail server suite. - mailserver
General purpose mail server. - mariadb
Open-source relational database. - mastadon
Decentralized social network server. - mastodon
Decentralized social network server. - mealie
Recipe management and meal planning. - mediacms
Open-source media content management system. - minecraft-paper_itzg
Minecraft Paper server by itzg. - mkvtoolnix
Tools for working with Matroska media files. - mongodb
NoSQL document database. - mosquitto-eclipse
MQTT broker for IoT messaging. - musicbrainz
Open music encyclopedia database. - n8n
Workflow automation tool. - navidrome
Music streaming server. - netbootxyz
Network boot server for OS installations. - nginxproxymanager
Web proxy management with a GUI. - node-red
Flow-based programming for IoT. - nostr-relay
Relay server for Nostr protocol. - notifiarr
Notification integration for media servers. - nzbget
Usenet downloader. - ombi
Media request management for Plex/Emby/Jellyfin. - open-assistant
Open-source AI assistant. - openbooks
Book search and download tool. - organizr
Unified web interface for your services. - paperless-ng
Document management system. - phpmyadmin
Web-based MySQL/MariaDB administration. - picard
Music tagger by MusicBrainz. - pidgin
Multi-protocol chat client. - plex
Media server for streaming your content. - plex-image-cleanup
Tool to clean up Plex image cache. - pms-docker
Plex Media Server Docker image. - podgrab
Podcast downloader and manager. - portainer
Docker management GUI. - portainer-be
Portainer backend service. - portainer-ce
Portainer Community Edition. - postgres_data
PostgreSQL database data container. - prometheus
Monitoring and alerting toolkit. - prowlarr
Indexer manager for Usenet and torrents. - qbittorrent
Open-source BitTorrent client. - radarr
Movie collection manager for Usenet and torrents. - rainloop
Webmail client. - readarr
Book collection manager for Usenet and torrents. - recyclarr
Syncs trash/recycle settings for media managers. - requestrr
Discord bot for media requests. - romm
Retro game manager. - romvault
ROM management and auditing tool. - sabnzbd
Usenet binary downloader. - shoutrrr
Notification library for various services. - sonarr
TV series collection manager for Usenet and torrents. - soulseek
Peer-to-peer music sharing client. - spotify-playlist-generator
Tool to generate Spotify playlists. - spotisub
Spotify playlist subscription manager. - sptnr
Spotify playlist and library manager. - swag-letsencrypt
Secure Web Application Gateway with Let's Encrypt. - swag-letsencrypt_duckdns
SWAG with DuckDNS integration. - tautulli
Plex usage monitoring and analytics. - tdarr
Distributed media transcoding system. - tellytv
IPTV proxy for Plex. - traefik
Modern reverse proxy and load balancer. - trilium
Hierarchical note-taking application. - tubearchivist
YouTube archiving and management tool. - tvheadend
TV streaming server for DVB, ATSC, IPTV. - unpackerr
Automated extraction of archives for media managers. - vscodium
Open-source build of VS Code. - watchtower
Automatic update for Docker containers. - web-dev-compose.yml
Web development Docker Compose setup. - webgrabplus
EPG (Electronic Program Guide) grabber. - wg-easy
Simple WireGuard VPN management. - whisper-webui
Web UI for OpenAI Whisper speech-to-text. - wireguard
Fast, modern VPN tunnel. - wireshark
Network protocol analyzer. - xbackbone
File sharing and image hosting platform. - xteve
IPTV proxy for Plex and Emby. - youtube-dl-material
Web UI for youtube-dl downloads. - youtube-dl-server
REST API for youtube-dl.
How To Use This Repo
Prerequisites
- Docker installed on your server or local machine.
- Docker Compose (if using
docker-compose.ymlfiles). - Portainer (optional, for managing containers via a web UI).
Getting Started
-
Clone the Repository
git clone https://github.com/yourusername/home-server.git cd home-server -
Choose a Container
- Browse the folders listed above.
- Each folder typically contains a
docker-compose.ymlor instructions for setup.
-
Configure Environment Variables
- Some containers require environment variables or custom configuration files.
- Review the comments in each
docker-compose.ymlor.envfile within the container's folder for setup details. - Comments are marked with
#for easy reference.
-
Start a Container
cd <container-folder> docker-compose up -d- Or use Portainer to deploy and manage containers/stacks through its web interface.
-
Access the Service
- Most services will be available at
http://localhost:<port>or via your server’s IP.
- Most services will be available at
Updating Containers
- To update a running container:
docker-compose pull docker-compose up -d - Or use Portainer's update features. Portainer > Stack > Editor > Update The Stack > Tick (Re-pull image and redeploy)
- Or enable automatic updates with Watchtower.
Deploy Watchtower to monitor and update your containers automatically:docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower
Stopping Containers
- To stop a container:
docker-compose down - Or stop containers from the Portainer dashboard.
Backup & Restore
- Backup your configuration files and persistent data folders regularly.
- Restore by copying your backups back into the appropriate folders before starting the containers.
For container-specific instructions, see the comments within each file.