Host migration successful!
It only took, what, three weeks? It's finally done though. As happy as I was with Digital Ocean (or, thought I was), the cost was just getting to be more than I could afford long-term for what I was getting. All of the active zoner.gay network has been moved to Hetzner, which includes this weblog, the zoner.gay Akkoma instance itself, plus Owncast and a shiny new Nextcloud instance. More on that in a bit.
This whole thing is just one big exercise in learning Docker really – and that it's a little bit more of a hassle than I expected.
I'm running this Writefreely instance directly on the host. That makes for a really easy move the way it's built – just copy the data folder, port over the systemd service, and rerun certbot. Cake.
Owncast is in a docker container but also ends up being an easy move – the docker volume has all the persistent data exposed to the host, so move that and run the single docker run command to get things going again, not a problem.
Nextcloud got stood up in place – I'd set it up from scratch on the host server, so aside from monitoring resource usage, it's a pretty self-contained setup. I do not look forward to the day where it ends up needing to be moved, though, because i opted for the AIO master container installation which was super easy, but I have next to no idea how it works or if/where it's storing persistent data. That's on the investigative to-do list.
Aside from that worry, though, Nextcloud is a pretty neat piece of kit. It's nice to have control of my own cloud storage, notes, tasks, calendar, etc, which is what I had intended to use it for when I set it up. With a shift away from Google on my Pixel 7's fresh install of grapheneOS too, it became the perfect place to also sync my phone contacts outside of my Google account. De-googling as much as possible is really nice.
The feature I've actually come to use the most though, and unexpectedly so, is the News applet's synced RSS feeds. I have both my phone and tablet with a Nextcloud-compatible RSS reader app, and have been slowly building a library of RSS feeds. whatyearisit.jpg
Now, back to Akkoma. Let me preface this next bit – this migration took so long not because Akkoma is difficult (quite the opposite, actually), but because I am woefully inexperienced and past me wrote a check that she didn't know how to cash, which suddenly became present-me's problem.
I had expected, naively, that I might just be able to export or commit the docker containers, copy them over to the new host machine, and then bring them online. Maybe this is doable. Beats the fuck out of me, though, because I spent about two nights trying to get docker to load and connect the frontend and backend containers (yes, i know about the docker network to support this). I think my issue is that I expected docker to behave similarly to a traditional VM container, and it doesn't really.
I also had a sort of nebulous understanding of file handling between host and container which I don't think truly clicked until last night as I was making a second attempt at migration, which may have also been a part of the problem. In short, last week all I had to show for my effort was a broken frontend and no evidence that it was connecting to the postgresql container where my DB was supposed to be.
Over the weekend, I also noticed that I was one release version out of date. That was an issue i wanted to tackle before attempting to migrate again, so pulled and started running the necessary mix tasks which, for some reason, absolutely failed. Compilations did not work, db migration did not work, and the containers would start, but, well, “broken” is the mild way to put it. I should've grabbed a screenshot.
Remember that part where I said I thought I was happy with Digital Ocean? There was this one nagging feeling I'd had for a while which I'd had the foresight to compensate for – that was backups. DO allows for instant snapshots anytime, but backups are completely automated and only happen once a week, usually overnight Thursday into Friday Eastern US time. [Contrast this with Hetzner, which takes backups daily for a rolling 7 days, and both backups (temp) and snapshots (long term) are able to be triggered manually, I love it].
Guess who forgot to take a backup before she started the update process.
Guess who got a really, really unwelcome lesson in hubris.
I was very, very lucky that I was doing this on a Friday night (who doesn't hang out at home rolling The Old Republic and update their web services on a Friday night? What are you, a bunch of shut-ins?) and so the last backup had occurred less than 24 hours before. I could live with a day of lost posts, after all the instance is just me. I restored the backup, but there was still the lingering question of why the update failed in the first place. It was giving me errors and throwing warnings that I needed to verify that there was a compiler installed.
After some poking, I stumbled on that apparently git was pointed to the dev branch. That shouldn't be right. I pointed it back to the stable branch with a reset and re-pulled the new version. Git listed the new files being pulled in. This time the update worked fine, migrations and all. I don't know what exactly was different because I have a feeling there was some other me-specific weirdness happening there, but I didn't care to spend time digging into it. If it happens again, maybe I'll put effort into tracing the issue. Update complete, now back to the migration situation.
It'd been about a week again since I last tried the docker image method. Thinking about it, migrating akkoma is all about just the static folder and the postgres db. Those just lay overtop more or less the same base installation. I'd already gone through that once moving from the OTP install to docker to begin with, why not just, y'know, do it again?
I wish this had occurred to me sooner. Exporting the static content folders and dumping the db was far, far easier. Migration was complete about 2:30 AM Monday morning ET. We're now fully on Hetzner, and as I write this, I destroyed the last droplet I was maintaining. Goodbye Digital Ocean, I'll think of you fondly as my first place to have been supporting my first venture into this...digital...ocean... :
But wait! Fen! Didn't you have a Peertube instance too? What happened to that?
Great question, person I completely made up for the loose purpose of a segue. I debated a bit on moving Peertube over – I really, really love the idea of Peertube as a distributed and federated platform for sharing videos. It's youtube with the power of bittorrent! How cool is that!? Like lemmy and kbin before it, the issue really came down to scope and usefulness. From a resource standpoint, Peertube is heavy, especially when it swallows the rest of the server trying to transcode an upload that's 1-2 hours in length. All I want out of it is to be a place to stash past stream broadcasts and speedrun PB vods, it's just more than is needed and even if I thought it might be useful to open up to friends, video storage isn't exactly a trivial matter.
As an alternative, I'm seriously looking into what I can do with Nextcloud to just make the videos available in a fileshare-type deal and stream in-browser. If that works, I might just do that as the easy answer. If it doesn't look like that's going to be viable in a satisfying way, then I might just sign up for a peertube instance elsewhere and chip in a few bucks to whomever's ko-fi or whatever. That maps same as kbin, where I'm currently on kbin.social instead of continuing to try to host my own. Some things just don't really make sense as a single-user instance.
Speaking of which, the RSS reader via Nextcloud has almost killed entirely my usage of my kbin.social account. I discussed my Reddit and Lemmy/kbin habits in my previous post, but the short version is I was a passive consumer of content for news and my hobbies and interests. Now I've got the news, and the interests never really made a 1:1 jump to Lemmy/kbin fedispace, so I'd already come off that some. I get more of that through Akkoma than I'd really expected anyway.
As is, I think I have a relatively stable configuration of instances that I'm pretty happy with. Next projects are building on what's there – I'd like to get a volume going and give some extra dedicated storage to both Akkoma and Nextcloud, maybe even a proper CDN. Akkoma has some clerical and administrative paperwork I want to take care of with the intent of maybe someday opening it up to friends, but I need to put some polish into it before doing that because it is a very me space.
Whatever you do, pay no mind to the shadowy figure in the background that is a nagging desire to want to set up a Firefish instance just because. You don't need it Fen, you're happy, you're stable, it offers you no benefit. Don't do it.
(i'm probably going to do it eventually, because I'm weak >_<)