Topic
Self-Hosting
The art of running your own stuff so the cloud doesn't run you. These articles cover the apps worth self-hosting (Immich, Nextcloud, Vaultwarden, Jellyfin, and the long tail), the apps that look great in screenshots but bite later, and the boring-but-critical bits — reverse proxies, backups, auth, and not getting paged at 3 AM. If you want a sustainable home lab instead of a museum of half-configured services, start here.
376 articles in this topic.
Featured posts
-
Garrul: 53 Releases Later
Garrul's 2026-05-25 roadmap promised moderation tools, a faster widget, and admin polish. 89 days and 53 releases later, here is the honest scorecard.
12 min read -
Unmanic vs Tdarr: Transcode Pipeline Comparison
Head-to-head comparison of Unmanic and Tdarr transcode pipelines, config style, plugins, workers, GPU support, and when to pick each.
8 min read -
Tdarr: Auto-Transcoding Your Media Library
Batch transcode h264 to h265 or AV1 with Tdarr. GPU/CPU strategies, plugin flows, Docker Compose setup, and storage savings math for your media server.
10 min read -
Home Assistant Energy Dashboard with Shelly
Power monitoring with Shelly EM/Pro/3EM, Home Assistant energy dashboard, circuit-level metering, solar+grid tracking, and wiring sanity checks.
10 min read -
Z-Wave vs Zigbee in 2026
Z-Wave vs Zigbee: range, mesh, cost, and which radio protocol to choose for home automation in 2026.
10 min read -
Matter and Thread for the Suspicious
Matter and Thread protocol overview: what actually works in home labs, what's vaporware, and why you should be skeptical of the hype in 2026.
9 min read
All Self-Hosting articles
- Garrul: 53 Releases Later
- Unmanic vs Tdarr: Transcode Pipeline Comparison
- Tdarr: Auto-Transcoding Your Media Library
- Home Assistant Energy Dashboard with Shelly
- Z-Wave vs Zigbee in 2026
- Matter and Thread for the Suspicious
- HyperDX vs OpenObserve
- Home Assistant Backups That Actually Restore
- Calibre-Web vs Calibre Server vs Kavita
- Navidrome vs Funkwhale: Self-Hosted Music
- Tautulli Beyond Plex Stats
- Overseerr vs Jellyseerr
- The *arr Stack Without 9000 Reddit Threads
- Synthetic Browser Monitoring with Playwright + Grafana
- VictoriaMetrics vs Prometheus
- Node Exporter Internals That Actually Matter
- Grafana OnCall + Webhooks: Paging Without PagerDuty
- Healthchecks.io Self-Hosted: Cron Monitoring
- Vector vs Fluent Bit: Modern Log Shippers
- Push vs Pull Metrics: Pushgateway, Pushprox, and Why
- Blackbox Exporter: HTTP/TCP/DNS/ICMP Probes
- Self-Host SigNoz: Install Guide
- SLO/SLI for Home Lab Services
- Alertmanager Routing Trees That Don't Lie
- Tempo + Grafana: Tracing for Self-Hosters
- Mimir + Grafana: Long-Term Prometheus Storage
- Loki vs Vector for Log Shipping
- Prometheus Federation for Multi-Site Home Labs
- rclone Crypt: Encrypted Cloud Buckets That Stay Yours
- TrueNAS Apps vs Docker on TrueNAS Scale
- NFS vs SMB vs SSHFS vs WebDAV for Home Lab
- Cold Archive: B2 vs Storj vs Scaleway Glacier
- Off-Site Encrypted Backup with rsync.net
- ZFS Tuning for SSDs and NVMe
- SigNoz vs Jaeger for Tracing
- Backup Workflow Patterns That Work
- Real-ESRGAN & Upscaling Tools
- ControlNet & LoRA: Advanced Image Control
- API vs Self-Hosted LLMs: The Real Cost
- Free AI Image Gen vs Your Own GPU
- RAG Beyond Vector Search: BM25, Hybrid, Re-ranking
- Podman Compose for Docker-Free Workflows
- LXC vs Docker: Lightweight Containers
- 3-2-1-1-0: The Backup Strategy That Survives Ransomware
- The Free AI Stack: What $0 Gets You
- dbt-core for Self-Hosters: SQL With Tests, Without dbt Cloud
- Ditch Your ISP Router for MikroTik
- SigNoz vs Grafana LGTM Stack
- Audiobookshelf vs Booksonic: Self-Hosted Audiobooks
- Agentic Browsers: Browser-Use & Skyvern Reviewed
- Steam Deck as a Homelab Toolkit (Yes, Really)
- Local Voice Assistant: Whisper + Piper + Home Assistant
- Sandstorm: Self-Hosted Apps in a Sandbox, Not Just a Container
- Llamafile: Single-Binary LLMs That Actually Just Run
- DeepSeek V4 Flash: 28 Cents a Million
- Sunshine + Moonlight: Roll Your Own Cloud Gaming
- DIY Perplexity: SearXNG + Local LLM = Private Web Search
- NUT: Network UPS Tools for Home Labs That Don't Want to Crash
- Mozilla Sync Server Self-Hosted: Still Viable?
- Memos: Self-Hosted Microblog Meets Daily Note
- Mullvad VPN Containers via Gluetun: Per-App VPN
- Convoy: Self-Hosted Webhook Delivery That Doesn't Drop Events
- Vaultwarden Behind Authelia: 2FA That Holds
- LM Studio vs Jan vs GPT4All: Desktop LLM Clients
- Joplin Server vs Trilium vs Standard Notes
- Invidious, Piped, Redlib, Nitter: 2026 Status
- BTCPay Server: Self-Hosted Crypto Payments
- Tang & Clevis: LUKS Auto-Unlock Without a Typed Passphrase
- LibreSpeed: Hosting Your Own Speed Test
- LibreTranslate: Local Translation Without Google
- Collateral Freedom: Costly to Block
- SearXNG vs Whoogle: Private Search Frontends
- Stirling-PDF: Stop Uploading Your Tax Returns to Sketchy Sites
- AdGuard DNS Sync Across Two Instances
- wg-easy: WireGuard for Humans Who Hate Config Files
- Forgejo Actions: Self-Hosted GitHub-Style CI Without GitHub
- LoRa Mesh Hardware Buying Guide
- Self-Hosted Email Aliasing on Your Own Domain
- CryptPad vs EtherCalc: Privacy Collaboration
- KV Cache Quantization: Free LLM Context, Almost
- NextDNS vs Self-Hosted: When SaaS Wins
- Self-Hosted CAPTCHA Alternatives in 2026
- Meshtastic vs MeshCore in 2026
- DNS-over-HTTPS at Home: cloudflared vs dnscrypt-proxy
- Komga vs Kavita: Self-Hosted Comic & Manga Servers
- Headlamp: K8s UI Without the License Drama
- K9s vs Lens vs Headlamp: Cluster UIs
- Pangolin: Self-Hosted Cloudflare Tunnel Alternative
- Krew: Kubectl Plugins You'll Actually Use
- KEDA: Event-Driven Autoscaling Self-Hosted
- Beszel: Server Monitoring Without the Prometheus Tax
- Crossplane vs Terraform for Home Lab
- Goldilocks + VPA: Right-Size Pods Without Guessing
- Capsule: Multi-Tenancy for Home Lab k3s
- Sealed Secrets vs External Secrets Operator
- Mixture of Experts (MoE) for Self-Hosters, Demystified
- Reloader: Auto-Reload Pods on ConfigMap Change
- Python Libraries Worth Your Time in 2026
- Atuin: Shell History That Actually Works Across Machines
- Cilium on k3s: When eBPF Networking Pays
- k3s + Tailscale: Cluster Across Two Sites
- KubeVirt on k3s: VMs Next to Pods
- Mesh VPN Showdown: Tailscale, Nebula, ZeroTier, NetBird
- ClickHouse vs DuckDB vs StarRocks: Light OLAP
- Speculative Decoding: Faster LLMs With a Tiny Sidekick
- Gitea Actions vs Woodpecker CI
- Adding NOT NULL on a Big Table Without Downtime
- Karakeep: Self-Hosted Bookmarks With AI Tagging
- Firefly III vs Actual vs Fava (Beancount)
- Postgres HA: Patroni + etcd + HAProxy
- Dragonfly vs Redis: Single-Binary Performance
- ntfy vs Gotify vs Apprise: Push Stacks
- Syncthing Through Untrusted VPS Relays
- SnapRAID: Parity Without Real-Time RAID
- KeyDB: A Redis Fork With Multi-Threading
- Mastodon vs Misskey vs Pleroma 2026
- Self-Hosted Email Gateways in 2026
- pg_repack vs VACUUM FULL: Reclaim Bloat Live
- Vikunja vs Focalboard vs Taiga
- FreshRSS vs Miniflux vs Tiny Tiny RSS
- pg_stat_statements: What Most Tutorials Miss
- Assume Your App Gets Popped
- Mealie vs Tandoor vs Grocy Kitchen Stack
- Postgres EXPLAIN ANALYZE Without Crying
- RAID 50/60: Nested Parity Done Right
- Linkding vs Hoarder vs Wallabag in 2026
- pgAdmin vs Adminer vs CloudBeaver: Web UIs
- Borgmatic: Borg Backup, Done Right
- Owncast vs PeerTube vs nginx-rtmp
- PostgreSQL on ZFS: Tuning, Snapshots, Pitfalls
- Kasm Workspaces: Browser Desktops
- Navidrome vs Airsonic vs gonic
- TimescaleDB Continuous Aggregates Without Pain
- ClickHouse for Self-Hosted Logs
- DuckDB for Local Analytics: Pandas on Steroids
- Kodi vs Jellyfin Native for HTPC
- Homebridge vs Home Assistant Hub Showdown
- PoE Injectors and Switches for the Home Lab
- TIG: Telegraf + InfluxDB + Grafana
- OctoPrint vs Mainsail vs Fluidd 3D Print
- TrueNAS vs OpenMediaVault vs Unraid
- USB-C Power Delivery for Mini PCs
- 10GbE NIC Cheat Sheet: Mellanox, Intel, Chelsio
- Zigbee2MQTT vs ZHA
- DIY Patch Panel and Rack Cabling for Sanity
- Home Assistant on Proxmox
- SFP+ Optics and DACs Without Getting Burned
- Jitsi Meet Self-Hosted
- Hailo-8 vs Coral: AI Accelerators for the Edge
- Matrix: Synapse vs Dendrite vs Conduit
- Mini PCs With 2.5GbE: Picking the Right Box
- Minisforum vs Beelink vs Trigkey Homelab
- SigNoz vs Uptrace Self-Hosted Observability
- Used GPU Buying Guide for Home Lab LLMs
- Longhorn vs Rook-Ceph
- Rock 5B vs Orange Pi 5 vs Pi 5
- Velero: K8s Backup and DR
- BIOS/UEFI Tweaks for Headless Servers
- Claude Code in a Homelab Workflow
- cert-manager: ACME at Scale
- Rootless Docker: Tips, Gotchas & Fixes
- Network Booting Diskless Nodes with iPXE
- DIY NAS Build: Compute, Drives, Power Walkthrough
- k3sup vs kubeadm for Homelab Clusters
- Dead Container Took Down Prod
- Mikrotik RouterOS for Home Lab
- Dell R720 vs HP DL380 G9: Used Server Knife Fight
- pfSense vs OPNsense in 2026
- NVMe Heatsinks That Actually Cool
- Zeek for Home Lab Forensics
- Neo4j vs ArangoDB: Graph DB Showdown
- SAS vs SATA in 2026: When SAS Still Wins
- ModSecurity vs Coraza WAF
- Photon vs ESPHome: ESP Firmware Compared
- Postgres vs SQLite for Home Lab Apps
- SOPS + age: Secrets in Git
- Self-Host a Local AI Coding Workhorse
- Zigbee Coordinator Showdown: Sonoff vs ConBee vs SkyConnect
- WebAuthn & Passkeys for Sysadmins
- Give Your AI Agent a Cheap Intern
- Borg vs Duplicacy: Dedup Backup Wars
- Owntracks + Home Assistant: Private Location Tracking
- KVM/QEMU/libvirt: CLI Workflows
- BirdNET-Pi for Self-Hosted Bird Identification
- Claude Code + SearXNG: Private Web Search
- rclone vs Restic: Sync vs Backup
- Scrypted vs Frigate for Self-Hosted Cameras
- mtr vs traceroute: Packet Loss
- ESPresense: Room-Level Bluetooth Presence in Home Assistant
- Hetzner vs DigitalOcean vs Vultr
- iperf3 + nload: Network Diagnosis
- Plex Meta Manager: Posters, Collections, Sanity
- Syncthing vs Resilio vs Seafile
- SMART Disk Monitoring with smartmontools
- Jellyseerr Tagging Workflows for Real Libraries
- Boundary vs Teleport
- Whisparr & Mylar3: Specialty *arr Apps Explained
- Dify: Visual Agent Workflows
- LazyLibrarian + Readarr: Automating Your Book Library
- stunnel vs spiped
- OpenRouter vs LiteLLM
- Immich vs PhotoPrism vs Ente: Self-Hosted Photo Libraries
- Unbound vs Technitium vs BIND
- HACS: When Custom Integrations Bite You
- ntopng vs darkstat
- Gemma 4 vs Qwen3.6
- AnythingLLM as Knowledge Base
- Home Assistant Add-Ons vs Docker Containers
- Local Vision LLMs Worth Running in 2026
- Home Assistant Voice: Wyoming vs Rhasspy
- Caddy vs Traefik
- Promtail to Alloy Migration: A Practical Diff
- LibreNMS for SNMP-Heavy Home Networks
- SmokePing for Internet Connection Sanity
- Riemann: The Forgotten Event-Stream Monitor for Home Labs
- Glances vs Netdata: Two Free-Tier Monitors Compared
- Sentry Self-Hosted for Application Errors
- Heimdall vs Homepage vs Homer: Status Dashboards
- cAdvisor + Prometheus: Per-Container Metrics Done Right
- RustDesk vs MeshCentral: Self-Hosted Remote Desktop
- Grafana Alloy: Replacing the Agent After Deprecation
- OpenTelemetry Collector: One Pipeline to Rule Them All
- Why I Built Garrul
- Glance vs Homepage vs Dashy: Home Lab Dashboards Compared
- Backblaze B2 + rclone: Tiered Backup at Real-World Costs
- Beyond Akismet: Spam Protection for 2026
- Self-Hosted Email 2026: Mailcow vs Mailu vs Stalwart
- Ceph for a 3-Node Home Lab: When It Actually Pays Off
- Kdenlive Proxy Editing on Weak Hardware
- Cosmos vs CasaOS vs Umbrel: All-in-One Home Server OSes Compared
- Snapper for Btrfs Snapshots on Root Filesystems
- Plex Pass Hits $749. Time for Jellyfin.
- ZFS Replication with syncoid + sanoid: The Lazy Admin's Backup
- Kopia Repository Server: Multi-Host Backups Done Right
- Sec-Fetch & UA Client Hints in 2026: What Actually Leaks
- ZFS Send/Receive Over WireGuard for Off-Site Replication
- Restic Repository Maintenance: Prune, Check, Forget
- Blog Comments: Self-Host or SaaS?
- mergerfs + SnapRAID: The Poor Man's Unraid
- Object Storage on a Pi: SeaweedFS Cluster Walkthrough
- Bind Mounts vs NFS for Container Storage
- Bcachefs in 2026: Ready or Not
- Frigate + Coral TPU: AI Cameras Without the Subscription
- GPU Passthrough on Proxmox: Run LLMs in a VM
- Hoist: Label-Driven Docker Updates
- Immich Hardware Acceleration: Stop Cooking Your CPU
- Coolify vs Dokploy: Self-Hosted Vercel for People Who Don't Trust Vercel
- MinIO Is Archived: Move to Garage
- RAID 6 vs RAID 10: Two Dead Disks
- Incident Response for Self-Hosters
- RAID 0, 1, and 5: Pick One
- Escaping Zim: Migrate to Obsidian
- OpenCanary: Honeypots for Your Home Lab
- Pi-hole vs AdGuard Home: Block Ads for Your Whole Network
- Restic vs Borg vs Kopia: Backups That Actually Deduplicate
- Suricata vs Snort: Network Intrusion Detection That Actually Works
- Home Lab Hardware Guide 2026: What to Buy, What to Avoid, and What to Beg For
- Continue.dev vs Cody vs Tabby: AI Code Help Without the Cloud
- Jellyfin vs Plex: Your Media Deserves Better Than a Subscription
- Authentik vs Authelia: SSO for Your Self-Hosted Stack
- Cockpit vs Webmin: Web Admin Panels That Don't Make You Cry
- Cloudflare Tunnels: Beyond Port Forwarding
- Immich vs PhotoPrism: Escape Google Photos Without Losing Your Mind
- Prometheus + Grafana: Monitoring That Doesn't Lie to You
- Fail2ban vs CrowdSec: Blocking the Bots Actually Smartly
- Qdrant vs Weaviate vs Chroma: Vector DB Showdown
- Gitea vs Forgejo vs GitLab CE: Self-Hosted Git
- Wazuh: Open Source SIEM for Your Home Lab
- SBCs in 2026: Homelab on a Budget
- LUKS Full Disk Encryption on Linux
- Rootless Docker: Run Without Root
- Linux Privilege Escalation: The Defensive Playbook
- EmDash: WordPress Done Right, Finally
- Steam on Linux: It Actually Works Now
- De-Googling: Self-Hosted Replacements for Google Apps
- Running Gemma 4 Locally with Ollama
- Private Docker Registry with Harbor
- Proxmox NAT Bridge: One IP, Many VMs
- Docker Manager Showdown: Pick One
- Caddyfile Patterns That Actually Work
- Obsidian LiveSync: Self-Hosted Sync Without Paying for the Privilege
- Let's Encrypt Without Certbot
- Grafana Dashboard Variables: One Dashboard for All
- LLM Backends: vLLM vs llama.cpp vs Ollama
- The Zero-Trust Home Lab
- HAProxy: Load Balancing Done Right
- Stop Living Dangerously on :latest Docker
- Alpine vs. Distroless: Choosing Your Minimalist Base
- Distroless: How to Build Slim, Secure Containers
- Cloudflare DNS: Beyond Pointing Records
- LiteLLM & vLLM: One API to Rule All Your Models
- Vault vs Infisical: Secrets Management for Teams Who've Learned the Hard Way
- Traefik: Docker Routing with Labels
- Piper vs Coqui: Text-to-Speech on Your Own Hardware (Because AWS Polly Charges Per Character Like It's 1999 SMS)
- Nginx Proxy Manager for Normal Humans
- Open Source Licenses Explained: What You Can and Can't Do With Free Software
- Self-Hoster's Disaster Recovery: When Everything Goes Wrong at Once
- RAG on a Budget: Building a Knowledge Base with Ollama & ChromaDB
- Stable Diffusion vs ComfyUI vs Fooocus: AI Image Generation at Home
- Appwrite: Your Own Firebase, Minus the Google Surveillance Subscription
- VLAN Basics for Home Labs: Segment Your Network Before It Segments You
- n8n + LLM: Building Automations That Actually Think
- The Reverse Proxy Timeout That Kills Long Uploads
- Uptime Kuma: Status Pages, Alerts, and Knowing Before Your Users Do
- Watchtower: Safe Container Auto-Updates
- The Header Your Reverse Proxy Keeps Dropping
- You Should Be Testing Your Restores
- IPv6 on Your Home Lab: You Should Care (Here's Why)
- DNS Over HTTPS and TLS: Encrypt Your DNS Before Your ISP Sells It
- Log Rotation for Self-Hosted Apps
- Self-Hosted Email Is Probably a Bad Idea
- NocoDB: Because Airtable Doesn't Need to Know Your Business
- Open WebUI vs LibreChat: Self-Hosted ChatGPT Alternatives Compared
- BGP in Your Home Lab: Dynamic Routing for People Who've Run Out of Static Routes
- Docker Compose Environment Variable Precedence
- Plausible vs Umami: Privacy-Friendly Analytics That Won't Creep Out Your Users
- Tailscale Deep Dive: Mesh VPN That Just Works (and Why That's Suspicious)
- Why Self-Hosted Apps Lose Data After Updates
- nmap for Your Own Network: What You Should Be Scanning
- Vaultwarden Organization Sharing: Password Management for Your Whole Household (or Team)
- Ollama Beyond the Basics: Model Management, Custom Models, and Optimization
- Reverse Proxy SSL: The Cert Chain Mistake Everyone Makes
- Nextcloud Advanced: Federation, Backups, and Making It Actually Performant
- BookStack vs Wiki.js: Picking Your Self-Hosted Documentation Platform
- Paperless-ngx: Scan It, Forget It, Find It Instantly
- Whisper & Faster-Whisper: Self-Hosted Speech-to-Text That Actually Works
- MinIO + Nextcloud: S3-Compatible Storage That's Actually Yours
- Portainer vs Dockge: Managing Containers Without the Terminal
- WireGuard Is Fast, But You're Leaving Performance on the Table
- Plex Optimization: Remote Access, Transcoding, and Taming the Beast
- Home Assistant + Node-RED: Automate Your Home Without Losing Your Mind
- Proxmox vs XCP-ng: Hypervisors for People Who Like Their Data Center at Home
- Wiki.js with GitSync: Documentation That Lives in Version Control Like It Should
- Vaultwarden vs Bitwarden: Own Your Passwords Before Someone Else Does
- n8n vs Node-RED: Automate Everything Without Learning to Code (Much)
- Ventoy: Boot Any OS, Any Time
- Understanding and Optimizing Docker’s daemon.json File
- Navigating the Storm: Analysis of Intel’s 13th and 14th Gen CPU Instability Issues
- Docker Networking Essential Guide for All Skill Levels
- Docker Volume Mounts: Essential Flags
- How to Transfer docker Images Without a Repository
- Understanding CMD and ENTRYPOINT in Dockerfiles
- Copying Files Between Docker Containers and Host Machines
- Dockerfile: Differences Between COPY and ADD
- Docker Strategies for Load Balancing and Failover
- Docker Networking: Connecting to the Host from a Container
- Understanding Docker vs. Full Virtual Machines (VMs)
- Multiple Actions with a Single docker exec Call
- Executing Commands with Asterisks in Docker
- WordPress, Docker, NGINX, and MySQL via Ansible
- How to securely deploy Cloudflare Tunnels
- Understanding and Optimizing Performance in Proxmox VE
- Automating Docker via Ansible
- Observability and Monitoring for Containers
- Docker vs Podman: Key Differences
- Ollama: Powerful Language Models on Your Own Machine
- Unleash the Power of LLMs with LocalAI
- Supercharge Your Homelab Monitoring with Zabbix
- A Guide to LXC/LXD
- Talos OS: API-Driven, Kubernetes-First OS
- Docker Compose: Orchestrating Multi-Container Applications
- Linux Home Lab Security: Planning for the Unexpected
- Wiki.js for your documentation in docker
- NocoDB DB Management System
- Appwrite Backend-as-a-service (BaaS)
- Wireguard VPN Server in Docker
- Install & use Doxygen via Docker
- Automatic Backup of Docker MySQL or MariaDB Containers
- WordPress on PHP-FPM & Caddy in Docker
- Docker Compose useful commands
- How to install NextCloud via Docker
- Install a php script in PHP-FPM & Caddy via Docker
- Install Caddy reverse proxy via Docker
- Access Docker socket via TCP
- Install docker on Ubuntu/Debian
- How to Upload an ISO to Proxmox (3 Ways)