Erik Uden => ErikUden@mastodon.de on Nostr: 2023-07-11 — Construction Day 10 FINALE Final MastodonDE Construction Documentation ...
2023-07-11 — Construction Day 10 FINALE
Final MastodonDE Construction Documentation
This was it, folx. #MastodonDE is now done and dusted, and as I’m writing this, it even survived the first night. However, this wasn’t all too clear throughout the day! I didn’t believe myself when I said that we’d be done by the end of the day, but that’s what happened, and I still can’t believe it.
Our 10 construction days are now finally coming to an end, and this will be the last update for MastodonDE from this instance, even my last post on this instance entirely.
So, what happened?
First we continued the installation as usual where we left off which was basically just starting the interactive setup wizard and compiling Mastodon from source. We are on a Debian 12 machine and installing the Mastodon Glitch-Soc fork, which is officially unsupported on this version of Debian but perfectly works, actually!
We had some issues setting up the Database and Redis as they’re on a separate server (still in the same network/local, actually laying on top of the Mastodon Server, just not the same hardware as the Server running Mastodon glitch-soc) and PostgreSQL has special security settings to not allow password-less users to be logged into from anywhere but localhost, so we needed to do some funky stuff, same for Redis, in order to make it work. The error notifications were very helpful and gave direct commands on what to do to fix this.
The real problem occurred during the compilation process of the JS and CSS files as NodeJS was at an unsupported version. From the previous day I’ve installed NodeJS v18 from NodeSource for Debian although Mastodon recommends version 16. The build process failed in a catastrophe with millions of errors.
So my initial reaction was to, of course, change NodeJS back to version 16, but that proved to be hard. I switched the repository, cleaned apt cache, deleted apt sources with:
rm -r /etc/apt/sources.list.d/nodesource.list
Nothing worked. I was at my wits end, but then…
npub1t58x7uzwyfm0k6dqfln0yqfw6m2tlw08hhje47xsegf70nnqpqksrc79wk (npub1t58…79wk), npub1ha826mqhzqz3djcwhydz74kx3mhumxjsuyr6eyuwjav40t7x56xq5n77nn (npub1ha8…77nn) and npub17fxkkapyt9hj6hzvycnshp335ndfx4d63gzz0w5s5g77j2ml8ydsf2eccw (npub17fx…eccw) joined the Twitch chat and helped me do it! I tried my best to move back to version 16 of NodeJS as that’s what Mastodon officially supports, but npub1ha826mqhzqz3djcwhydz74kx3mhumxjsuyr6eyuwjav40t7x56xq5n77nn (npub1ha8…77nn) said that I only needed to start the compilation with one extra command and then everything worked. He installed Mastodon on Rocky Linux, even, so he absolutely knows what’s up.
At 18:33:41 on the 11th of July 2023 npub1ha826mqhzqz3djcwhydz74kx3mhumxjsuyr6eyuwjav40t7x56xq5n77nn (npub1ha8…77nn) sent the command to recompile with the extra environment variables:
NODE_OPTIONS=-openssl-legacy-provider RAILS_ENV=production bundle exec rails assets:precompile
It finished compiling at 18:38:09 successful with zero errors or warnings.
This is a clip of the exact moment it happened.
Compiling means a lot, because that means the binaries have successfully been created, meaning we have a functioning Mastodon program, all we need to do is turn it on and allow it to be accessible from the internet. The turning on and turning off part is done via systemd, and making it accessible through the internet is done via NGINX, those are the only two programs (next to permissions) I needed to configure from that point onward to make MastodonDE go online and fully operational.
After a few hiccups with the NGINX (according to the config we need functioning SSL certificates but in order to generate SSL certificates we need a functioning NGINX config, so I turned SSL off) it was working too.
As my workaround was so stupid people made fun of me in the chat. Fixing my workaround also turned out to be hard, but sooner than later we did it. WE did it, because I clearly didn’t do it alone.
We had a functioning NGINX config with a working SSL certificate, now we just needed to start Mastodon to get rid of the bad gateway message. As I was finding that out someone launched a firework rocket right next to my house scaring the heck outta me. I went to https://mastodon.de/ but was sadly only greeted with the Mastodon logo, not a functioning Mastodon instance.
This was because the NGINX User (www-data) didn’t have access to Mastodon’s static files hence couldn’t serve anything.
And after a quick look at the error log, we figured out that we only need to change three permissions with chmod and Mastodon was instantly up and running.
Meaning the exact time that mastodon.de first went online was at 19:51:49 on July 11th 2023 which was noticed by npub1ha826mqhzqz3djcwhydz74kx3mhumxjsuyr6eyuwjav40t7x56xq5n77nn (npub1ha8…77nn).
I logged into the admin account ErikUden as quick as I could (as I exposed the password on stream and needed to change it :P) and tried getting the first post ever made on MastodonDE, but sadly I was beaten by a few seconds by npub1w7x96f3kfn68sd665jrlvct0f8z9kggc4z5tppmzcnhq2ea4c77sxkqchc (npub1w7x…qchc) who posted:
https://mastodon.de/@berlinux/110696726005385536
“hullo” - simple yet wise words by Ebowski marking the first ever post made on MastodonDE.
The first post happened at 19:53 on July 11th 2023.
My first post was: https://mastodon.de/@ErikUden/110696734537196086
At 19:55 on July 11th.
I tried to stop people from posting before I did, sadly that didn’t work!
I got my dad who helped with a lot of the hardware stuff, so at almost 10pm we celebrated together with my father drinking champagne and us drinking orange juice. It was a good evening, really.
And…that’s mostly it! Later that night at half past midnight I also began moving my account from Erik Uden => ErikUden@mastodon.de (npub124y…5qf8) to npub1jqcdy436g6c3232l6htsdwtj8yrf36e30d6nsqmywy6m24cakt9sgk3mpt (npub1jqc…3mpt), which took multiple hours due to rate limits we hastily adjusted (I needed to reset my account’s password like a million times, which was probably the reason ~300 of my followers weren’t transferred, but who knows).
Me and Nick ended the day with watching the final two episodes of Gravity Falls which we’ve watched throughout the past 10 Construction Days of MastodonDE.
And that’s the story of MastodonDE. It’s what we’ve been planning since November 2022, it’s what we’ve been transporting hardware for since January of this year, it’s what we’ve been selecting specific hardware for since early June, it’s what we’ve been actively focusing every waking moment on for the past 16 days.
All of this cumulated into today’s running server mastodon.de. However, the story of how I got this domain in the first place is a story for another day ;)
To everyone on social.uden.ai: I will still moderate and maintain this server, I will merely no longer post. social.uden.ai will be maintained for as long as I can, but every user is free to move to mastodon.de.
Leaving this instance is kind of scary, as was starting the MastodonDE project in the first place. I hope for my coming years on the Fedi to be at least as good as they’ve been so far and for the Fediverse to remain being the supportive, ultra-progressive, anticapitalist, antifascist, and non-corporate social network it is!
Final MastodonDE Construction Documentation
This was it, folx. #MastodonDE is now done and dusted, and as I’m writing this, it even survived the first night. However, this wasn’t all too clear throughout the day! I didn’t believe myself when I said that we’d be done by the end of the day, but that’s what happened, and I still can’t believe it.
Our 10 construction days are now finally coming to an end, and this will be the last update for MastodonDE from this instance, even my last post on this instance entirely.
So, what happened?
First we continued the installation as usual where we left off which was basically just starting the interactive setup wizard and compiling Mastodon from source. We are on a Debian 12 machine and installing the Mastodon Glitch-Soc fork, which is officially unsupported on this version of Debian but perfectly works, actually!
We had some issues setting up the Database and Redis as they’re on a separate server (still in the same network/local, actually laying on top of the Mastodon Server, just not the same hardware as the Server running Mastodon glitch-soc) and PostgreSQL has special security settings to not allow password-less users to be logged into from anywhere but localhost, so we needed to do some funky stuff, same for Redis, in order to make it work. The error notifications were very helpful and gave direct commands on what to do to fix this.
The real problem occurred during the compilation process of the JS and CSS files as NodeJS was at an unsupported version. From the previous day I’ve installed NodeJS v18 from NodeSource for Debian although Mastodon recommends version 16. The build process failed in a catastrophe with millions of errors.
So my initial reaction was to, of course, change NodeJS back to version 16, but that proved to be hard. I switched the repository, cleaned apt cache, deleted apt sources with:
rm -r /etc/apt/sources.list.d/nodesource.list
Nothing worked. I was at my wits end, but then…
npub1t58x7uzwyfm0k6dqfln0yqfw6m2tlw08hhje47xsegf70nnqpqksrc79wk (npub1t58…79wk), npub1ha826mqhzqz3djcwhydz74kx3mhumxjsuyr6eyuwjav40t7x56xq5n77nn (npub1ha8…77nn) and npub17fxkkapyt9hj6hzvycnshp335ndfx4d63gzz0w5s5g77j2ml8ydsf2eccw (npub17fx…eccw) joined the Twitch chat and helped me do it! I tried my best to move back to version 16 of NodeJS as that’s what Mastodon officially supports, but npub1ha826mqhzqz3djcwhydz74kx3mhumxjsuyr6eyuwjav40t7x56xq5n77nn (npub1ha8…77nn) said that I only needed to start the compilation with one extra command and then everything worked. He installed Mastodon on Rocky Linux, even, so he absolutely knows what’s up.
At 18:33:41 on the 11th of July 2023 npub1ha826mqhzqz3djcwhydz74kx3mhumxjsuyr6eyuwjav40t7x56xq5n77nn (npub1ha8…77nn) sent the command to recompile with the extra environment variables:
NODE_OPTIONS=-openssl-legacy-provider RAILS_ENV=production bundle exec rails assets:precompile
It finished compiling at 18:38:09 successful with zero errors or warnings.
This is a clip of the exact moment it happened.
Compiling means a lot, because that means the binaries have successfully been created, meaning we have a functioning Mastodon program, all we need to do is turn it on and allow it to be accessible from the internet. The turning on and turning off part is done via systemd, and making it accessible through the internet is done via NGINX, those are the only two programs (next to permissions) I needed to configure from that point onward to make MastodonDE go online and fully operational.
After a few hiccups with the NGINX (according to the config we need functioning SSL certificates but in order to generate SSL certificates we need a functioning NGINX config, so I turned SSL off) it was working too.
As my workaround was so stupid people made fun of me in the chat. Fixing my workaround also turned out to be hard, but sooner than later we did it. WE did it, because I clearly didn’t do it alone.
We had a functioning NGINX config with a working SSL certificate, now we just needed to start Mastodon to get rid of the bad gateway message. As I was finding that out someone launched a firework rocket right next to my house scaring the heck outta me. I went to https://mastodon.de/ but was sadly only greeted with the Mastodon logo, not a functioning Mastodon instance.
This was because the NGINX User (www-data) didn’t have access to Mastodon’s static files hence couldn’t serve anything.
And after a quick look at the error log, we figured out that we only need to change three permissions with chmod and Mastodon was instantly up and running.
Meaning the exact time that mastodon.de first went online was at 19:51:49 on July 11th 2023 which was noticed by npub1ha826mqhzqz3djcwhydz74kx3mhumxjsuyr6eyuwjav40t7x56xq5n77nn (npub1ha8…77nn).
I logged into the admin account ErikUden as quick as I could (as I exposed the password on stream and needed to change it :P) and tried getting the first post ever made on MastodonDE, but sadly I was beaten by a few seconds by npub1w7x96f3kfn68sd665jrlvct0f8z9kggc4z5tppmzcnhq2ea4c77sxkqchc (npub1w7x…qchc) who posted:
https://mastodon.de/@berlinux/110696726005385536
“hullo” - simple yet wise words by Ebowski marking the first ever post made on MastodonDE.
The first post happened at 19:53 on July 11th 2023.
My first post was: https://mastodon.de/@ErikUden/110696734537196086
At 19:55 on July 11th.
I tried to stop people from posting before I did, sadly that didn’t work!
I got my dad who helped with a lot of the hardware stuff, so at almost 10pm we celebrated together with my father drinking champagne and us drinking orange juice. It was a good evening, really.
And…that’s mostly it! Later that night at half past midnight I also began moving my account from Erik Uden => ErikUden@mastodon.de (npub124y…5qf8) to npub1jqcdy436g6c3232l6htsdwtj8yrf36e30d6nsqmywy6m24cakt9sgk3mpt (npub1jqc…3mpt), which took multiple hours due to rate limits we hastily adjusted (I needed to reset my account’s password like a million times, which was probably the reason ~300 of my followers weren’t transferred, but who knows).
Me and Nick ended the day with watching the final two episodes of Gravity Falls which we’ve watched throughout the past 10 Construction Days of MastodonDE.
And that’s the story of MastodonDE. It’s what we’ve been planning since November 2022, it’s what we’ve been transporting hardware for since January of this year, it’s what we’ve been selecting specific hardware for since early June, it’s what we’ve been actively focusing every waking moment on for the past 16 days.
All of this cumulated into today’s running server mastodon.de. However, the story of how I got this domain in the first place is a story for another day ;)
To everyone on social.uden.ai: I will still moderate and maintain this server, I will merely no longer post. social.uden.ai will be maintained for as long as I can, but every user is free to move to mastodon.de.
Leaving this instance is kind of scary, as was starting the MastodonDE project in the first place. I hope for my coming years on the Fedi to be at least as good as they’ve been so far and for the Fediverse to remain being the supportive, ultra-progressive, anticapitalist, antifascist, and non-corporate social network it is!