So, you’ve taken the plunge. You’ve set up your first home server—maybe it’s a Raspberry Pi, an old PC, or a custom-built machine—and you’re staring at a command line, wondering, “What now?” You’ve built the theater, but now you need to choose the plays.
Welcome to your home lab’s journey. We’ve structured this guide into five distinct stages, starting with the essential tools you’ll install in your first 24 hours and progressing to advanced automation projects that will truly transform your digital life. Follow this roadmap to build your server from the ground up, the right way.
This isn’t just a list; it’s a project plan. For each application, we’ll tell you what it is, why it’s essential, and provide our own expert insight from years of running a home lab. Most importantly, we’ll give you the Docker Compose snippet to get it running instantly.
Let’s begin.
Stage 1: The Command Center (Your First 24 Hours)
If you install nothing else, install these. They are the bedrock of a modern, secure, and manageable home lab.
1. Portainer CE: Your Server’s Control Panel
- What It Is: Portainer Community Edition is a powerful, web-based user interface for managing your Docker environment. It transforms the complex world of command-line instructions into a beautiful, intuitive dashboard.
- Why It’s a Must-Have: It demystifies Docker, showing you exactly what’s running, how much CPU and RAM each app is using, and giving you simple buttons to deploy, start, stop, and update them. It’s the first thing you should install.
- Expert Insight: Honestly, trying to manage more than two Docker containers from the command line is a recipe for frustration. Portainer was the first app I installed on my server, and it instantly made the entire process feel less intimidating and more professional. Don’t skip this.
- Get Started (Docker Compose):
version: '3.3'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
ports:
- "8000:8000"
- "9443:9443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./portainer_data:/data
restart: unless-stopped
2. Nginx Proxy Manager: Secure & Simple Web Access
- What It Is: Nginx Proxy Manager provides a simple web UI to manage access to your services via easy-to-remember domain names. It also automates free SSL certificates, ensuring all your connections are secure (HTTPS).
- Why It’s a Must-Have: It’s the professional way to manage access to your services and is a critical security component.
- Expert Insight: This is the tool that makes your lab feel “real.” Moving from IP addresses to secure, named subdomains is a huge step up. The automated SSL is a lifesaver.
- Get Started (Docker Compose):
version: '3.8' services: app: image: 'jc21/nginx-proxy-manager:latest' container_name: nginx-proxy-manager restart: unless-stopped ports: - '80:80' - '81:81' - '443:443' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt
3. WireGuard (via wg-easy): Secure Remote Access
- What It Is: WireGuard is the modern, fast, and secure standard for creating a VPN. The wg-easy Docker container provides a simple web interface for managing your VPN.
- Why It’s a Must-Have: A VPN is the key to safely using all your other self-hosted services when you’re away from home, without exposing them directly to the open internet.
- Expert Insight: I tried setting up WireGuard manually once. Never again. wg-easy turns a complex networking task into a 5-minute, point-and-click setup. It’s brilliant.
- Get Started (Docker Compose):
version: "3.8"
services:
wg-easy:
image: weejewel/wg-easy
container_name: wg-easy
environment:
- WG_HOST=your.server.ip
volumes:
- .:/etc/wireguard
ports:
- "51820:51820/udp"
- "51821:51821/tcp"
cap_add:
- NET_ADMIN
- SYS_MODULE
restart: unless-stopped
4. Pi-hole: Network-Wide Ad Blocking
- What It Is: Pi-hole is a DNS sinkhole that protects your entire home network from ads and trackers.
- Why It’s a Must-Have: It’s a “set it and forget it” service with immediate benefits. Web pages load faster, your smart TV is ad-free, and your privacy is significantly enhanced.
- Expert Insight: This is the service with the highest “family approval factor.” The first time someone notices that their favorite news site has no ads, you’ll be a hero.
- Get Started (Docker Compose):
version: "3"
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
ports:
- "53:53/tcp"
- "53:53/udp"
- "8080:80/tcp"
environment:
TZ: 'America/New_York'
WEBPASSWORD: 'your_password_here'
volumes:
- './etc-pihole/:/etc/pihole/'
- './etc-dnsmasq.d/:/etc/dnsmasq.d/'
restart: unless-stopped
5. Uptime Kuma: Your Server’s Status Page
- What It Is: Uptime Kuma is a beautiful, easy-to-use monitoring tool that constantly checks if your services are online.
- Why It’s a Must-Have: As your lab grows, it becomes difficult to keep track of everything. Uptime Kuma gives you a single dashboard to see the health of your entire setup.
- Expert Insight: This tool has saved me from guessing games countless times. Instead of wondering if my internet is down or if a service crashed, Kuma tells me instantly.
- Get Started (Docker Compose):
version: '3.3'
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
volumes:
- ./uptime-kuma-data:/app/data
ports:
- "3001:3001"
restart: unless-stopped
Stage 2: Reclaiming Your Data (Building Your Private Cloud)
These apps help you reclaim your personal data from big tech and build your own private, productive ecosystem.
6. Nextcloud AIO: Your Private Google Drive & Workspace
- What It Is: Nextcloud All-in-One is a complete, self-hosted productivity suite, acting as a powerful alternative to Google Drive or Dropbox.
- Why It’s a Must-Have: It’s the ultimate tool for taking back control of your personal data. The AIO Docker installation simplifies the setup process immensely.
- Expert Insight: The moment you see your phone automatically uploading photos to your own server instead of Google’s is a game-changing feeling. The All-in-One (AIO) installer is the key here; it solves the complex database and reverse proxy setup that used to make Nextcloud a nightmare for beginners.
- Get Started: Follow the official AIO Docker instructions on the Nextcloud website, as it involves a specific script for proper setup.
7. Vaultwarden: Self-Hosted Password Manager
- What It Is: Vaultwarden is a lightweight, open-source server that is fully compatible with the official Bitwarden password manager clients.
- Why It’s a Must-Have: Self-hosting your vault provides the ultimate level of security. You are the only one with access to your encrypted password database.
- Expert Insight: This is one of the most resource-friendly and stable apps you can run. It uses almost no CPU or RAM but provides an absolutely critical service.
- Get Started (Docker Compose):
version: '3'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
volumes:
- ./vw-data:/data
ports:
- "8081:80"
8. PhotoPrism: Your Personal Google Photos
- What It Is: PhotoPrism is a powerful, AI-driven application for browsing, organizing, and sharing your personal photo collection.
- Why It’s a Must-Have: It’s the best self-hosted replacement for Google Photos or iCloud Photos, with a beautiful, modern interface to manage your life’s memories.
- Expert Insight: The AI-powered search is surprisingly good. Being able to search my entire photo library for “dog” or “beach” and get instant results, all running locally, feels like magic.
- Get Started: PhotoPrism provides an official Docker Compose file on their website that is recommended for the initial setup.
9. Paperless-ngx: Digitize Your Life
- What It Is: Paperless-ngx transforms your physical documents into a fully searchable digital archive using OCR.
- Why It’s a Must-Have: It’s the ultimate tool for decluttering your life and getting organized. Never lose an important document again.
- Expert Insight: This is the app you don’t think you need until you install it. Then you can’t live without it. Finding a three-year-old receipt by searching for a single keyword is a superpower.
- Get Started: The official documentation provides a comprehensive Docker Compose file that includes all necessary dependencies like Redis.
10. Gitea: Your Personal GitHub
- What It Is: Gitea is a lightweight, self-hosted Git service, like running your own private GitHub or GitLab.
- Why It’s a Must-Have: It gives you a private, secure place to store your code and track your projects, without relying on a third-party service.
- Expert Insight: I use this to store all my Docker Compose files and server configurations. It’s the perfect way to version control my entire home lab setup.
- Get Started (Docker Compose):
version: "3"
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
restart: unless-stopped
volumes:
- ./gitea:/data
ports:
- "3000:3000"
- "222:22"
Stage 3: The Entertainment Hub (Creating Your Personal Netflix)
Build your own streaming empire with these powerful media management tools.
11. Plex / Jellyfin: Your Personal Netflix
- What It Is: Plex and Jellyfin are powerful media servers that organize your media into a beautiful, easy-to-browse interface for streaming.
- Why It’s a Must-Have: They put you in complete control of your media library. Plex is easier for beginners, while Jellyfin is 100% free and open-source.
- Expert Insight: This is the “wow” factor for your home lab. Showing friends how you can stream your entire movie library to their phone, anywhere in the world, is always impressive.
- Get Started (Docker Compose for Jellyfin):
version: "3.5"
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
user: 1000:1000
ports:
- "8096:8096"
volumes:
- ./config:/config
- /path/to/your/media:/media
restart: unless-stopped
12. The *Arr Stack (Radarr, Sonarr, Prowlarr, Bazarr)
- What It Is: This is a suite of applications that work together to automate your media collection.
- Why It’s a Must-Have: This suite is the key to a fully automated media server, saving you countless hours.
- Expert Insight: The *Arr stack is what separates a casual media server from a truly automated, self-managing library. It’s a deep rabbit hole, but the payoff is immense.
- Get Started: Use the official Docker Compose examples from the LinuxServer.io images for each application.
13. Tautulli: Plex Analytics on Steroids
- What It Is: Tautulli is a monitoring and analytics application for your Plex Media Server.
- Why It’s a Must-Have: It provides fascinating insights into your server’s usage and can be used to trigger notifications or scripts.
- Expert Insight: It’s fascinating to see the watch history and stats for your server. It’s also a great tool for seeing if a remote user is transcoding and using up your CPU.
- Get Started (Docker Compose):
version: "3"
services:
tautulli:
image: lscr.io/linuxserver/tautulli
container_name: tautulli
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- ./config:/config
ports:
- 8181:8181
restart: unless-stopped
14. Audiobookshelf: Your Private Audible
- What It Is: Audiobookshelf is a self-hosted server for your audiobooks and podcasts.
- Why It’s a Must-Have: It’s the best way to organize and listen to your personal audiobook collection without being tied to a proprietary platform.
- Expert Insight: The mobile app is fantastic and has full offline support. It’s a truly top-tier experience that easily rivals commercial apps.
- Get Started (Docker Compose):
version: "3.7"
services:
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
container_name: audiobookshelf
ports:
- 13378:80
volumes:
- /path/to/audiobooks:/audiobooks
- /path/to/podcasts:/podcasts
- ./config:/config
- ./metadata:/metadata
restart: unless-stopped
15. Duplicati: Back Up Everything
- What It Is: Duplicati is a free, open-source backup client that securely stores encrypted, incremental backups.
- Why It’s a Must-Have: Your data is only as safe as your last backup. Duplicati can automatically back up your other Docker containers’ persistent data to a cloud provider.
- Expert Insight: A backup app isn’t exciting, but it’s the most important app on this list. Set it up to back up your config folders to a cheap cloud service like Backblaze B2. You’ll thank yourself later.
- Get Started (Docker Compose):
version: "3"
services:
duplicati:
image: lscr.io/linuxserver/duplicati
container_name: duplicati
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- ./config:/config
- /path/to/your/backups:/backups
- /path/to/your/source:/source
ports:
- 8200:8200
restart: unless-stopped
Stage 4: Fortifying Your Fort (Security & Maintenance)
These apps make your life easier and your server more powerful.
16. Watchtower: Automatic Docker Updates
- What It Is: Watchtower is a small container that will monitor all your other running containers and automatically update them.
- Why It’s a Must-Have: It keeps your services secure and up-to-date with zero manual effort.
- Expert Insight: This is a “set it and forget it” utility that is essential for good security hygiene.
- Get Started (Docker Compose):
version: "3"
services:
watchtower:
image: containrrr/watchtower
container_name: watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
17. Flame: A Beautiful Application Dashboard
- What It Is: Flame is a simple, beautiful, and easy-to-use startpage for your server.
- Why It’s a Must-Have: It solves the problem of having to remember dozens of IP addresses and ports. It becomes the homepage for your entire home lab.
- Expert Insight: Having a beautiful dashboard makes your whole setup feel more organized and professional. Flame is lightweight and looks fantastic.
- Get Started (Docker Compose):
version: "3"
services:
flame:
image: pawelmalak/flame
container_name: flame
volumes:
- ./data:/app/data
ports:
- "5005:5005"
restart: unless-stopped
18. AdGuard Home: The Pi-hole Alternative
- What It Is: AdGuard Home is another powerful network-wide ad and tracker blocker with a modern interface and built-in encrypted DNS support.
- Why It’s a Must-Have: It offers a great alternative to Pi-hole with a different look and feel.
- Expert Insight: I switched from Pi-hole to AdGuard for its native support for DNS-over-HTTPS. The interface is also incredibly clean and modern.
- Get Started (Docker Compose):
version: "3"
services:
adguardhome:
image: adguard/adguardhome
container_name: adguardhome
ports:
- "53:53/tcp"
- "53:53/udp"
- "3000:3000/tcp"
volumes:
- ./work:/opt/adguardhome/work
- ./conf:/opt/adguardhome/conf
restart: unless-stopped
19. Code-Server: VS Code in Your Browser
- What It Is: Code-Server runs the popular Visual Studio Code editor on your server, accessible through your web browser.
- Why It’s a Must-Have: It allows you to edit your server’s configuration files and code from any device with a web browser, without needing to SSH in.
- Expert Insight: This is incredibly convenient. Being able to quickly edit a Docker Compose file from my tablet is a huge quality-of-life improvement.
- Get Started (Docker Compose):
version: "3"
services:
code-server:
image: lscr.io/linuxserver/code-server
container_name: code-server
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- ./config:/config
ports:
- 8443:8443
restart: unless-stopped
20. Ghost: Your Own Professional Blog
- What It Is: Ghost is a powerful, modern, and open-source publishing platform.
- Why It’s a Must-Have: It gives you a platform to share your knowledge and document your home lab journey, all hosted on the very server you’re writing about.
- Expert Insight: Ghost is a joy to write in. It’s clean, fast, and a huge step up from clunky old platforms like WordPress.
- Get Started: The official Ghost Docker documentation provides a recommended Compose file that includes the necessary database.
Stage 5: The Automation Engine (Making Your Lab Smart)
Take your home lab to the next level with these powerful automation and AI tools.
21. Home Assistant: The Ultimate Smart Home Hub
- What It Is: Home Assistant is an incredibly powerful, open-source home automation platform that integrates thousands of different smart devices.
- Why It’s a Must-Have: It puts you back in control of your smart home, with a focus on local control and privacy.
- Expert Insight: Home Assistant is a hobby in itself. The automations you can create are incredibly powerful, from simple lighting schedules to complex security alerts.
- Get Started: It’s highly recommended to follow the official Home Assistant OS installation guide for your hardware for the best experience.
22. Ollama: Your Private AI Chatbot
- What It Is: Ollama is a tool that makes it incredibly simple to download and run powerful, open-source Large Language Models (LLMs) in a Docker container.
- Why It’s a Must-Have: As detailed in our guide to self-hosting LLMs, it provides a completely private AI assistant where your conversations are never shared.
- Expert Insight: Running a local AI model that’s fast and helpful feels like living in the future. This is one of the most exciting areas of self-hosting right now.
- Get Started (Docker Compose):
version: '3.8'
services:
ollama:
image: ollama/ollama
container_name: ollama
ports:
- "11434:11434"
volumes:
- ./ollama:/root/.ollama
restart: unless-stopped
23. Node-RED: Low-Code Automation
- What It Is: Node-RED is a browser-based, visual programming tool for wiring together hardware devices, APIs, and online services.
- Why It’s a Must-Have: It’s an incredibly powerful tool for creating custom automations that can integrate with almost any service you can imagine. It’s the glue that can tie your entire home lab together.
- Expert Insight: If you can dream it, you can probably build it in Node-RED. It’s the ultimate “if this, then that” tool for your entire digital life.
- Get Started (Docker Compose):
version: "3.7"
services:
node-red:
image: nodered/node-red:latest
container_name: node-red
ports:
- "1880:1880"
volumes:
- ./node-red-data:/data
restart: unless-stopped
24. Scrypted: Unify Your Security Cameras
- What It Is: Scrypted is a high-performance video integration platform that brings non-HomeKit security cameras into the Apple Home ecosystem.
- Why It’s a Must-Have: It can save you hundreds of dollars by allowing you to use cheaper, non-HomeKit cameras while getting all the benefits of Apple’s secure ecosystem.
- Expert Insight: Scrypted is incredibly reliable and performs so well that you’ll forget your cameras aren’t natively HomeKit-compatible.
- Get Started: The official Scrypted documentation provides the recommended Docker installation command.
25. Changedetection.io: Monitor Any Webpage
- What It Is: Changedetection.io is a powerful tool that will monitor any webpage for changes and notify you.
- Why It’s a Must-Have: It’s a simple but incredibly useful automation tool that can save you time and money by notifying you of important changes on the web.
- Expert Insight: I use this to monitor for software updates on GitHub and to get alerts when products I want come back in stock. It’s a simple, powerful time-saver.
- Get Started (Docker Compose):
version: '3'
services:
changedetection:
image: ghcr.io/dgtlmoon/changedetection.io
container_name: changedetection
volumes:
- ./datastore:/datastore
ports:
- "5000:5000"
restart: unless-stopped
Conclusion: Start Building Your Digital Kingdom
The beauty of a Docker-based home lab is that it’s a journey, not a destination. You don’t have to do everything at once. Start with one or two of the essential apps from Stage 1—Portainer and a VPN are fantastic first choices.
As you get more comfortable, you can gradually add more services, building out a digital life that is more private, powerful, and uniquely yours. Each container you deploy is another step towards digital independence. For a complete overview of how to get started with the hardware and OS, be sure to check out our foundational Ultimate Home Lab Guide for 2025.
Welcome to the adventure.