Some Observations About Installing Mastodon on Arch.

Nginx

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 ~/)

The Different Documentation for Updating

Updating Guide
I really think that when you update, you're going to want to read through the installation guide, then compare it to the older version, then read through the upgrade guide. And finally, I think you want to really comb through the Upgrade notes in the Release Notes

Installation Guide (bare metal)
You may also find this Older Installation Guide useful for reference.