Where I live, internet outages and power outages are both common, so I cannot realistically keep everything on my home server. At the same time, I still want to reliably self-host my services, so I’m keeping critical stuff on a virtual private server (or VPS for short). It took some trial and error to figure what is going where, so if you’re in a similar spot, this list might help.
What’s on my VPS
And how it got there
A virtual private server, or VPS, for those who don’t know, is a virtual machine in the cloud that you’ve provisioned for yourself. You can SSH into it and set it up just like you would on your home server. I have got a lightweight VPS instance on the Oracle cloud for myself. It doesn’t need to be powerful because (as you’ll see) the software I’m trying to run on it barely takes up any resources.
Right now, I have four services running on this thing 24/7.
My password manager
Vaultwarden is an alternative backend for Bitwarden that gives you all the premium Bitwarden features for free. The paid features include their built-in authenticator and extra storage for attachments, to name a few. I keep this on the VPS because I need uninterrupted access to my Bitwarden vault.
I deployed it as a Docker container, and I’ve never once had to troubleshoot it. It just works like a regular Bitwarden subscription, except I have total control over my account, including the Bitwarden admin panel. It works with all the official Bitwarden clients—the web app, the mobile app, desktop apps, and the browser extensions. Pretty seamless.
Notes
I have a notes web app running on the VPS too. It’s called Memos, and it’s built for quickly jotting down ideas, making shopping lists, to-do tasks, and so on. Think of it as an open-source version of Google Keep. Just as polished and well-designed.
Originally, I had kept this on my home server because I didn’t expect to use it as much. Contrary to my expectations, I started to rely on it more and more, especially after I discovered the mobile app.
When my home server went down, I couldn’t take new notes or access existing ones. So I permanently moved it to my VPS. I had deployed it as a Docker container, which I transferred to the VPS.
Recently, I also moved my Obsidian sync setup to the same VPS. I’m running a CouchDB database on my VPS. This database is where all my Obsidian notes are kept. The CouchDB talks to the LiveSync plugin inside my Obsidian, which watches the vault for any changes and instantly replicates the changes across all instances of the vault.
Basically, whatever I type inside an Obsidian note on one device shows up in real-time on another device. Having tried multiple self-hosted Obsidian sync systems, I’ve settled on this one because it never breaks or fails me.
- Brand
-
Zettlab
- CPU
-
RK3588
- Memory
-
16GB LPDDR4x
- Drive Bays
-
4x 3.5-inch, 1x M.2 NVMe
Search engine
I’m also self-hosting a search engine to browse the web ever since every mainstream engine introduced AI overviews that you can’t opt out of. The search engine is SearXNG. It’s an open-source meta aggregator which queries and pulls search results from other search engines like DuckDuckGo, Google, Bing, etc. on your behalf. So it’s more private than a standard engine.
It shows no ads or sponsored content anywhere. And of course, no AI overviews or chat boxes anywhere.
Just like the notes app, I had originally kept this on my home server, but it quickly became the default search engine on all my browsers, across all devices. So to keep it the default, I had to make sure it was available all the time.
It was easy enough to deploy a fresh Docker container for it on the VPS because no data had to be migrated.
VPN
I’ve also set up a secure tunnel from my home network to my VPS using WireGuard, allowing me to route my internet traffic through it instead of my ISP. This effectively makes it a high-speed VPN.
On my phone and computer, I’ve set up shortcuts to quickly connect and disconnect from this VPN. The phone has an app with a single toggle. And on my computer, I enter these command-line aliases.
It’s better than a regular VPN subscription because I don’t have to take a company’s word that they won’t be logging my traffic. Secondly, it’s completely free.
The VPS is for things you need uninterrupted access (and VPNs)
And how you can get one for free
I’ve deployed all these services using Docker.
There’s also a Caddy container here, which is a reverse proxy that lets me access these services on my personal website. That way, I don’t have to bother with remembering or typing the IP addresses or port numbers. I can just access them using normal web addresses, like these:
vault.domain.com
notes.domain.com
search.domain.com
The VPS I’m currently using is free (Oracle lets you provision two of these lifetime “micro” instances for free). It comes with 1GB of memory, and since these apps barely take up any resources, I still have room to spare for more.
What goes on the home server
Everything by default lives on the home server
The home server is basically my playground. I have a couple of (literally) headless laptops with DietPi on them and a dedicated Proxmox machine to test and run software.
The laptop servers mostly run Docker containers, and the Proxmox node is for virtual machines (VMs) and other resource-heavy stuff like Jellyfin or Immich. Other than these fixtures, I’m regularly testing new software, so the list of apps is different week to week.
I only move things to the VPS when I absolutely have to
When I notice that I’m relying on an app more and more in my daily life, I move it to my VPS. This has been my usual strategy, minus the WireGuard VPN setup which started on the VPS for obvious reasons.




