Simplifying my self-hosting VPS.

My move from Hetzner to Racknerd, along with simplifications because self-hosting is a headache.

Courtesy of lovely Fosstodon folks, I was made aware of Racknerd. I decided to bite and pay for a deal: $15/year for 1 GB memory and 1vCPU along with 25 GB SSD. All of this is sufficient for me. I would really have liked 2vCPU, but the next tier was $28/year and I simply didn’t want to pay that.

The VPS is also pre-set with 1 GB of swap memory – strange considering more established hosts recommend not setting up swap on SSD storage. That is to say any one-off memory needs will tide over just fine.

Migration.

I took this migration opportunity to simplify my setup:

  • Retain: Caddy.
  • Retain: docker and docker-compose.
  • New: Store docker compose instructions in a flat file structure in the home directory: ~/srv/.
  • New: Store backups in a flat file directory under my home dir: ~/backups/.
  • New: Makefile that runs docker compose commands on demand, including for making backups.
  • Change: Symbolic link for Caddyfile at ~/srv/Caddyfile.
  • Change: No more incremental, encrypted backups. So much complexity and opacity.
  • Removed: Backblaze B2.
  • Removed: restic.
  • Removed: direnv

Here’s what it looks like now:

~
|-- srv
|-- |-- Caddyfile
|-- |-- Makefile
|-- |-- miniflux.yml
|-- |-- reddit.yml
|-- |-- linkding.yml
|-- backups
# Refer to the Caddy docs for more information:
# https://caddyserver.com/docs/caddyfile

read.domain.tld {
        reverse_proxy localhost:3050
}

ld.domain.tld {
        reverse_proxy localhost:4010
}

reddit.domain.tld {
        reverse_proxy localhost:6400
}
miniflux-restart:
	docker-compose -f miniflux.yml restart

miniflux-stop:
	docker-compose -f miniflux.yml stop

miniflux-up:
	docker-compose -f miniflux.yml up -d

miniflux-backup:
	docker-compose -f miniflux.yml exec db sh -c 'pg_dump --username miniflux --dbname miniflux -Fc' > ~/backups/`date +%Y%m%d"_"%H%M%S`_miniflux_pg_dump_db.dump

miniflux-shell:
	docker exec -it srv_miniflux_app_1 sh

miniflux-logs:
	docker-compose -f miniflux.yml logs -f

Next steps:

  1. Repeat for each self-hosted app.
  2. ???
  3. Profit.

I looked at some projects that would overlay my docker command line requirements, but ended up with a Makefile instead. I also considered making a simple Python script… but really?!?! Really?!?!

Of course not.

Go away.

I want to not look at the VPS as much as I can. Same goes for code now and then.

Finances and other resources.

Down from ~₹4300/year to ~₹1130/year. A 73% reduction (!). Happy, obviously.

Server usage sits at about 450 MB of ~980MB. Load average for the last 15 minutes is 0.13.

All sounds good to me.

Next steps.

A zsh alias on my MacBook that logs into the server, runs a backup, and downloads it somewhere locally. The idea being that it will be included in the next Time Machine backup.

Moving forward, I will consider this backup strategy sufficient:

  • 1 on-disk on the VPS.
  • 1 on my laptop.
  • 1 (and more via history) on my external SSD reserved just for Time Machine backups.

Because let’s be honest – I am sick of how expensive self-hosting is on my mind.

Photo by Taylor Vick on Unsplash.

0

Comment via email.