YOUR VERCEL BILL JUST HIT $150 AGAIN

Deploy to a VPS.
Pay $150$5/month.

Step-by-step tutorials for deploying any app to a VPS. Exact commands, copyable file snippets, and fixes for the errors you will actually hit.

prerequisites upfront copy-paste blocks troubleshooting included self-host + deploy
Deploy Tutorials
Self-Host Tutorials
How to Self-Host Chatwoot on a VPS (Production Setup)

[self-host] chatwoot

How to Self-Host Chatwoot on a VPS (Production Setup)

Run Chatwoot customer support platform on your own VPS. Live chat, email, and social channels without per-agent pricing.

How to Self-Host Ghost CMS on a VPS (Production Setup)

[self-host] ghost

How to Self-Host Ghost CMS on a VPS (Production Setup)

Run Ghost CMS on your own VPS. Professional publishing platform without subscription fees.

How to Self-Host MinIO on a VPS (Production Setup)

[self-host] minio

How to Self-Host MinIO on a VPS (Production Setup)

Run MinIO S3-compatible object storage on your own VPS. Store files without cloud storage fees.

How to Self-Host n8n on a VPS (Production Setup)

[self-host] n8n

How to Self-Host n8n on a VPS (Production Setup)

Run n8n workflow automation on your own VPS. Build integrations without per-execution pricing.

How to Self-Host Plausible Analytics on a VPS (Production Setup)

[self-host] plausible

How to Self-Host Plausible Analytics on a VPS (Production Setup)

Run Plausible Analytics on your own VPS. Privacy-friendly, lightweight analytics without monthly fees.

How to Self-Host PocketBase on a VPS (Production Setup)

[self-host] pocketbase

How to Self-Host PocketBase on a VPS (Production Setup)

Run PocketBase on your own VPS. A single binary backend with SQLite, auth, and realtime out of the box.

How to Self-Host PostHog on a VPS (Production Setup)

[self-host] posthog

How to Self-Host PostHog on a VPS (Production Setup)

Run PostHog on your own VPS for product analytics without per-event pricing. Full control over your data.

How to Self-Host Supabase on a VPS (Production Setup)

[self-host] supabase

How to Self-Host Supabase on a VPS (Production Setup)

Run Supabase on your own VPS with HTTPS, persistent storage, and a deployment shape you can actually maintain.

How to Self-Host Uptime Kuma on a VPS (Production Setup)

[self-host] uptime-kuma

How to Self-Host Uptime Kuma on a VPS (Production Setup)

Run Uptime Kuma for self-hosted uptime monitoring. Beautiful status pages without monthly fees.

VPS Guides
AI-assisted beginner deployments need a source-of-truth checklist before hosting breaks

[guide] ai-assisted-deployment-source-of-truth-checklist

AI-assisted beginner deployments need a source-of-truth checklist before hosting breaks

Several fresh beginner threads point at the same gap between AI-generated instructions, website builders, GitHub, and real hosting. One user moved from Hostinger Horizon to Cursor/GitHub/Supabase to avoid higher builder pricing, but cannot tell why changes…

AI-assisted self-hosting breaks when logs, installers, and runtime state cross layers

[guide] ai-assisted-self-hosting-debug-layer-isolation

AI-assisted self-hosting breaks when logs, installers, and runtime state cross layers

Fresh support threads show a useful content angle: AI and docs can get users most of the way through self-hosting, but the hard failures happen across boundaries. One user spent two days trying to install uCore/CoreOS in a Proxmox VM with qcow2 and ignition…

The Last Mile of Alerting: Where Uptime Kuma, n8n Triggers, and Your Pager Disagree

[guide] alerting-last-mile-uptime-kuma-n8n-pager

The Last Mile of Alerting: Where Uptime Kuma, n8n Triggers, and Your Pager Disagree

Your monitoring detects the outage perfectly and the alert still never reaches you. The last mile — delivery, dedup, escalation — is where homelab alerting actually breaks.

Beginners Don't Want a Docker Tutorial — They Want FreshRSS and n8n Running

[guide] app-first-install-paths-freshrss-n8n

Beginners Don't Want a Docker Tutorial — They Want FreshRSS and n8n Running

The fastest way to lose a new self-hoster is to make them learn Docker before they get anything working. App-first install paths put the win first and the concepts later.

An Arr-Stack Deployment Map: Where Sonarr, Downloaders, and Jellyfin Should Live

[guide] arr-stack-deployment-map-lxc-docker-bare-metal

An Arr-Stack Deployment Map: Where Sonarr, Downloaders, and Jellyfin Should Live

The arr stack breaks for beginners before the first deploy — nobody tells them where the torrent client, bind mounts, and media server should actually live. A deployment map that keeps paths consistent.

VPS Backup Strategy: Complete Guide

[guide] backup-strategy

VPS Backup Strategy: Complete Guide

Implement reliable backups for your VPS including Docker volumes, databases, and application data with automated scheduling and offsite storage.

Beginner homelabs need an app-first checklist before buying storage, servers, or noisy rack gear

[guide] beginner-homelab-app-first-checklist-before-hardware

Beginner homelabs need an app-first checklist before buying storage, servers, or noisy rack gear

Very fresh homelab and self-hosted threads keep showing beginners choosing hardware before they have a stable application plan. One user already runs Immich and Jellyfin on an old laptop but is unsure what storage size, drive class, and server path fit a…

Beginners need one exposure model before mixing tunnels, reverse proxies, VLANs, and Tailscale

[guide] beginner-homelab-exposure-model-tunnels-proxies-vlans

Beginners need one exposure model before mixing tunnels, reverse proxies, VLANs, and Tailscale

