Upgrading a Fediverse Soapbox Installation to the Develop Branch

The Fediverse is a very unique place with a vast array of software offerings.

My present favorite option for Fediverse software is Soapbox. It adds features at a relatively rapid pace, utilizing an actively developed fork of Pleroma on the backend to facilitate the addition of features such as quote posts that aren't typically available on other fediverse platforms.

The instructions for installation of Soapbox are available here: https://soapbox.pub/install/

If you would like access to the newest features and improvements made to Soapbox, you can switch to the develop branch (some features of the develop branch frontend require the develop branch backend to function, so both need to be upgraded). While the develop branch is still in the testing phase and provided 'as-is' without any warranty, many of the largest and most active Fediverse Soapbox instances utilize it without issue(and I personally strongly prefer it from a performance standpoint).

You can upgrade to the develop branch by running the following commands on an existing built-from-source Soapbox install that uses asdf to manage Erlang/Elixir versions(you can switch the the asdf managed package from repo packages via the instructions here):

cd /opt/pleroma
sudo -Hu pleroma bash
git remote set-url origin https://gitlab.com/soapbox-pub/soapbox.git
git fetch origin --tags
git checkout develop

It is likely that you will need to update your toolchain via running asdf install as the Pleroma user. This may install new plugin versions- in such a case, you'll see a message similar to the below:

Erlang 24.1.6 has been installed. Activate globally with:

    asdf global erlang 24.1.6

Activate locally in the current folder with:

    asdf local erlang 24.1.6

Make sure to activate the new plugin versions prior to running additional commands. The following commands will recompile Soapbox BE:

mix local.hex --force
mix local.rebar --force
mix deps.get
MIX_ENV=prod mix compile

If you started with a Pleroma version prior to 2.3, the database will also require migrating:

MIX_ENV=prod mix ecto.migrate

It's not likely that the systemd service file will change frequently, but it's best practice to copy over the most recent version pulled via:

cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service
systemctl enable --now pleroma.service

Once the Pleroma service restarts, you can then install(the process is also identical for updating) the develop branch for the frontend, which is pretty trivial to accomplish. First, run:

curl -L https://gitlab.com/soapbox-pub/soapbox-fe/-/jobs/artifacts/develop/download?job=build-production -o soapbox-fe.zip Then, unzip the new front end into place via:

busybox unzip soapbox-fe.zip -o -d /opt/pleroma/instance

At this stage, you should be able to view your timeline successfully and enjoy the improvements of the develop branch.