Keith explains why he moved his personal sites and hobby projects off DigitalOcean after the company pledged significant funding to a political nonprofit he objects to. He consolidated numerous small apps that had been scattered across droplets and Fly instances onto a single UpCloud virtual machine, object storage, and a small managed Postgres instance. To run everything he relied on a self-written deployment layer called Deploy, which orchestrates Docker containers built with Railpack, proxies Postgres connections, and performs automatic Git deploys. Code portability made bringing services up on the new host straightforward because repositories were already in Git, but choosing UpCloud was driven by cost and multi-region availability rather than dashboard polish.
The hardest part of the migration was data: migrating many SQLite files, persistent /data directories, scattered Postgres databases, and DNS records across providers. He scripted directory moves and migrated databases one site at a time to keep the work manageable, noting the tradeoff of a single app server being a single point of failure for personal projects. He’s reluctant to open-source Deploy because it’s highly tailored to his workflow and would require documenting many assumptions; nevertheless he encourages others to migrate incrementally and share where they land.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.