Installing Mastodon 4.1.2 on Debian 11
-
@scottalanmiller said in Installing Mastodon 4.1.2 on Debian 11:
Mostly this is taken from Mastodon's documentation but some of it is wrong. I tried their Docker configs, but couldn't find any that worked and it isn't clear if they have an official Docker image or just third party ones. They don't actually list Docker on their official site. So this is a traditional install.
As root...
apt update && apt install -y curl wget gnupg apt-transport-https lsb-release ca-certificates curl -sL https://deb.nodesource.com/setup_16.x | bash - curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | tee /usr/share/keyrings/yarnkey.gpg >/dev/null echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | tee /etc/apt/sources.list.d/yarn.list wget -O /usr/share/keyrings/postgresql.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc echo "deb [signed-by=/usr/share/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.list apt update && apt install -y imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \ g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \ bison build-essential libssl-dev libyaml-dev libreadline6-dev \ zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev \ nginx redis-server redis-tools postgresql postgresql-contrib \ certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev nodejs corepack enable && yarn set version classic adduser --disabled-login --gecos "" mastodon sudo -u postgres psql -c 'CREATE USER mastodon CREATEDB;' ufw allow http && ufw allow https
As Mastodon
su - mastodon git clone https://github.com/rbenv/rbenv.git ~/.rbenv && cd ~/.rbenv && src/configure && make -C src echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc && echo 'eval "$(rbenv init -)"' >> ~/.bashrc exec bash git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.6 rbenv global 3.0.6 gem install bundler --no-document cd ~ git clone https://github.com/mastodon/mastodon.git live && cd live git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1) bundle config deployment 'true' bundle config without 'development test' bundle install -j$(getconf _NPROCESSORS_ONLN) yarn install --pure-lockfile RAILS_ENV=production bundle exec rake mastodon:setup npx update-browserslist-db@latest exit
As root again...
cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon certbot --nginx -d yourdomain.com ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon vi /etc/nginx/sites-available/mastodon rm /etc/nginx/sites-enabled/default systemctl restart nginx cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/ systemctl daemon-reload systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming
We install on Ubuntu and yeah, their documentation really sucks. There's lots of little tweaks that need to be done outside of what they have.
I've not had the time to compile them into a How To as of yet as each successive install has needed to be tweaked so keeping a public facing How To is out of the question.
-
@PhlipElder said in Installing Mastodon 4.1.2 on Debian 11:
We install on Ubuntu and yeah, their documentation really sucks. There's lots of little tweaks that need to be done outside of what they have.
Current or LTS? I tried on current and there are some super recent breaking changes in the last few weeks that basically don't work on Ubuntu 23.04. I didn't try LTS because once doing that, I looked and Debian 11 felt like the better choice and it worked with a LOT fewer tweaks. At least Debian 11 is current, at the moment (but not for long, lol.)
That Mastodon requires Ruby 3.0.6, what the heck. I couldn't get it to run on 3.0.4 with the latest Mastodon 4.1.2 and Ubuntu couldn't compile 3.0.6 successfully and it isn't available for it any other way and Mastodon isn't yet compatible with Ruby 3.1 or 3.2, which is even more ridiculous.
ugh.
-
@PhlipElder said in Installing Mastodon 4.1.2 on Debian 11:
I've not had the time to compile them into a How To as of yet as each successive install has needed to be tweaked so keeping a public facing How To is out of the question.
I think that the Mastodon team has had the same issue and just gave up, lol.
-
@PhlipElder what are you using Mastodon for over there? Internal corporate use? Private group? Public server?
This is a testing instance for us, but we hope to take it live soon and it is going to be public.
-
@scottalanmiller said in Installing Mastodon 4.1.2 on Debian 11:
@PhlipElder said in Installing Mastodon 4.1.2 on Debian 11:
We install on Ubuntu and yeah, their documentation really sucks. There's lots of little tweaks that need to be done outside of what they have.
Current or LTS? I tried on current and there are some super recent breaking changes in the last few weeks that basically don't work on Ubuntu 23.04. I didn't try LTS because once doing that, I looked and Debian 11 felt like the better choice and it worked with a LOT fewer tweaks. At least Debian 11 is current, at the moment (but not for long, lol.)
That Mastodon requires Ruby 3.0.6, what the heck. I couldn't get it to run on 3.0.4 with the latest Mastodon 4.1.2 and Ubuntu couldn't compile 3.0.6 successfully and it isn't available for it any other way and Mastodon isn't yet compatible with Ruby 3.1 or 3.2, which is even more ridiculous.
ugh.
We're on 20.04.x LTS and recently on 22.04.x LTS. Getting deployed on 22.04.x LTS required a bit of intervention via GitHub help request. But, we ended up figuring it out along with another poster on that GitHub thread.
Mastodon is very particular about component versions. So, while we take the out of the box Ubuntu LTS version there's been times where we've tweaked the repository for a specific component version.
-
@scottalanmiller said in Installing Mastodon 4.1.2 on Debian 11:
@PhlipElder said in Installing Mastodon 4.1.2 on Debian 11:
I've not had the time to compile them into a How To as of yet as each successive install has needed to be tweaked so keeping a public facing How To is out of the question.
I think that the Mastodon team has had the same issue and just gave up, lol.
Yeah, their notes are based on Ubuntu 19.x LTS with some copy & paste to try and cover Ubuntu 20.x LTS. It took about half a dozen run throughs before we were confident we had a stable configuration. We host all of the instances in-house.
-
@PhlipElder said in Installing Mastodon 4.1.2 on Debian 11:
Mastodon is very particular about component versions. So, while we take the out of the box Ubuntu LTS version there's been times where we've tweaked the repository for a specific component version.
That's what I was suspecting. Debian felt like a few fewer "tweaking" components compared to Ubuntu with any semblance of being updated.
-
@scottalanmiller said in Installing Mastodon 4.1.2 on Debian 11:
@PhlipElder what are you using Mastodon for over there? Internal corporate use? Private group? Public server?
This is a testing instance for us, but we hope to take it live soon and it is going to be public.
The instances we've set up are off the FediVerse for private corporate, political, or personal use.
There was some discussion of setting up for public consumption given the mass exodus after Musk bought Twitter but given the fickleness of tech peeps we didn't because everyone wants attention, so it was only a matter of time before they went back to the main public square that is Titter.
There are a few that have stuck it out with their own instance to build a personal community which is pretty neat, but there's no exposure that compares to Titter. None.
-
This post is deleted! -
@scottalanmiller said in Installing Mastodon 4.1.2 on Debian 11:
I tried their Docker configs, but couldn't find any that worked and it isn't clear if they have an official Docker image or just third party ones.
https://github.com/mastodon/chart
Their official image is here ghcr.io/mastodon/mastodon
-
@stacksofplates said in Installing Mastodon 4.1.2 on Debian 11:
Their official image is here ghcr.io/mastodon/mastodon
Yeah, that one was flaky. But is it official? Why's it on a different account?
-
@scottalanmiller said in Installing Mastodon 4.1.2 on Debian 11:
But is it official?
doens't get more official than on their github.
-
@scottalanmiller said in Installing Mastodon 4.1.2 on Debian 11:
Why's it on a different account?
Umm uh?
ghcr.io is github's packaging solution.
https://github.com/features/packages -
@scottalanmiller said in Installing Mastodon 4.1.2 on Debian 11:
@stacksofplates said in Installing Mastodon 4.1.2 on Debian 11:
Their official image is here ghcr.io/mastodon/mastodon
Yeah, that one was flaky. But is it official? Why's it on a different account?
Yes it's their official. Ghcr is the GitHub packages repo. It's similar to GCR, ECR, etc. Other OCI image repositories are more popular now since Docker has imposed limits on Docker Hub.