Migration Fest

By Zexyen • 3 minutes read •


Table of Contents

Insanity Ahoy

I have been starting to share more of my self-hosted services with other people, which means I have to implement my own SLA & Uptime insurance… Everything was running locally on my Home servers, with Caddy acting as the front-end for all the requests. This worked fine until one of the servers either freaked out, causing a cascading issue of things, or when I had a network outage at home (which is rare). As such I decided to start looking into alternatives.

Introducing the VPS

I have always been interested in using a VPS service, but I wasn’t a fan of the pricing / was not fully sure of my own capabilities in configuring it. However, since then I have been provided with a sizable pay increase thanks to my new job, and I am a lot more confident in my skills in running said stack. In terms of Providers, I decided to work with racknerd, as they had the best Price/Perfomance ratio I was looking for.

Migration Plan

At the time, everything was running as so:

My end goal was to have everything unified into one docker system (Komodo), which would allow me to manage updates and additions via Git, simplifying things a lot.

Execution

Moving all of the Komodo stuff in general was fairly simple. I had already stored all the docker data/configs in a dedicated folder on the LXC, so I just had to SFTP it to the new VPS, then configure Komodo. Once that was done most things ā€œJust Workedā€ with the exception of having to Re-ip & re-do a lot of the CORS requests (Particularly for Slink).

Moving the LXCs was similar; with the main issue being with Caddy / PocketIDs Migrations. These were configured using the wonder Proxmox Community Scripts, which while they are a fantastic ā€œOne & Doneā€ solution, they are opinionated and do things in their own ways. In the end I was able to migrate the PocketID DB without any issues, and Caddy was reconfigured with it’s own dockerfile to build the custom Caddy Build I already ran on the server.

Problem Childs

When you do a Migration of 4 Core services and ~10 sub-services, you tend to have issues crop up… My main issue on day 1 was that the original caddy file was referring to everything based on the local IP of the komodo instance on the server (as it was a separate instance). Now that Caddy is on the same Docker network however, I have to redo the entire file and provide it with the actual Ports the services are using, not the translated ports I used originally. After about 2 hours of banging my head on my desk I figured that out and everything came up.

The second problem child was Vaultwarden REALLY not liking the migration, and giving me a ton of issues with reading the DB, mainly because it wasn’t properly reading the HTTPS Cert. The aforementioned caddy issue turned out to be the main cause, which after fixing that & re-configuring some other things on the Caddyfile, fixed Vaultwarden.

New Toys

With everything being on a cloud VPS where I’d have to remember a random IP Address to SSH into it, I decided to look into a Server Manager application. I’ve heard a lot about Termix and I decided to configure it and see.