Self-hosting means running an app on a computer you control instead of renting it as a service from a company. You can do that on a small box at home, on a rented virtual server, or through a host that installs and runs the app for you. The software is usually open source and free; what you pay with is some time and the responsibility for your own data.
What self-hosting actually is
When you use Google Photos, Notion or Dropbox, the app and your data live on the provider's servers. You get an account, they decide the price, the features and what happens to your files.
With a self-hosted app, you install the server part yourself. Your photo library, notes or passwords sit on a disk you chose, and you open the app in a browser or a mobile app that talks to your server instead of theirs. Most popular self-hosted projects ship as Docker images, which means you can start them with one or two commands on almost any Linux machine.
It sounds more technical than it is. If you can follow a recipe and you are not afraid of a terminal window, you can run your first app in an evening. Keeping it running well over the years is the part that takes care, and most of this guide is about that.
Why people do it
Most people start for privacy. Your files are not on a platform that can change what it does with them, and if an app does face recognition or search, it runs on your machine.
Then there is cost. A subscription for photos, another for notes, another for a password manager adds up. One small server can run several of these apps at once. It is not free, though: a home server costs electricity, a rented server has a monthly fee, and your own time counts too.
And there is control. Prices, terms and features of a hosted service can change overnight, and services do get shut down. A self-hosted app keeps working the way it works today until you decide to update it. You can also export everything, move it, or switch to a different app, because the data is in your hands.
There are good reasons not to self-host, and it is fair to name them. If an app is critical for a business and nobody on the team wants to look after a server, a paid service may be the better deal. Email is a well-known example: running your own mail server is possible, but getting your mail delivered reliably is hard work.
The three ways to run an app
1. A server at home
An old laptop, a mini PC or a Raspberry Pi can run a surprising number of apps. You pay once for the hardware and then only for power. Your data never leaves the house, and you have plenty of disk space for photos and videos.
The downsides: your home internet connection becomes part of the setup. Reaching the apps from outside needs either port forwarding with a dynamic DNS name, or a tunnel or VPN tool. If the power or the router goes down while you are on holiday, so do your apps.
2. A rented server (VPS)
A virtual private server from a hosting company gives you a Linux machine in a data centre with a fixed IP address. It is always online and reachable, and you choose where it is located. You install Docker, point a domain at it, and run the apps there.
You are the administrator now. Operating system updates, the firewall, backups and HTTPS certificates are your job. Disk space is also more expensive than at home, which matters for photo libraries.
3. A managed app host
A managed host runs the app for you. You pick it from a catalogue, it gets installed with a web address and HTTPS, and the host takes care of the server underneath. You still get the open-source app with your own data, without the server work.
blitz.cloud is one such host, based in the EU: you install apps from its App Store in one click, HTTPS is included, and there is a free plan without a credit card, where apps sleep after 30 minutes without visitors. Other managed hosts exist too, and some projects offer their own paid hosting, which is a good way to support the developers.
The trade-off is that you depend on that host again, so check that you can export your data and take it elsewhere.
| Home server | VPS | Managed app host | |
|---|---|---|---|
| Upfront effort | Hardware plus setup | Server setup | Pick an app and install |
| Running cost | Electricity | Monthly server fee | Plan price, sometimes free |
| Who handles updates | You | You | Mostly the host |
| Reachable from outside | Needs extra setup | Yes | Yes |
| Good for | Large media libraries, tinkering | Learning, several apps, full control | Getting started, no server work |
What you need to know before you start
Backups
This is the one that hurts if you skip it. A self-hosted app has no support team that can restore your files. Keep at least one copy of your data on a different machine, and ideally one more somewhere else. The Immich project puts it plainly in its README: "Always follow 3-2-1 backup plan for your precious photos and videos!" That means three copies, on two kinds of storage, one of them off-site.
Two details people miss: many apps keep their data in two places, a database and a folder of files, and both need backing up. And a backup you have never restored is only a hope. Try a restore once, on a spare machine or a test install.
Updates
Open-source apps release often, and the releases include security fixes. With Docker, an update usually means pulling the new image and restarting the container. Read the release notes before big version jumps, because some updates change the database and cannot be undone without a backup. Updating every few weeks is easier than jumping several versions at once.
Security
Only expose what needs to be reachable. Put apps behind a reverse proxy that handles HTTPS, use long unique passwords and turn on two-factor login where the app offers it. Keep the operating system updated. For apps you only use yourself, a VPN such as WireGuard or a tunnel service can keep them off the public internet entirely. Some apps say clearly that they are not hardened: the Paperless-ngx README warns that it "should never be run on an untrusted host" because documents are stored without encryption.
Domains and HTTPS
A domain name makes your apps easy to reach (photos.example.com instead of an IP address and a port) and lets you get free TLS certificates from Let's Encrypt. A reverse proxy sits in front of your apps, receives all web traffic on ports 80 and 443, and forwards each domain to the right container. Common choices:
- Caddy gets and renews certificates automatically and has a very short config file.
- Nginx Proxy Manager gives you a web interface for the same job, which many beginners prefer.
- Traefik reads its routing from Docker labels. The official n8n compose file uses it.
Good first apps
Start with one app you will actually use every day. That way you notice when something breaks, and you learn the routine of updates and backups on something that matters a bit, but not too much.
- Vaultwarden: a server for Bitwarden password managers. It is an alternative implementation of the Bitwarden client API written in Rust, so the official Bitwarden apps and browser extensions work with it. The project notes it is not associated with Bitwarden, Inc. Small and light, but it holds your passwords, so backups and HTTPS are not optional here.
- FreshRSS: a self-hosted feed reader with multiple users. A low-risk first app: if you lose the data, you lose your list of feeds.
- Immich: photo and video backup from your phone, the most popular Google Photos replacement. It needs more resources (the docs ask for at least 6 GB of RAM) and a solid backup plan. We compare it with other options in our Google Photos alternatives guide.
- Nextcloud: file sync and sharing with calendar, contacts and many add-on apps. Powerful, but also one of the bigger apps to maintain.
- Paperless-ngx: turns scanned letters and bills into a searchable archive. Keep it private, for the reason above.
- Jellyfin: a media server for your own films, series and music. Best on a home server, next to the disks that hold the media.
- Home Assistant: home automation that controls smart devices locally. It needs to be on your home network to reach those devices, so this one belongs at home.
- Pi-hole: a DNS server that blocks ads and trackers for every device in your home. A classic first project for a Raspberry Pi.
If you take the managed route, Vaultwarden, FreshRSS, Immich, Nextcloud, Paperless-ngx and Jellyfin are one-click installs on blitz.cloud.
If automation is your thing, our guide on how to self-host n8n walks through a complete Docker Compose setup.
A simple first setup
If you want to try the server route, this order works well:
- Get a machine: a spare PC at home or a small VPS.
- Install a current Linux distribution and Docker with Docker Compose, following Docker's own install docs.
- Point a domain or subdomain at the server.
- Run a reverse proxy (Caddy or Nginx Proxy Manager) for HTTPS.
- Start your first app from its official Docker Compose file. Prefer the project's own docs over random tutorials, because setups change between versions.
- Set up backups before you put real data in, and test a restore.
- Write down what you did. In six months you will not remember.
If you would rather skip steps 1 to 4, a managed host does them for you, and you can still move to your own server later.
FAQ
Is self-hosting free?
The software usually is. Running it is not quite: you pay for hardware and power at home, a monthly fee for a VPS, or a plan with a managed host (some have free plans). Your time is part of the price too.
Do I need to know Linux?
For a home server or VPS, basic terminal skills help a lot: moving between folders, editing a file, reading logs. You do not need to be a sysadmin to start. With a managed app host you can skip the Linux part.
Is self-hosting safe?
It can be as safe as a hosted service, but you are responsible for it. Keep apps updated, expose only what you need, use HTTPS and strong passwords, and keep tested backups.
What hardware do I need?
Light apps like Vaultwarden or FreshRSS run on a Raspberry Pi. Photo apps with face recognition need more: Immich's docs name 6 GB of RAM and 2 CPU cores as the minimum. Check each app's requirements page before you buy anything.
Can I move from a managed host to my own server later?
Usually yes, because the apps are open source and you can export the data. Check how backups and exports work with your host before you rely on it.