Skip to content

Latest commit

 

History

214 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Docker Compose Services

Each folder under docker-compose/ contains a service-specific Compose stack. This table tracks the current folder set so new additions are easy to spot and keep normalized.

Service Description
adguard Network-wide DNS ad blocking and privacy filtering. I maintain a companion custom blocklist here that complements the lists in AdGuard.
airdcpp Advanced Direct Connect client for file sharing. Old school protocol. Similar to soulseek. Not as good.
amule Peer-to-peer client for the eDonkey and Kad networks. Similar to airdcpp and soulseek. Kind of sucks.
apprise Unified notification gateway for many messaging services.
aria2 Lightweight multi-protocol download utility.
audiobookshelf Self-hosted audiobook and podcast server. Can auto download podcasts you subscribe to.
authelia Authentication and authorization portal for protected apps.
azerothcore World of Warcraft server emulator stack.
bar-assistant Cocktail recipe and home bar management app.
bazarr Subtitle manager for Sonarr and Radarr libraries.
beets Music library organizer and metadata tagger.
btcpayserver Self-hosted Bitcoin and cryptocurrency payment processor.
calibre E-book library management application. Convert, organize/rename, and manage your e-book collection.
calibre-web Web interface for browsing and serving a Calibre library.
chaptarr Chapter metadata helper for media libraries. Think it's AI built, so haven't actually tested yet.
chd-converter Tooling for converting PS2 disc images to CHD format. Useful for retro gaming.
code-server VS Code served through a browser. With many addons built in for AI development.
comfyui Node-based UI for Stable Diffusion and image generation workflows. Works with llama.cpp
comfyui-smartgallery Gallery companion for browsing and organizing ComfyUI outputs.
dashy Self-hosted dashboard for organizing service links.
ddclient Dynamic DNS update client. I like to update duckdns and cloudflare with this.
deemix Deezer music downloader. This tool is OP for any music downloader.
deluge Lightweight BitTorrent client. Use to be nice, don't use anymore. qbit all the way.
diiis-diablo-3 Diablo III server emulator stack.
dillinger Browser-based Markdown editor.
doublecommander Dual-pane file manager.
elasticsearch Search and analytics engine. Using with tubearchivist and 1 other app
filebrowser Web-based file manager.
filedrop Simple browser-based file sharing service.
filegator Self-hosted web file manager.
flaresolverr Proxy helper for bypassing Cloudflare challenges.
foundryvtt Virtual tabletop server for roleplaying games.
freshrss Self-hosted RSS feed reader.
gamevault Self-hosted game library manager. Not a fan of this one, but the idea I want to copy.
gameyfin Game library and streaming server. Now this one is decent put together.
ghostfolio Personal finance and portfolio tracker.
gitea Self-hosted Git forge. My go to for self-hosted git repositories. Mirror everything to github.
gitea-mcp MCP bridge for interacting with Gitea. using with vs code, hermes-agent, hermes-codex, and other coding tools.
glances System monitoring dashboard.
gluetun VPN client container for routing other services. Decent thought but think it's no longer supported really.
gmod Garry's Mod dedicated server.
grafana Metrics visualization and dashboarding platform.
grifter Automation and scripting service.
headphones Music downloader and library manager.
heimdall Application dashboard for self-hosted services.
hermes-agent Hermes automation agent service.
hermes-codex Hermes/Codex automation workspace service.
homarr Modern home server dashboard.
homeassistant Home automation platform.
homebridge HomeKit bridge for non-Apple smart devices.
immich Self-hosted photo and video backup platform. Auto sync iphone/android photos like amazon drive.
iptv-org-epg Electronic program guide tooling for IPTV sources. Think this was a waste of time.
it-tools Collection of browser-based developer utilities.
jackett Indexer proxy for torrent applications. Kind of outdated but comes in handy sometimes with different apps that are already integrated.
jdownloader Download manager for file hosting services. Op download manager.
jellyfin Open-source media server. Similar to plex but more customizable.
joplin Note-taking and to-do application server.
jupyter Interactive notebook environment for code and data.
karakeep Self-hosted bookmark, note, and web clipping app. Takes full backups of web pages in case they go down.
kometa Media library metadata and collection manager for plex media server. I use to think this was nice but it kind of hogs resources for long hours in large libraries.
lancommander LAN party game library and event management. Want to redo this eventually. Good thought.
lazylibrarian Book download and library manager. Not as good as calibre.
libation Audiobook downloader and manager for audible. Removes DRM also.
lidarr Music collection manager for Usenet and torrents. This finally came back! 1 of the best music collection managers out there.
llama.cpp Local LLM inference server using llama.cpp. Run AI models locally.
mailcow Self-hosted mail server suite.
mailserver General-purpose Docker mail server.
mariadb MariaDB relational database server.
mastodon Federated social network server.
matomo Self-hosted web analytics platform. Alternative to Google Analytics.
mcp-fetch MCP server for fetching web resources.
mcp-git MCP server for Git repository operations.
mealie Recipe manager and meal planner.
mediacms Open-source media content management system.
minecraft-paper_itzg Minecraft Paper server using the itzg image.
minecraft-paperless-ng Paperless NG document management stack.
mixpost Self-hosted social media scheduling platform.
mkvtoolnix Tools for Matroska media files.
mongodb MongoDB document database.
mosquitto-eclipse Eclipse Mosquitto MQTT broker.
mumble Low-latency voice chat server.
musicbrainz MusicBrainz database and music metadata stack.
n8n Workflow automation platform.
navidrome Self-hosted music streaming server.
netbootxyz Network boot environment for OS installers and utilities.
netdata Real-time infrastructure monitoring dashboard.
nginxproxymanager GUI for managing Nginx reverse proxy hosts.
nicotineplus Soulseek client for peer-to-peer media sharing.
node-red Flow-based automation and IoT programming tool.
nostr-relay Relay server for the Nostr protocol.
notifiarr Notification and automation bridge for media servers.
nzbget Usenet downloader.
ollama Local large language model runtime. Must use ollama models only, no agentic services really.
ombi Media request manager for Plex, Emby, and Jellyfin.
omni-tools Collection of small self-hosted utility tools.
omnisave Self-hosted save/archive service.
open-assistant Open-source AI assistant stack.
open-notebook Notebook-style workspace for AI notes and research.
open-webui Web interface for Ollama and other LLM backends.
openbooks Book search and download tool.
openhands AI software development agent environment.
organizr Unified web portal for self-hosted services.
paperless Document management and OCR archive.
paperless-ng Legacy Paperless NG document management stack.
phpmyadmin Web administration interface for MySQL and MariaDB.
picard MusicBrainz Picard music tagger.
pidgin Multi-protocol chat client.
plex Plex media server. Stream your media library.
plex-image-cleanup Utility for cleaning Plex image cache data.
pms-docker Plex Media Server Docker image setup. Official Docker image. Not the best really.
podgrab Podcast downloader and archive manager. Used this before i found audiobookshelf.
portainer-be Portainer Business Edition management stack. Forced me to move to business for some reason.
portainer-ce Portainer Community Edition management stack.
postgres PostgreSQL relational database server.
postiz Social post scheduling and publishing platform.
prometheus Metrics collection and alerting toolkit.
prowlarr Indexer manager for media automation apps.
qbittorrent qBittorrent BitTorrent client. The best one out there hands down.
radarr Movie collection manager.
rainloop Webmail client.
readarr Book collection manager. No longer maintained.
readarr-audio Audiobook collection manager. No longer maintained.
recyclarr TRaSH guide sync tool for media managers.
registry Private Docker image registry.
romm ROM and retro game library manager.
romvault ROM auditing and management tool. Haven't quite tested this but it looks promising.
sabnzbd Usenet binary downloader.
searxng Privacy-focused metasearch engine.
shoutrrr Notification sender for many services.
sociaboard Social media management platform. Paid bs, want to recreate this from scratch.
sonarr TV series collection manager.
soulseek Soulseek peer-to-peer music sharing client. Can also download tv, movies, and other media.
spotify-playlist-generator Spotify playlist generation helper.
spotisub Spotify playlist subscription manager.
sptnr Spotify playlist and library helper. I've recently forked this here.
statping Status page and service monitoring app. (IsItUp type site)
swag-letsencrypt Secure Web Application Gateway (reverse proxy) with Let's Encrypt. Nginx based. Comes with lots of ready to go configurations.
swag-letsencrypt_duckdns SWAG reverse proxy stack configured for DuckDNS. Not my active setup.
tautulli Plex monitoring and analytics dashboard. Using with kometa also.
tdarr Media transcoding automation. Remux containers or convert video formats.
tellytv IPTV proxy for Plex. outdated compared to xteve.
traefik Reverse proxy and load balancer. I don't actually use it, but it's a popular choice.
trilium Hierarchical note-taking application.
tubearchivist YouTube archive and media manager. Links to plex and jellyfin with plugins.
tvheadend TV streaming server for DVB, ATSC, and IPTV. Very in-depth and feature-rich.
unpackerr Archive extraction automation for arr media managers.
vocechat Self-hosted chat platform. Similar to discord.
vscodium Open-source build of VS Code served remotely.
watchtower Automatic Docker container update monitor.
webgrabplus Electronic program guide grabber.
wg-easy Simple WireGuard VPN management UI.
whisper-webui Web UI for Whisper speech-to-text.
wireguard WireGuard VPN stack.
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 and yt-dlp downloads.
youtube-dl-server REST API service for youtube-dl.
zap OWASP ZAP web security testing proxy.

How To Use This Repo

Prerequisites

  • Docker installed on your server or local machine.
  • Docker Compose (if using docker-compose.yml files).
  • Portainer (optional, for managing containers via a web UI).

Getting Started

  1. Clone the Repository

    git clone https://github.com/yourusername/home-server.git
    cd home-server
  2. Choose a Container

    • Browse the folders listed above.
    • Each folder typically contains a docker-compose.yml or instructions for setup.
  3. Configure Environment Variables

    • Some containers require environment variables or custom configuration files.
    • Review the comments in each docker-compose.yml or .env file within the container's folder for setup details.
    • Comments are marked with # for easy reference.
  4. Start a Container

    cd <container-folder>
    docker-compose up -d
    • Or use Portainer to deploy and manage containers/stacks through its web interface.
  5. Access the Service

    • Most services will be available at http://localhost:<port> or via your server’s IP.

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.

Releases

Packages

Contributors