Some Observations About Installing Mastodon on Arch.


From the Production Guide you can copy the example nginx.conf file to /etc/nginx/sites-enabled/some_arbitrary.conf, and then add the following to /etc/nginx/nginx.conf in the http section, this with a fresh install of nginx with the default configuration file.

# /etc/nginx/nginx.conf 
http {
    include sites-enabled/*;

Installing the Dependancies

pacman -S certbot nginx libxml2 imagemagick ffmpeg git yarn npm python2 oidentd
# I'm guessing here
pacman -S libpqxx libxslt protobuf protobuf-c
  • I'm assuming base-devel is installed
  • python2 seems to be required to run yarn install command later on
  • oidentd seems to be a usable replacement for pident
  • libpqxx pulls in postgresql-libs
  • file is already installed
  • curl is already installed
  • ruby-build and rbenv are installable from aur
  • also postgresql and redis unless, those are in another container or whatever.

Other Observations

I discovered that between gem install bundler and
bundle install --deployment --without development test, you have to update your environment, with eval "$(rbenv init -)", i.e.

echo 'eval "$(rbenv init -)"' >> .bashrc
# and then
. ~/.bashrc

You have to update your environment more than once, during the installation.

Presumably you don't ever want to delete the ~/live/Public/ directory if that is where assets are being stored, but it seems ok to delete ~/live/node_modules and then rerun the yarn install command.

In ~/live/.env.production, SINGLE_USER_MODE=false has to be set to false until at least one user is created, or the web service won't even start. (Also chmod 755 ~/)