Fresh self-hosting threads show beginners combining the right words without a safe operating model. One new self-hoster wants Minecraft, Jellyfin, Tailscale, maybe NAS/cloud storage, Nginx, Cloudflare tunnels or DDNS, Docker or VLANs, fail2ban, firewall…

When a Budget Homelab Beats a Pile of Small VPS Bills — and When It Doesn't

[guide] budget-homelab-vs-small-vps-mixed-stack

When a Budget Homelab Beats a Pile of Small VPS Bills — and When It Doesn't

Beginners are swapping $5/month VPS instances for one mini PC running a mixed stack. Sometimes that's smart, sometimes it just moves the cost to your time. How to decide.

[guide] cgnat-clean-domain-access-without-exposing-443

Reaching Your Self-Hosted Apps Behind CGNAT — Without Exposing Port 443

CGNAT removes inbound ports, not your options. A decision tree for clean domains and private access to Jellyfin and Immich using VPS relays, Cloudflare Tunnel, Tailscale, and WireGuard.

Moving From Cloud to Homelab? Draw the Compute and Storage Boundaries First

[guide] cloud-to-homelab-migration-compute-storage-boundaries

Moving From Cloud to Homelab? Draw the Compute and Storage Boundaries First

Leaving rented cloud for self-hosted gear is exciting until you're staring at a NAS, a DAS, and a Proxmox box wondering what goes where. A decision tree for compute and storage boundaries before apps move home.

Container-First Linux Troubleshooting: A Logs, Process, and Network Path for VPS Apps

[guide] container-first-linux-troubleshooting-logs-process

Container-First Linux Troubleshooting: A Logs, Process, and Network Path for VPS Apps

Troubleshooting a containerized app on a VPS isn't classic Linux debugging — the process, logs, and network live one layer in. A repeatable path from 'it's broken' to the actual cause.

Container monitoring is moving from uptime dashboards to egress policy, backup-state widgets, and service-level proof

[guide] container-monitoring-egress-backup-service-proof

Container monitoring is moving from uptime dashboards to egress policy, backup-state widgets, and service-level proof

Fresh self-hosting posts point to a more specific monitoring need than simple green/red uptime. One homelab user running rootless Podman quadlet services wants per-container outbound blocking, domain allowlists, and traffic visibility but cannot see how to…

Why Coolify Deploys Are Slow (And How to Make Them Vercel-Fast)

[guide] coolify-deploy-speed-tuning

Why Coolify Deploys Are Slow (And How to Make Them Vercel-Fast)

Coolify deploys feel slow because the defaults favour simplicity over speed. Three causes — undersized VPS, no build cache, wrong build strategy — and the fixes.

Coolify logs after Vercel — closing the route-level observability gap without OTel

[guide] coolify-route-level-logs-vercel-migrants

Coolify logs after Vercel — closing the route-level observability gap without OTel

Developers leaving Vercel for Coolify hit the same wall: where are the searchable route-level logs? Here's the smallest setup that gets you there without a full OpenTelemetry stack.

Why Docker CORS Errors Keep Coming Back: The Proxy Network Drift Problem

[guide] cors-docker-network-drift

Why Docker CORS Errors Keep Coming Back: The Proxy Network Drift Problem

Recurring CORS errors in your Docker stack? They usually trace to Docker network attachment, not your CORS headers. Here's how to fix it permanently.

Cron monitoring is really automation failure visibility — get the signal before the stack

[guide] cron-monitoring-is-failure-visibility

Cron monitoring is really automation failure visibility — get the signal before the stack

Operators ask for cron monitoring when what they want is to know that backups, syncs, and cleanups didn't silently fail. The fix starts with heartbeats, not a monitoring platform.

If You Ship a Self-Hostable App, Your Deployment Docs Need This Checklist

[guide] deployment-docs-checklist-for-self-hostable-apps

If You Ship a Self-Hostable App, Your Deployment Docs Need This Checklist

Maintainers ship great Docker images and then watch users break on the first production install — SSL, env files, backups, upgrades, rollback. A deployment-docs checklist that survives real installs.

Small web app owners need deployment edge checks for domains, CORS, certificates, and managed-hosting handoffs

[guide] deployment-edge-checks-domains-cors-certificates

Small web app owners need deployment edge checks for domains, CORS, certificates, and managed-hosting handoffs

Fresh webdev and hosting threads show solo builders struggling at the boundary between app code and the platform edge. A MERN app with a Docker backend on Hugging Face Spaces and a Vercel frontend broke because an edge/proxy layer stopped returning the…

[guide] docker-compose-drift-preflight

Docker Compose Drift: How to Catch Dev/Prod Differences Before They Break Your Deploy

Most "works on staging, broken on prod" deploys are docker-compose drift — a service name, env var, or network alias that diverged silently across files. A 30-line preflight catches nine in ten before the deploy runs.

The Hidden Prerequisites Docker Compose Setup Scripts Keep Missing

[guide] docker-compose-hidden-prerequisites-preflight

The Hidden Prerequisites Docker Compose Setup Scripts Keep Missing

A Compose file isn't a full deployment. Setup scripts skip the kernel modules, sysctls, host directories, and permissions an app needs — and the failure shows up after 'it started'.

Docker health checks: sane defaults for every self-hosted service

[guide] docker-health-checks-sane-defaults-for-self-hosted-services

Docker health checks: sane defaults for every self-hosted service

Every new container gets the same ritual: write a health check, wire up an alert, test it, forget about it. Here are copy-paste health checks for the services you actually run.

[guide] docker-socket-safe-management-boundaries

Stop Exposing the Docker Socket: Safer Management Boundaries for a Homelab

Publishing the Docker socket to your LAN is handing out root on the whole box. Here are safer boundaries: SSH contexts, a scoped socket proxy, and real network segmentation.

Docker Volume Backups Without Restore Drills Are Just Hope

[guide] docker-volume-restore-drill

Docker Volume Backups Without Restore Drills Are Just Hope

Most self-hosters back up Docker volumes nightly and never restore them. A scripted restore drill is what turns a backup into something you can rely on.

Dokploy server-to-server migration — volume-safe checklist for Hetzner moves

[guide] dokploy-server-to-server-migration-checklist

Dokploy server-to-server migration — volume-safe checklist for Hetzner moves

Dokploy migrations look like 'export the panel and import on the new server.' The volume question is what makes it actually risky. Here's the volume-safe migration checklist.

Small self-hosted sites fail at domain, media, Cloudflare, and app-runtime edges before the app idea fails

[guide] domain-cloudflare-media-runtime-preflight-small-sites

Small self-hosted sites fail at domain, media, Cloudflare, and app-runtime edges before the app idea fails

Fresh WordPress, Ghost, and self-hosted app threads show non-enterprise operators getting stuck around the deployment edges: domains that do not attach cleanly, media management after a migration, Cloudflare/page-load behavior, and self-hosted search tools…

Domain to Port 3000: The Mental Model Every VPS Tutorial Skips

[guide] domain-to-port-mental-model-vps-routing

Domain to Port 3000: The Mental Model Every VPS Tutorial Skips

You bought a domain and your app runs on port 3000, but typing example.com in a browser shows nothing. Here is the full path — DNS, kernel, proxy, app, cert — that every existing tutorial assumes you already understand.

Family Self-Hosters Need a Backup and Rollback Preflight Before Every App Upgrade

[guide] family-self-host-backup-rollback-before-upgrades

Family Self-Hosters Need a Backup and Rollback Preflight Before Every App Upgrade

When the household depends on your server, a bad upgrade isn't a hobby setback — it's everyone's photos and files down. A two-minute backup-and-rollback preflight before you hit update.

Your First Home Server: The OS and Storage Decisions That Decide Everything

[guide] first-home-server-os-and-storage-decisions

Your First Home Server: The OS and Storage Decisions That Decide Everything

Beginners can install one app, then stall on the questions that actually matter: which operating model, where the data lives, and what survives growth. A first-week path that won't trap you.

First-time self-hosted app launches need preflight maps before Docker, hosting plans, and per-client stacks

[guide] first-self-hosted-app-launch-preflight-map

First-time self-hosted app launches need preflight maps before Docker, hosting plans, and per-client stacks

Fresh Reddit threads show beginners and small freelancers getting blocked before the application itself is the hard part. One Immich beginner wants to run it on Windows but gets stuck at Docker prerequisites. A Next.js freelancer is planning a separate app…

GitHub Actions Deploy to VPS: Complete CI/CD Guide

[guide] github-actions-vps

GitHub Actions Deploy to VPS: Complete CI/CD Guide

Set up automated deployments from GitHub to your VPS using GitHub Actions with SSH, Docker, and zero-downtime strategies.

Home Assistant reliability needs event evidence before adding Proxmox, Frigate, or auto-remediation

[guide] home-assistant-reliability-evidence-before-complexity

Home Assistant reliability needs event evidence before adding Proxmox, Frigate, or auto-remediation

Recent Home Assistant threads show operators trying to decide whether more infrastructure will help when the missing piece is often evidence. One user with a stable bare-metal Home Assistant mini PC is adding cameras and wonders whether Proxmox or Frigate is…

Power, solar, UPS, and DNS roles are becoming first-class homelab monitoring targets

[guide] home-server-monitoring-beyond-uptime-power-dns-certificates

Power, solar, UPS, and DNS roles are becoming first-class homelab monitoring targets

Recent home-ops threads show monitoring expanding beyond whether a web app responds. Operators want to catch solar-panel variance, UPS and power-failure risk, fixtures killing devices after flashes, and whether a backup Pi-hole still boots into the right…

Home-server reliability starts with UPS shutdowns, tested boot media, and rollback paths before the next reboot

[guide] home-server-ups-boot-media-rollback-before-reboot

Home-server reliability starts with UPS shutdowns, tested boot media, and rollback paths before the next reboot

Fresh homelab and Unraid posts show reliability pain clustering around the parts operators only test during failures: UPS/NUT compatibility and safe shutdown timing, Unraid 7.3.1 boot-device hangs, ZFS-to-Btrfs recovery after corruption and kernel panics…

Homelab Database Sprawl: The Problem That Arrives After Docker App Sprawl

[guide] homelab-database-sprawl-consolidation

Homelab Database Sprawl: The Problem That Arrives After Docker App Sprawl

Every self-hosted app ships its own Postgres or MySQL, and soon you're running eight database containers you can't name. How to consolidate without coupling apps together.

Beyond Uptime: Monitoring the Real World — UPS, Floods, and Camera Streams

[guide] homelab-monitoring-real-world-events-ups-floods-cameras

Beyond Uptime: Monitoring the Real World — UPS, Floods, and Camera Streams

Your homelab can watch more than its own services. People use it to catch basement floods, UPS failures, and front-door events. How to add real-world monitoring without overbuilding a NOC.

Immich Behind a Reverse Proxy: The App-Specific Edge Cases That Break It

[guide] immich-behind-reverse-proxy-edge-cases

Immich Behind a Reverse Proxy: The App-Specific Edge Cases That Break It

Immich works on localhost and then fails behind nginx or Traefik — large uploads rejected, WebSockets dead, the app convinced it lives on the wrong URL. The Immich-specific fixes.

An Easy Immich Install Path for People Who Don't Live in a Terminal

[guide] immich-easy-install-path-for-nontechnical-users

An Easy Immich Install Path for People Who Don't Live in a Terminal

Immich's power scares off the people who'd benefit most. A gentler install path that skips the hand-edited Compose file and still lands a real, updatable, backed-up instance.

