I had a hobby app running on one small VPS for about three years. It served maybe forty people, most of them me. Last month the host had a bad night and I spent a weekend rebuilding it from a backup that turned out to be eleven days old. So I finally did the thing I had been putting off.
The first thing I got wrong was treating this as an infrastructure problem. It was a backup problem. Moving to fancier hosting would not have saved me a single hour that weekend, because the data I lost was gone before the move was ever on the table. Restore drills are boring and they are the only part of this that actually mattered.
The second thing: I tried to containerise everything in one pass. Two days in I had a docker-compose file I did not understand and an app that worked slightly worse than before. I threw it away and moved one piece at a time, starting with the database, and that went fine.
If you are doing the same thing, the part worth reading properly is the transcoding and file handling, because that is where the surprises live.
Three weekends total. The app is not meaningfully faster. But I can lose the whole machine now and be back in twenty minutes, which is the only number I actually cared about.
I leaned on the official docs for this.











