I needed to make a small change to my hobby Rails app I was maintaining since 2009. Web development is easy, so how hard could it be?

Famous last words, as it turns out. (thread)
The app supports Facebook login, but I& #39;ve received a notice that my fb app will be revoked access unless it lists a privacy policy URL. So, to preserve login functionality, all I need is to fill in a form field. Easy, right? Except… fb won& #39;t let me submit the form.
It turns out that, in the meantime, Facebook disallowed OAuth redirects to `http:` callback URLs. I need to update the callback to `https:`, but there is one problem— my site isn& #39;t SSL-enabled. So now I& #39;m setting up Let& #39;s Encrypt certificates in my server& #39;s nginx configuration.
I want to start up the web app locally so I can test it out under HTTPS, but my local nginx server does not support SSL either. Now I& #39;m studying how to generate a trusted root CA that I can use to sign other certificates for my individual localhost sites.
Does it finally work? I can& #39;t tell, because my application won& #39;t boot. I don& #39;t have the appropriate Ruby version installed, so I try to compile it and that fails because it& #39;s too old to compile on my macOS. Now I have to upgrade Ruby in my app.
After I upgrade Ruby, Bundler fails due to incompatible gems. I have to upgrade Rails as well, which requires numerous changes to my app& #39;s configuration, asset pipeline, and the test suite. I play trial-and-error with different incantations of version constraints in the Gemfile.
Now my server needs the updated Ruby version, but that doesn& #39;t compile either because my server is too old. So now I& #39;m upgrading Ubuntu.

After that, my MongoDB database doesn& #39;t start because it skipped a major version and thus can& #39;t upgrade its database files on disk.
So before I can transition my database to mongod 3.6, I need to install 3.4 for an incremental upgrade path. Sounds clear enough, but after I configure apt package sources according to docs, it turns out that mongodb-server 3.4 isn& #39;t available anymore for my Ubuntu version.
I manage to install MongoDB 3.4 by configuring their PPA to install packages for the previous version of Ubuntu and that somehow works. I try to deploy my app, but it crashes at asset compilation phase. Newer Rails https://abs.twimg.com/emoji/v2/... draggable="false" alt="👉" title="Rückhand Zeigefinger nach rechts" aria-label="Emoji: Rückhand Zeigefinger nach rechts"> more memory https://abs.twimg.com/emoji/v2/... draggable="false" alt="👉" title="Rückhand Zeigefinger nach rechts" aria-label="Emoji: Rückhand Zeigefinger nach rechts"> my server instance has exhausted all RAM.
Now I& #39;m resizing my DigitalOcean droplet, but upon reboot, my webapp doesn& #39;t properly come online anymore. Upon inspecting my old SysV init scripts, it seems that Ubuntu migrated part of that system to something called Upstart. I have to tweak my old service scripts by hand.
Now my server is booting https://abs.twimg.com/emoji/v2/... draggable="false" alt="♻️" title="Universelles Recycling-Symbol" aria-label="Emoji: Universelles Recycling-Symbol">
the web app is starting https://abs.twimg.com/emoji/v2/... draggable="false" alt="🚀" title="Rakete" aria-label="Emoji: Rakete">
SSL certificates are certificating https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔐" title="Geschlossenes Schloss mit Schlüssel" aria-label="Emoji: Geschlossenes Schloss mit Schlüssel">
the database is migrating https://abs.twimg.com/emoji/v2/... draggable="false" alt="📦" title="Paket" aria-label="Emoji: Paket">
the stylesheets are cascading https://abs.twimg.com/emoji/v2/... draggable="false" alt="💅" title="Nagellack" aria-label="Emoji: Nagellack">

…but I can& #39;t remember anymore why I was doing any this in the first place
You can follow @mislav.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: