5 Apps You Should Self-Host Right Now (And How)
The five best apps to self-host in 2026 for privacy, savings, and independence. Includes step-by-step deployment instructions for each one.
Not every app is worth self-hosting. Some are too complex, some aren’t meaningfully better than their cloud counterparts, and some are just pain for pain’s sake.
But these five? These are the apps that make self-hosting click. They’re easy to deploy, immediately useful, and save you real money or give you real privacy gains. Each one replaces a paid service you’re probably using right now.
Let’s dive in.
1. Vaultwarden — Your Password Manager
Replaces: Bitwarden ($10/year), 1Password ($36/year), LastPass ($36/year) RAM usage: ~50 MB Difficulty: ⭐ Easy
If you self-host only one thing, make it your password manager. Vaultwarden is a lightweight, Rust-based implementation of the Bitwarden server API. It’s fully compatible with all official Bitwarden apps (desktop, mobile, browser extensions) but uses a fraction of the resources.
Why Self-Host Your Password Manager?
Your passwords are the keys to your digital life. Do you really want them on someone else’s server? With Vaultwarden:
- Your vault data stays on your server — no third-party breach can expose it
- No subscription fees — forever free
- Full control over your encryption and backup strategy
- Works with all Bitwarden clients — seamless experience
Deploy Vaultwarden
# docker-compose.yml
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
volumes:
- ./data:/data
environment:
- DOMAIN=https://vault.yourdomain.com
- SIGNUPS_ALLOWED=true # Set to false after creating your account!
- WEBSOCKET_ENABLED=true
ports:
- "8080:80"
If you’re using a reverse proxy like Traefik or Coolify, configure the labels accordingly and remove the ports section.
Post-Deploy Setup
- Open
https://vault.yourdomain.comand create your account - Immediately set
SIGNUPS_ALLOWED=falsein your compose file and redeploy - Install Bitwarden apps on your devices and point them to your server (Settings → Self-hosted → Server URL)
- Import your existing passwords from your current manager
- Set up regular backups of the
./datadirectory
Backup tip: Vaultwarden stores everything in a SQLite database. A simple
cpof thedatafolder is a complete backup.
2. Immich — Your Photo Library
Replaces: Google Photos ($30/year for 100GB), iCloud ($12/year for 50GB), Amazon Photos RAM usage: ~500 MB (with ML features), ~200 MB (without) Difficulty: ⭐⭐ Moderate
Immich is the breakout star of self-hosted software. It’s a Google Photos replacement that’s so good, it actually makes you want to leave Google Photos. The mobile app is beautiful, upload is fast, and the AI-powered search and face recognition work surprisingly well.
Why Self-Host Your Photos?
Photos are personal. They’re memories of your kids, your travels, your life. Having them on Google’s servers means:
- Google scans every photo (for “features” and ad targeting)
- You’re locked into their ecosystem
- Storage costs add up over the years
- If your account gets banned, your photos disappear
With Immich, your photos stay on your hardware.
Deploy Immich
Immich uses Docker Compose with multiple services. Download their official compose file:
mkdir -p ~/apps/immich && cd ~/apps/immich
# Download the official compose and env files
wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
Edit .env to set your preferences:
# .env
UPLOAD_LOCATION=./library
DB_PASSWORD=your-secure-password-here
IMMICH_VERSION=release
docker compose up -d
Post-Deploy Setup
- Access Immich at
http://your-server:2283 - Create your admin account
- Install the Immich app on iOS/Android
- Configure automatic backup from your phone’s camera roll
- Import existing photos via the web UI or CLI tool
Storage Considerations
Photos eat disk space. Plan for:
- Moderate user: 50-100 GB per year
- Heavy photographer: 200+ GB per year
- Solution: Use a VPS with attached block storage, or mount an NFS share
Pro tip: Immich supports external libraries — you can point it at existing photo directories without importing/copying.
3. Uptime Kuma — Your Monitoring Dashboard
Replaces: UptimeRobot (free tier limited, Pro $7/month), Pingdom ($15/month), Better Stack RAM usage: ~100 MB Difficulty: ⭐ Easy
Every self-hoster needs a monitoring tool. Uptime Kuma is a beautiful, self-hosted monitoring solution that checks your services and alerts you when something goes down.
Why You Need Monitoring
When you self-host, you are the sysadmin. If your Vaultwarden goes down at 2 AM, nobody else is going to fix it. Uptime Kuma:
- Monitors HTTP, TCP, DNS, Docker containers, and more
- Sends alerts via email, Discord, Telegram, Slack, and 90+ notification services
- Shows status pages you can share publicly
- Tracks response time history with beautiful charts
Deploy Uptime Kuma
# docker-compose.yml
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: unless-stopped
volumes:
- ./data:/app/data
ports:
- "3001:3001"
docker compose up -d
Post-Deploy Setup
- Access at
http://your-server:3001 - Create your admin account
- Add monitors for each of your self-hosted services
- Configure notification channels (Discord webhook is the easiest)
- Create a public status page at
status.yourdomain.com
What to Monitor
At minimum, monitor:
- All your self-hosted apps (HTTP checks)
- Your VPS itself (ping check)
- SSL certificate expiry (built-in check)
- DNS resolution (DNS check)
- Disk space (via Uptime Kuma’s Docker integration)
4. Plausible Analytics — Your Website Analytics
Replaces: Google Analytics (free but privacy-nightmare), Fathom ($14/month), Simple Analytics ($9/month) RAM usage: ~200 MB Difficulty: ⭐⭐ Moderate
If you run any website — a blog, a SaaS, a portfolio — you probably want analytics. Google Analytics is the default choice, but it’s a privacy disaster that requires cookie banners and slows down your site.
Plausible is a lightweight, privacy-friendly alternative. The script is under 1KB (vs Google Analytics’ 45KB+), requires no cookie banner (it’s GDPR-compliant by design), and gives you all the metrics that actually matter.
Why Self-Host Analytics?
- No cookie banners needed — Plausible doesn’t use cookies
- Privacy-first — No personal data collection
- Fast — 1KB script vs 45KB+ for Google Analytics
- You own the data — No sending visitor data to Google
- Simple dashboard — See what matters at a glance
Deploy Plausible
Plausible provides an official self-hosting guide. The basic setup:
mkdir -p ~/apps/plausible && cd ~/apps/plausible
# Clone the hosting repo
git clone -b v2.1.4 --single-branch https://github.com/plausible/community-edition plausible-ce
cd plausible-ce
Configure the environment:
# Generate a secret key
openssl rand -base64 48
# Edit plausible-conf.env
BASE_URL=https://analytics.yourdomain.com
SECRET_KEY_BASE=your-generated-key
TOTP_VAULT_KEY=another-generated-key
docker compose up -d
Post-Deploy Setup
- Access at
https://analytics.yourdomain.com - Create your account and add your site
- Add the tracking script to your website:
<script defer data-domain="yourdomain.com" src="https://analytics.yourdomain.com/js/script.js"></script>
- Set up email reports and custom goals
- Import your existing Google Analytics data (Plausible supports this!)
5. Gitea/Forgejo — Your Code Hosting
Replaces: GitHub (free tier limited, Team $4/user/month), GitLab SaaS, Bitbucket RAM usage: ~150 MB Difficulty: ⭐ Easy
GitHub is great, but do you really need Microsoft hosting your private repositories? Gitea (or its community fork, Forgejo) gives you a full-featured Git hosting platform that looks and feels like GitHub — on your own server.
Why Self-Host Your Code?
- Private repos without limits — GitHub’s free tier has restrictions on CI minutes and features
- No vendor lock-in — Your code, your server
- CI/CD included — Gitea Actions are GitHub Actions-compatible
- Package registry — Host your own npm/Docker/Maven packages
- Issue tracking and project boards built in
Deploy Forgejo
We recommend Forgejo (the community fork) for its commitment to staying open-source:
# docker-compose.yml
services:
forgejo:
image: codeberg/forgejo:10
container_name: forgejo
restart: unless-stopped
volumes:
- ./data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
environment:
- USER_UID=1000
- USER_GID=1000
ports:
- "3000:3000"
- "2222:22" # SSH for git operations
docker compose up -d
Post-Deploy Setup
- Access at
http://your-server:3000— the installer wizard will guide you - Create your admin account
- Set up SSH keys for
git pushaccess - Mirror your GitHub repos (Forgejo supports automatic mirroring)
- Set up Forgejo Actions for CI/CD (optional)
Migration from GitHub
Forgejo includes a migration tool that imports:
- Repositories (with full history)
- Issues and pull requests
- Labels, milestones, and releases
- Wiki content
Go to “New Migration” in the web UI and paste your GitHub repo URL.
Bonus: The Complete Stack
Here’s what your self-hosted stack looks like with all five apps:
| App | Domain | Port | Purpose |
|---|---|---|---|
| Vaultwarden | vault.yourdomain.com | 8080 | Passwords |
| Immich | photos.yourdomain.com | 2283 | Photos |
| Uptime Kuma | status.yourdomain.com | 3001 | Monitoring |
| Plausible | analytics.yourdomain.com | 8000 | Web analytics |
| Forgejo | git.yourdomain.com | 3000 | Code hosting |
Total RAM usage: ~1 GB (fits on a $6/month 4 GB VPS with plenty of room to spare)
Monthly cost: ~$6 for the VPS + ~$1 for the domain = $7/month
Services replaced: $100+/month in SaaS subscriptions
That’s a 93% savings, and you get privacy, control, and independence as a bonus.
Getting Started
If you’re new to self-hosting, start with our How to Self-Host Everything: A 2026 Beginner’s Guide for the full VPS and Docker setup walkthrough.
For platform recommendations, check out our Coolify vs CapRover vs Dokku comparison — these tools can make deploying all five apps a one-click affair.
Pick one app from this list and deploy it this weekend. Once you see how easy it is, you’ll be hooked.
Welcome to the self-hosted life. 🏠
Stay in the loop 📬
Get self-hosting tutorials, tool reviews, and infrastructure tips delivered to your inbox. No spam, unsubscribe anytime.
Join 0 self-hosters. Free forever.