Return to homepage

Install Florence Pre-release

Back in I talked about a new "fork" of Mastodon called Florence and how you could make your own if you wanted to. Just the very first pre-release of Florence was made available, and on I installed it myself and started using it.

As a quick recap, Mastodon is a fully free/open source project that enables people to self-host their own Twitter-like microblogging servers that all talk to each other (or "federate") with ActivityPub. The key difference is that there are no advertisements, sensitive topics are hidden behind content warnings, moderator decisions actually make sense, and you see posts in chronological order by default. Here is a fantastic video produced by Shonalika that explains what "the fediverse" is and why you might want to give Mastodon a try.

Florence still connects to "the fediverse" and functions in much the same way Mastodon does, but the stated aim of the project is to make decisions via an accountable governance committee rather than every user being subject to the whims of a "benevolent dictator for life" (the default governance model of most free software/open source projects). Over the next few months helpful changes that improve accessibility and the efficacy of the provided moderation tools from other downstream forks will be incorporated, and before the project intends to provide a fully stable release that existing Mastodon installations can switch across to with as little hassle as possible.

While Florence is not ready for dissatisfied administrators to switch across to en masse just yet, this pre-release is fairly stable for more adventurous users because none of the new changes break existing functionality. The Mattermost server set aside for Florence contributors also has over 50 people chatting on a daily basis about how they can progress this initiative, so that bodes well for the project's future, and as someone that has been cheerleading "#forktogether" since its inception I think it is quite pleasing to see!

Before you try it out though, I am going to responsibly provide you with a big red warning.

WARNING: v0.0.1.0 is the first pre-release for this project. While it has proven to be stable on my own freshly-installed single user instance, it is strongly recommended that you wait until a proper v1.0.0 release before migrating across any existing servers you care about or relying on Florence for larger multi-user instances. The Florence project does not support these instructions so the community may only be able to offer limited help if you get stuck, and if you follow these steps you are doing so entirely at your own risk.

Okay, if that did not scare you away then these are the new features you would gain by switching to Florence at this very early stage:

Florence v0.0.1.0 is based on Mastodon 2.9.0, so any changes introduced to Mastodon since that version will not be present in this initial pre-release of Florence. You can read the full release notes on the Florence development blog.

All the instructions in this blog post assume you are using Ubuntu 18.04 LTS on your server, so you may need to adapt them if you are using a different Linux distribution or a variant of BSD instead. I have not provided migration steps for existing Mastodon instances, but a good starting point would be the upstream server migration documentation.

Fresh installation of Florence

Fortunately you can just follow the upstream Mastodon installation instructions for most of this, but there are a few things you should be aware of first.

Hardware requirements

While you can get away with a single-core CPU and 1GB RAM, you will get a lot of "Error 500" pop-up messages and have to refresh the page a lot because the underlying database and web server will run out of memory quite often with their retrieval tasks.

It is recommended you provide at least a single-core CPU, 2GB memory with matching swap space and configure Postgres to use 1GB RAM with pgTune. This provides an excellent experience for a single user instance and still leaves you with enough headroom to invite a handful of other users if you want to without significantly impacting performance.

On Digital Ocean and Linode the recommended specifications I have described will cost you $10 (approximately £7.90/€8.80) per month without additional backup facilities, but you may be able to find other hosts yourself that are even cheaper. (This blog post is not sponsored by either company, I have just provided them as examples so you can budget for your hosting costs)


You don't need to install a huge list of iptables rules, you can just use ufw and its shortcut commands as the root user:

# ufw default deny incoming
# ufw allow ssh
# ufw allow http
# ufw allow https
# ufw status
# ufw enable

If you want to enable IPv6 support then ensure this is set in /etc/default/ufw before running these commands. Also if you prefer to use SSH with a non-standard port (such as 2222) you should manually specify it with ufw allow 2222 instead of using ufw allow ssh.

Florence or Mastodon?

As you go through the instructions you should be able to safely use florence instead of mastodon for things like the system user, database name, service names, symlinks in nginx, etc so long as you also update any associated configuration files. The notable exception would be this build step as it would require changes at the code level to fix:

$ RAILS_ENV=production bundle exec rake mastodon:setup

Do not just accept the defaults as you run through that script by the way, as it still works on the assumption you have not renamed everything. Also ensure you clone from the correct Github repository and checkout the correct version:

$ git clone live && cd live
$ git checkout v0.0.1.0

SSL shenanigans

As I discovered when I deployed Florence myself, running certbot after copying across the provided nginx.conf file was a mistake as it left the server stuck in an SSL loop whenever I tried to view pages in a web browser.

To avoid that hassle you should generate your "Let's Encrypt" SSL certificates first and copy/symlink the configuration file afterwards. You can then just uncomment two lines in /etc/nginx/sites-available/florence to make it work.

Post-installation steps

You can safely follow the upstream post-installation steps to create various kinds of backup and manually create extra admin users.

Personally I just rely on a daily snapshot of the server, have configured the system to automatically update itself and scheduled the server to reboot once a day. This suits my needs for a single user instance, but you may want to create a more in-depth disaster recovery plan if you will be inviting other people to join you on your Florence installation.

Finally, this early pre-release of Florence still uses the Mastodon branding throughout the website by default. Thankfully it is quite straightforward to change site titles and apply most aesthetic fixes in the "Site Settings" area of the admin UI.