A developer's blog on practical web and server topics, including PHP, Go, LUKS disk encryption, APIs and software practices.
HN commenters link it for how-to guides such as LUKS-encrypted servers on Hetzner and audio fixes, and for an essay on the CAP theorem.
https://tqdev.com/2024-the-p-in-cap-is-for-performance is a really interesting take on this as a response to https://blog.dtornow.com/the-cap-theorem.-the-bad-the-bad-the-ugly/ - essentially, the only way to get CA is if you're willing to say that every request will succeed eventually, but it might take an unbounded amount of time for partitions to heal, and you have to be willing to wait indefinitely for that to happen. Which can indeed make sense for asynchronous messaging, but not for real-time applications as we think about them in the modern day. In practice, if you're talking about CAP for high-performance systems, you're choosing either CP or AP.
I'm actually just looking into LUKS on Hetzner.
I've found this - how to do it without ever entrusting any encryption key to Hetzner
https://www.tqdev.com/2023-luks-encrypted-debian-12-server-hetzner/
But it seems like way too much work
There is this easy tutorial (that for some reason disappeared)
https://web.archive.org/web/20260128114859/https://community.hetzner.com/tutorials/install-ubuntu-2004-with-full-disk-encryption/
and this on how to get an email when you need to unlock it via SSH
https://dominik.wombacher.cc/posts/email_notification_to_unlock_luks_encrypted_disk_via_dropbear_ssh.html
It's not necessarily bad, but there's plenty of steps to automate away, with two ideas:
* You can use your production server as a "git server" without basically any overhead
* You can set up scripts that run on git events.
Basically, you can push directly to your production server and then deploy using that those event listeners
Here's a better explainer
https://tqdev.com/2018-deploying-with-git-push-to-production
As for having to reboot your server every time, I have no idea, although that seems like a long time. I'd expect less than a minute, but I don't know much about django
When I had this issue, it was fixed by disabling and removing the speech-dispatcher. Something to do with text to speech (I never use it but is sure to be a pain if you do need it) automatically doing things that corrupt the audio stream globally.
https://tqdev.com/2021-firefox-ubuntu-crackling-sound