Immich Post-Install Diagnostics: Volume Mounts, Sidecars, Timezones, and the Database Boundary

[guide] immich-post-install-volume-database-diagnostics

Immich Post-Install Diagnostics: Volume Mounts, Sidecars, Timezones, and the Database Boundary

Immich is installed but misbehaving — the ML sidecar can't see your photos, timestamps are off by hours, an upgrade complains about the database. A diagnostics checklist for the volume and DB boundary.

Immich Upgrade Anxiety Is Really a Database-Restore Problem

[guide] immich-upgrade-database-restore-drill

Immich Upgrade Anxiety Is Really a Database-Restore Problem

Every Immich release note warns about breaking changes, and a generic file backup won't save you. The thing that makes Immich upgrades calm is a tested database restore, not crossed fingers.

Intermittent 502s on a Self-Hosted VPS: It's a Stale Proxy Upstream

[guide] intermittent-502-stale-proxy-upstream

Intermittent 502s on a Self-Hosted VPS: It's a Stale Proxy Upstream

Apps that work for hours, then start failing 502 until you reload the proxy, almost always have a stale upstream — IP drift, DNS cache, or a dropped network attachment. Here's how to diagnose it in 60 seconds and the four fixes that eliminate the bug class.

Jellyfin on Linux: Choosing Between Docker Compose, Portainer, and a Template

[guide] jellyfin-deploy-method-compose-portainer-template

Jellyfin on Linux: Choosing Between Docker Compose, Portainer, and a Template

Beginners stall on the first decision — how to actually deploy Jellyfin. Raw Compose, Portainer's UI, or a one-click template? A clear comparison so you pick once and move on.

Jellyfin Docker Troubleshooting: From Library Scans That Miss Files to Reading the Logs

[guide] jellyfin-docker-troubleshooting-scans-to-logs

Jellyfin Docker Troubleshooting: From Library Scans That Miss Files to Reading the Logs

Most Jellyfin problems are one of three things — a library scan that won't see files, hardware transcoding that isn't, or playback that fails. A path from symptom to the right log line.

Restarting a Jellyfin homelab on TrueNAS, ZimaOS, or Ubuntu is an app-data and rollback decision first

[guide] jellyfin-homelab-os-rebuild-app-data-rollback

Restarting a Jellyfin homelab on TrueNAS, ZimaOS, or Ubuntu is an app-data and rollback decision first

Fresh homelab and NAS threads show operators treating OS choice as a clean install question when the real risk is app-data ownership, boot-device recovery, and rollback after the first reboot. A ServerCompass article can frame OS selection around where…

Let's Encrypt Renewed Fine. Your Proxy Still Serves the Old Cert. Here's the Safe Fix.

[guide] lets-encrypt-renew-reload-docker-proxy

Let's Encrypt Renewed Fine. Your Proxy Still Serves the Old Cert. Here's the Safe Fix.

Certificate renewal is only half the job. If Nginx or Traefik keeps the old cert loaded, you need a safe reload pattern, not a full restart roulette.

