Self-hosting on a 1984 VPS
Faced with a sudden change of pace in life and having to move out within a month one thing came to mind: my home server would also have to move. Since I am hosting my own code, my own password manager and much more that I need in my daily life, a temporary alternative to my home server had to be found. My solution was a VPS, and being the privacy autist I am it had to be a private VPS solution that respects my freedom and integrity!
I have long since known about the Swedish Njalla, a service co-founded by the creator of the beloved TPB, which I trust is a very good option. But, while their prices are cheap and reasonable, they are almost 70% more expensive than the Icelandic 1984 hosting which also are well-known for their integrity... The biggest downside with the latter is that I would (according to my own testing) add 10x network latency (50 ms vs 5 ms) due to Iceland being further away than my home country. Nonetheless, I gave 1984 a shot. Worst case scenario I will just move to Njalla (which isn't that big of a deal since I am using Infrastructure as Code to setup my servers).
1984 VPS setup
I chose a VPS with 4 GB RAM, two virtual cores, 80 GB storage and 4 TB of allowed traffic for 22 euro per month. After handing over the shekels I was greeted with a nice interface to begin setting up my VPS. (Note: I also chose the option to setup my own OS rather than using one of the auto-install alternatives so that I could properly encrypt the disk.)
To setup the OS it was just a matter of using their "remote access" tool to install Debian normally like I have done so many times previously:
- Setup network (1984 provides the IP configuration that has to be configured manually).
- Configure user.
- Partition disk (with LUKS encrypted LVM).
- Install packages.
After the initial system installation, it was time to install the dependencies for Traktor, my IaC tool, so that I could do the rest of the configuration with code.
const username = process.env.SSH_USER;
execute({
host: process.env.HOST,
username,
privateKeyPath: `${process.env.HOME}/.ssh/id_ed25519`,
become: true,
becomePassword: process.env.EIGHTYFOUR_BECOME_PASSWORD,
reuseTraktor: false,
}, [
aptAutoUpdate,
secureSSH,
dropbearBoot({
serverIp: process.env.HOST,
gatewayIp: process.env.GATEWAY,
hostname: process.env.HOSTNAME,
interface: 'ens3',
}),
setupZSHShell(username),
customBins,
installNginx(),
installDocker,
installCertbot,
installLazydocker,
]);
With all tasks green I was happy for the day. The next step is to move over some of my services from the home server to the VPS. My hope is for it to only be a matter of moving some functions in my infrastructure project and then restoring some backups for the moved services. It probably will not be that easy. 😅