Do You Need a Domain Before Setting Up a Mail Server? (Yes — Here's Why)

[guide] mail-server-domain-prerequisites

Do You Need a Domain Before Setting Up a Mail Server? (Yes — Here's Why)

Self-hosting email? You need the domain before you spin up the server. Here's the order of operations: domain, DNS, then mail server install.

Maintenance windows done right: mute the noise, not the real outages

[guide] maintenance-windows-mute-noise-not-real-outages

Maintenance windows done right: mute the noise, not the real outages

Planned upgrades shouldn't spam your alerts. But broad muting hides real breakage. Here's how to set maintenance windows that suppress expected noise while keeping genuine incidents visible.

Small teams need a safe sequence for turning manual server edits into deployable operations

[guide] manual-server-edits-to-repeatable-deploy-operations

Small teams need a safe sequence for turning manual server edits into deployable operations

Fresh webdev and DevOps threads show small teams outgrowing hand-maintained servers. One new DevOps hire inherited Laravel and Node apps where .env files, Nginx configs, dependencies, background jobs, secrets, database changes, and logs all live partly…

A Safer Reverse-Proxy Decision Tree for Self-Hosted Media Apps

[guide] media-app-reverse-proxy-decision-tree

A Safer Reverse-Proxy Decision Tree for Self-Hosted Media Apps

Should Jellyfin and Immich be public behind a reverse proxy, private over a VPN, or both? A decision tree that weighs privacy, family access, and streaming bandwidth instead of guessing.

Multi-Terabyte Media Libraries Need a Tiered Backup Policy, Not All-or-Nothing

[guide] media-library-tiered-backup-policy

Multi-Terabyte Media Libraries Need a Tiered Backup Policy, Not All-or-Nothing

You back up app state religiously and freeze on the photo and media library — too big to replicate, too precious to lose. A tiered policy: what gets full backup, what gets cold storage, what gets re-ripped.

Media Servers Keep Hitting the Same Three Walls: Proxmox Passthrough, GPU Sizing, Storage

[guide] media-server-proxmox-gpu-passthrough-sizing

Media Servers Keep Hitting the Same Three Walls: Proxmox Passthrough, GPU Sizing, Storage

Jellyfin and Immich on Proxmox run into the same trio every time — GPU passthrough that won't stick, transcoding sized wrong, and storage that fights the hypervisor. Clear each wall.

Media servers moved into VMs and containers need mount and client-resume proof before family users rely on them

[guide] media-server-vm-container-mount-client-proof

Media servers moved into VMs and containers need mount and client-resume proof before family users rely on them

Fresh Jellyfin, Plex, and media-server threads show that a media stack can look installed while still failing at the boundary users actually hit. One Jellyfin user runs the server in a NAS container and can start playback, but the desktop app on Bazzite…

Microweber + Dokploy: The 2-Minute Deploy Debugging Checklist

[guide] microweber-dokploy-deploy-checklist

Microweber + Dokploy: The 2-Minute Deploy Debugging Checklist

A practical pre-deploy and post-failure checklist for self-hosting Microweber via Dokploy. Catches 80% of common breakage.

Moving Immich and Nextcloud Data Without Corrupting App-Owned State

[guide] migrate-immich-nextcloud-data-without-breaking-app-state

Moving Immich and Nextcloud Data Without Corrupting App-Owned State

Copying an app's files by hand is how migrations break. Immich and Nextcloud own a database and an index alongside the files — move all of it together, or not at all.

How to Run Multiple Apps on One VPS Without Port Collisions

[guide] multi-app-vps-port-collisions

How to Run Multiple Apps on One VPS Without Port Collisions

The reverse proxy pattern explained for new self-hosters. Why port 80 only fits one app, and how Caddy/Traefik/nginx solve it.

Multiple Domains on a Single VPS: Complete Guide

[guide] multiple-domains-vps

Multiple Domains on a Single VPS: Complete Guide

Host multiple websites and applications on one VPS using Nginx virtual hosts and Docker containers with proper SSL for each domain.

Self-Hosted n8n: The Production-Readiness Checklist the Install Guide Skips

[guide] n8n-self-host-production-readiness-checklist

Self-Hosted n8n: The Production-Readiness Checklist the Install Guide Skips

You followed the n8n install guide. The container is running. Production starts ten steps later — backups, restore drills, metrics, version pinning, workflow git history. The five gaps that turn a toy setup into a real one.

Automation builders need VPS sizing checks before moving n8n and databases out of Docker Desktop

[guide] n8n-vps-sizing-persistence-preflight

Automation builders need VPS sizing checks before moving n8n and databases out of Docker Desktop

Fresh n8n threads show small automation builders leaving local Docker Desktop and immediately hitting provider and resource-sizing uncertainty. One user wants to run n8n, Qdrant, Postgres, and Gotenberg on a production-like VPS without overpaying or…

NAS-hosted Jellyfin failures cluster around bind mounts, library state, and update rollback

[guide] nas-jellyfin-bind-mount-library-rollback-checks

NAS-hosted Jellyfin failures cluster around bind mounts, library state, and update rollback

Fresh Jellyfin and self-hosting posts show the same operator pain from multiple angles: the media server is running, but the boundary between Docker, NAS paths, and app state is fragile. One new self-hoster cannot deploy a Portainer/Jellyfin stack because…

Splitting App Storage from Bulk Storage on a NAS-plus-Mini-PC Homelab

[guide] nas-mini-pc-app-storage-split-before-docker

Splitting App Storage from Bulk Storage on a NAS-plus-Mini-PC Homelab

The NAS-plus-mini-PC combo only stays fast and reliable if you decide early what lives on the SSD and what lives on the spinning pool. A clear split before Docker piles up.

Nextcloud in Production Needs Preflights for CPU Spikes, Backups, and SMTP

[guide] nextcloud-production-preflight-cpu-backups-smtp

Nextcloud in Production Needs Preflights for CPU Spikes, Backups, and SMTP

A fresh Nextcloud feels fine and then chokes — preview generation pins the CPU, the backup was never real, password resets bounce. The preflights that make it production-grade.

Nginx Reverse Proxy for Node.js: Complete VPS Guide

[guide] nginx-reverse-proxy

Nginx Reverse Proxy for Node.js: Complete VPS Guide

Set up Nginx as a reverse proxy for Node.js applications with SSL, load balancing, and production-ready configuration.

Observability Migrations That Don't Hand You a Surprise Query Bill

[guide] observability-migration-without-query-bills

Observability Migrations That Don't Hand You a Surprise Query Bill

Small teams leaving a hosted observability vendor often trade a data bill for a query bill. How to migrate to Grafana/Prometheus/Loki without metering yourself into the same trap.

OS End-of-Life Migrations Expose How Fragile a Multi-App VPS Really Is

[guide] os-eol-migration-multi-app-vps

OS End-of-Life Migrations Expose How Fragile a Multi-App VPS Really Is

A single-box VPS running eight apps is fine until the OS hits end of life and every app must move at once. How to make the OS-EOL migration boring instead of terrifying.

PaaS to VPS migration checklist: what Vercel and Railway handled for you

[guide] paas-to-vps-migration-checklist-what-vercel-railway-handled-for-you

PaaS to VPS migration checklist: what Vercel and Railway handled for you

Moving off managed PaaS feels liberating until you realize DNS, SSL, env secrets, deploy rollback, and log routing were all invisible. A step-by-step checklist so nothing falls through the cracks.

Pi plus NAS — the practical self-host starter if you keep mounts and backups boring

[guide] pi-plus-nas-practical-self-host-starter

Pi plus NAS — the practical self-host starter if you keep mounts and backups boring

A Raspberry Pi paired with a NAS is the right starter stack for self-hosting — but only if you keep the storage paths, mount conventions, and backups boring. Here's the discipline that makes it durable.

Pi-to-NAS migrations need app-data and restore plans before RAID shopping

[guide] pi-to-nas-migration-app-data-restore-plan

Pi-to-NAS migrations need app-data and restore plans before RAID shopping

Fresh homelab threads show users trying to move from small Raspberry Pi or improvised storage setups into dedicated NAS hardware while still deciding how app data, media, RAID, and backups should work. One operator wants to migrate a Pi NAS with Docker…

Plex-to-Jellyfin migrations need library integrity and client-connection checks before the cutover

[guide] plex-to-jellyfin-migration-library-client-checks

Plex-to-Jellyfin migrations need library integrity and client-connection checks before the cutover

Fresh Jellyfin and Immich threads show that media-server migration risk is not only about copying files. One user is moving from Plex to Jellyfin and sees music albums missing even though folders, permissions, and rescans look right. Another has Roku clients…

Before You Upgrade a Home Server, Make Sure You Can Still Get Back In

[guide] pre-upgrade-network-boot-preflight-remote-access

Before You Upgrade a Home Server, Make Sure You Can Still Get Back In

A small network or bootloader mistake during an upgrade can lock you out before the app layer even matters — and a remote box is hard to fix when you can't reach it. A pre-upgrade access preflight.

Proxmox Backup Planning Has Moved From 'Install Tutorials' to Selective Offsite

[guide] proxmox-backup-selective-offsite-planning

Proxmox Backup Planning Has Moved From 'Install Tutorials' to Selective Offsite

You've got Proxmox Backup Server running — now the real question. Not everything deserves an offsite copy, and backing up everything wastes space and money. How to back up selectively.

Planning a First Proxmox Server That Bundles Media, Photos, Backups, and Logging

[guide] proxmox-first-server-planning-bundle

Planning a First Proxmox Server That Bundles Media, Photos, Backups, and Logging

First-time Proxmox builds now try to do everything at once — Jellyfin, Immich, backups, and monitoring on one box. A planning order that keeps that ambition from collapsing under itself.

Proxmox Disaster Recovery: Plan the Full-Host Restore Before the Host Dies

[guide] proxmox-full-host-disaster-recovery-plan

Proxmox Disaster Recovery: Plan the Full-Host Restore Before the Host Dies

Having PBS backups isn't a recovery plan. When a Proxmox host dies, freezes, or must be rebuilt on new hardware, you need the whole path written down — host config, VM state, storage, and order.

Proxmox Migrations Need Confidence Checks for Host Crashes and Storage Latency

[guide] proxmox-migration-confidence-checks

Proxmox Migrations Need Confidence Checks for Host Crashes and Storage Latency

Moving VMs and containers between Proxmox hosts works in the demo and bites in production — a crash mid-migration, latency that corrupts, a cluster that won't quorum. The checks that de-risk it.

Proxmox and NAS rebuilds need storage ownership decisions before the apps move

[guide] proxmox-nas-storage-ownership-before-apps-move

Proxmox and NAS rebuilds need storage ownership decisions before the apps move

Several fresh homelab posts are really asking the same preflight question: who owns storage when the server is rebuilt? One Proxmox user is reinstalling across three SSDs before hosting OPNsense, Vaultwarden, Omada, Pi-hole, VPN, and other services. Another…

A Passthrough Preflight for Proxmox: IOMMU, Boot Order, and Hardware Isolation

[guide] proxmox-passthrough-iommu-boot-isolation-preflight

A Passthrough Preflight for Proxmox: IOMMU, Boot Order, and Hardware Isolation

Stacking GPU passthrough, an HBA to a TrueNAS VM, and LXC AI workloads on one Proxmox box works until a reboot reshuffles everything. A preflight for IOMMU groups, driver placement, and boot order.

A Sane Proxmox Storage Plan: TrueNAS, LXC, NFS, and Backups Without Overlap

[guide] proxmox-storage-plan-truenas-lxc-nfs-backups

A Sane Proxmox Storage Plan: TrueNAS, LXC, NFS, and Backups Without Overlap

Proxmox storage gets risky when a TrueNAS VM, LXC bind mounts, NFS shares, and PBS backups all claim the same disks. A layout that keeps the layers from fighting.

Proxmox Recovery When the VM Console Freezes but SSH and Apps Still Work

[guide] proxmox-vm-console-frozen-recovery

Proxmox Recovery When the VM Console Freezes but SSH and Apps Still Work

The noVNC console is black and unresponsive, yet the VM's apps answer and SSH works fine. Counterintuitively, that's good news — here's how to recover without a risky hard reset.

Self-Hosted Operators Want Monitoring Beyond a Basic Uptime Check

[guide] public-service-monitoring-beyond-uptime

Self-Hosted Operators Want Monitoring Beyond a Basic Uptime Check

A green 'it responds' check misses expired certs, broken logins, silent data staleness, and slow-but-up services. What real public-service monitoring looks like beyond a ping.

[guide] release-linked-health-checks-vps

Release-Linked Health Checks: Closing the Post-Deploy Blind Spot on a Self-Hosted VPS

Your CI says the deploy succeeded. Your uptime check is green. And production is still broken. The fix is wiring release events into the verification step so 'deployed' and 'deployed-and-verified' are different states — here is the four-step pattern.

When Self-Hosted Fleets Outgrow a Single Tunnel: Multi-Site Remote Access

[guide] remote-self-host-fleet-access-beyond-simple-tunnels

When Self-Hosted Fleets Outgrow a Single Tunnel: Multi-Site Remote Access

One WireGuard tunnel is fine for one box. Across several sites and a dozen devices it turns into a mess of overlapping subnets and manual keys. Here's how to scale remote access.

Reverse-proxy success needs application-level proof, not just a working domain

[guide] reverse-proxy-application-level-proof-after-domain-works

Reverse-proxy success needs application-level proof, not just a working domain

Fresh Reddit threads show self-hosters getting past the first domain or certificate milestone, then discovering that the application path is still broken. One Nextcloud snap user can reach the main app through a Synology reverse proxy, but Collabora…

When TLS at the Reverse Proxy Is Enough on a Single VPS (and When It Is Not)

[guide] reverse-proxy-edge-tls-vs-end-to-end

When TLS at the Reverse Proxy Is Enough on a Single VPS (and When It Is Not)

If Nginx or Traefik terminates HTTPS on the same VPS that runs your app, internal TLS is usually unnecessary. The real question is where the trust boundary sits.

Rollback and alert context in the same place — design for the 3am decision

[guide] rollback-plus-alert-context-same-place

Rollback and alert context in the same place — design for the 3am decision

Rollback alone isn't enough when a deploy fails at night. Operators need the health signal, log context, and recovery action wired together so the 3am decision is fast.

Running Your Router in a VM? Check These Failure Modes Before Apps Depend on It

[guide] router-in-a-vm-homelab-failure-modes

Running Your Router in a VM? Check These Failure Modes Before Apps Depend on It

Virtualizing OPNsense on the same Proxmox box that runs your apps is elegant until a host reboot takes the whole network — including your way back in — down with it. The failure modes to plan for.

Leaving SaaS for a One-Box VPS? Launch It Behind These Guardrails

[guide] saas-avoidant-vps-launch-checklist

Leaving SaaS for a One-Box VPS? Launch It Behind These Guardrails

Choosing root access and a one-box Docker stack to escape SaaS is the easy part. The launch checklist — provider, backups, deploys, monitoring — is what keeps the box from becoming a liability.

Self-Hosted AI Turns Capacity Planning Into a Deployment Problem

[guide] self-host-ai-capacity-planning-host-sizing

Self-Hosted AI Turns Capacity Planning Into a Deployment Problem

Adding a local LLM to your homelab isn't installing an app — it's a capacity decision. How to size the host (RAM, VRAM, disk, thermals) before the model decides for you.

Sizing Self-Hosted AI and Search Apps: Limits and Timeouts Before You Deploy

[guide] self-host-ai-search-resource-sizing-timeouts

Sizing Self-Hosted AI and Search Apps: Limits and Timeouts Before You Deploy

Self-hosted LLMs, vector stores, and search engines fall over from defaults, not bugs. Set memory limits, timeouts, and disk headroom before the first deploy.

Self-Hosted Music Servers Need a Web-First Deployment Path Across Mobile and Desktop

[guide] self-host-music-server-web-first-navidrome

Self-Hosted Music Servers Need a Web-First Deployment Path Across Mobile and Desktop

Your music library should play in a browser, on your phone, and on the desktop — from one self-hosted server. How to deploy Navidrome (or similar) web-first so every client just works.

Self-Host a Public Load Balancer? Most Small Teams Need a Reverse Proxy Instead

[guide] self-host-public-load-balancer-decision-guide

Self-Host a Public Load Balancer? Most Small Teams Need a Reverse Proxy Instead

Most one-VPS teams asking about self-hosting a public load balancer actually need a reverse proxy. Here is the decision framework, the realistic Caddy/Traefik/Nginx/HAProxy tradeoffs, and the no-downtime deploy pattern that does not require a multi-host LB.

Self-Hosted Runbooks Fail When One Person Owns the Config Behind the 2am Page

[guide] self-host-runbooks-bus-factor-oncall

Self-Hosted Runbooks Fail When One Person Owns the Config Behind the 2am Page

Your homelab's bus factor is one, and that one is asleep at 2am. How to write runbooks and share access so a service outage isn't a single-person emergency.

Self-hosted backup confidence breaks on quota, snapshot, and boot-device semantics rather than copy commands

[guide] self-hosted-backup-restore-proof-quota-snapshots-boot

Self-hosted backup confidence breaks on quota, snapshot, and boot-device semantics rather than copy commands

Recent TrueNAS, Proxmox, and Unraid posts show that backup anxiety is often caused by hidden platform semantics, not a missing rsync command. One TrueNAS user sees a Proxmox backup dataset reporting far more used space than its quota while daily snapshots…

Self-hosted document, photo, and media libraries need data-shape planning before the app choice

[guide] self-hosted-data-shape-planning-before-app-choice

Self-hosted document, photo, and media libraries need data-shape planning before the app choice

A cluster of fresh self-hosted, Immich, and Jellyfin threads shows users stuck less on installation and more on how their real data should be organized: medical receipts, split photo archives, shared albums, kids libraries, and music loudness. This supports…

Self-hosted edge fixes need causal proof across mDNS, ACME, Caddy callbacks, and intermittent 404s

[guide] self-hosted-edge-fixes-causal-proof-mdns-acme-callbacks

Self-hosted edge fixes need causal proof across mDNS, ACME, Caddy callbacks, and intermittent 404s

Fresh posts keep separating “the change worked once” from “the edge path is understood.” A Home Assistant user got IKEA Matter devices working after changing UniFi mDNS settings but still does not know why. A DevOps post says HAProxy ACME issuance worked…

Self-hosted monitoring buyers want logs, health, certificates, canaries, and local AI in one actionable workflow

[guide] self-hosted-monitoring-stack-logs-certs-canaries

Self-hosted monitoring buyers want logs, health, certificates, canaries, and local AI in one actionable workflow

A fresh n8n thread asks how to build a self-hosted monitoring project that pulls server, app, network, security, and resource signals into Grafana-style views and uses local Ollama analytics. Nearby threads show adjacent operators solving narrower monitoring…

Self-hosted app upgrades need reversible database and boot-media plans before the next update

[guide] self-hosted-upgrade-preflight-database-boot-rollback

Self-hosted app upgrades need reversible database and boot-media plans before the next update

Fresh threads keep showing upgrade risk at two layers: application data and the host boot path. An Immich user is staying on a custom Docker image because the database migration has no reverse path. An Unraid user describes data corruption, daily backup…

Shared Hosting to VPS Migration: The Rollback Plan Most Guides Skip

[guide] shared-hosting-to-vps-migration-rollback-plan

Shared Hosting to VPS Migration: The Rollback Plan Most Guides Skip

You can read every VPS setup guide and still not migrate, because nobody answers the real blocker: if it breaks at 9 PM Saturday, can you put it back? The seven-step cutover where every step has a known rollback.

Single VPS to multi-host: the three-rung migration ladder

[guide] single-vps-to-multi-host-migration-ladder

Single VPS to multi-host: the three-rung migration ladder

Your single VPS is at 80% RAM and the database is fighting the app for IO. Most guides jump straight to Kubernetes — but there's a pragmatic three-rung ladder, and most teams never climb past rung 2.

Small Next.js Apps Are Getting Priced Out of Vercel Plus Its Add-Ons

[guide] small-nextjs-apps-vercel-to-vps-cost

Small Next.js Apps Are Getting Priced Out of Vercel Plus Its Add-Ons

A hobby Next.js app on Vercel is free until you add a database, cron, and bandwidth — then it's $40+/month. When moving the small app to a VPS makes sense, and what you take on.

When You're the Whole Platform Team: A Solo DevOps Operating Model

[guide] solo-devops-operating-model-runbook

When You're the Whole Platform Team: A Solo DevOps Operating Model

One person ends up owning deploys, observability, DNS, SSL, and Traefik with no operating model. A durable runbook-driven approach so being the only platform owner doesn't mean being the single point of failure.

SSL Certificates on VPS: Complete Let's Encrypt Guide

[guide] ssl-certificates

SSL Certificates on VPS: Complete Let's Encrypt Guide

Set up free SSL certificates on your VPS using Let's Encrypt with Certbot, Traefik, or Caddy. Includes auto-renewal and wildcard certificates.

Lost HTTPS After a Network Change? A SWAG and Let's Encrypt Recovery Checklist

[guide] swag-letsencrypt-reverse-proxy-recovery-checklist

Lost HTTPS After a Network Change? A SWAG and Let's Encrypt Recovery Checklist

Immich or Jellyfin loses HTTPS after an ISP change or a simple network move, and the SWAG logs are a wall of ACME errors. A recovery checklist that starts at DNS and ends at a renewed cert.

Stable Tailscale on Linux: A Post-Install Stability and Backup Routine

[guide] tailscale-linux-stability-backup

Stable Tailscale on Linux: A Post-Install Stability and Backup Routine

Auto-start, healthcheck, backup channel, and notification routine to make a Tailscale node you can actually trust to stay reachable.

[guide] template-deployments-monitoring-logs-checklist

Template Deployments Still Need Logs, Health Checks, and Redeploy Confidence

One-click templates make self-hosting faster, but they do not remove the need for logs, verification, rollback, backups, and redeploy drills.

Docker Deployment Is Shifting Toward Testing the Exact Image Before Rollout

[guide] test-exact-docker-image-before-rollout

Docker Deployment Is Shifting Toward Testing the Exact Image Before Rollout

'Works on my machine' is back as 'works on the tag I tested, not the one that deployed.' Pinning and promoting the exact image digest is how teams stop deploying surprises.

Traefik Migrations Keep Failing at the Edge Where Cloudflare and App Routing Meet

[guide] traefik-migration-edge-cloudflare-routing

Traefik Migrations Keep Failing at the Edge Where Cloudflare and App Routing Meet

Moving to Traefik breaks in a predictable place: the seam between Cloudflare's edge and Traefik's routing — redirect loops, wrong client IPs, and certs that won't issue. How to fix the seam.

Traefik SSL on VPS: Complete Setup Guide

[guide] traefik-ssl

Traefik SSL on VPS: Complete Setup Guide

Set up Traefik as a reverse proxy with automatic Let's Encrypt SSL certificates. The foundation for hosting multiple apps on one VPS.

From two-VPS SaaS to observability, rollback, and HA — the maturity arc nobody warns you about

[guide] two-vps-saas-observability-rollback-ha-arc

From two-VPS SaaS to observability, rollback, and HA — the maturity arc nobody warns you about

Running a SaaS on two cheap VPSes with Compose and WireGuard feels great until the conversation turns to backups, rollback, and observability. Here's the arc, in order, with what to add when.

Unraid operators need boot, network, and rollback proof before trusting a recovered server

[guide] unraid-recovery-boot-network-rollback-proof

Unraid operators need boot, network, and rollback proof before trusting a recovered server

Several recent Unraid threads show home-server failures where the array or app stack may be fine but the operator lacks a verified recovery path. One server loses network every day even after a NIC and cable swap. Another becomes unresponsive through the web…

Storage Guardrails for USB-DAS Mini-PC Servers Before Your First Docker Stack

[guide] usb-das-mini-pc-storage-guardrails-before-docker

Storage Guardrails for USB-DAS Mini-PC Servers Before Your First Docker Stack

A mini PC with a USB direct-attached drive is a great cheap server until a power blip or a sleeping disk corrupts a database. Set the storage guardrails before the first container.

Why VPS Rebuild Automation Feels Fragile — and How to Make It Trustworthy

[guide] vps-rebuild-automation-compose-traefik-mail

Why VPS Rebuild Automation Feels Fragile — and How to Make It Trustworthy

You automate the VPS rebuild with Ansible and Compose, and it still feels like it might not come back. The fragile parts are usually Traefik, mail, and state — here's how to harden them.

VPS Security Hardening: Complete Guide

[guide] vps-security

VPS Security Hardening: Complete Guide

Secure your VPS with SSH hardening, firewall configuration, automatic updates, fail2ban, and container security best practices.

WebSocket-Specific Checks to Run Before Rolling a Realtime App Deploy

[guide] websocket-checks-before-rolling-realtime-deploys

WebSocket-Specific Checks to Run Before Rolling a Realtime App Deploy

Realtime apps pass an HTTP health check and still drop every live connection on deploy. The WebSocket-specific checks that catch it before your users do.