The Fediverse is a network of interconnected social media servers which federate to form a coherent network, where you can follow and interact with the people you’re interested in.

While the best known Fediverse server type is Mastodon, the Fediverse is home to dozens of types of server. Akkoma is a fully featured server that’s easy to deploy on your Raspberry Pi. Here’s how…

Raspberry Pi 4B with the official case

What Is Akkoma?

As with all Fediverse servers, Akkoma relies on the ActivityPub protocol to run. It’s built on the popular Pleroma codebase, but borrows features from MissKey—such as the ability to see what server types other user accounts are running on. Akkoma is under very active development and is updated on a regular basis.

With Akkoma, you can add your own icon packs, employ a variety of markdown flavors in posts, customize what front-end your Fediverse instance uses, edit your posts, quote other people’s posts, and set an arbitrary character limit.

build akkoma container

How to Install Akkoma on Raspberry Pi

As you’re using your Raspberry Pi as a server, you should first follow our guide onhow to set up your Raspberry Pi as a web server. You don’t need to follow the steps for setting up MariaDB, PHP, or Docker Compose at this point.

Once your Pi is ready to function as a server, connect to it remotely via SSH, and thenmanually install the latest release of Docker Compose.

generate akkoma instance

Clone the Akkoma Git repository and move into it:

Now set the environmental variables for Docker Compose with the following command:

akkoma frontend settings

This process takes several minutes. When you’re returned to the command prompt you’ll need to build a container:

Again, this will take a while. We timed the process at around three minutes, which gives you plenty of opportunity to check out otherself-hosted projects you may run on a Raspberry Pi, or perhapsplay a game of Solitaire in the Linux terminal.

file and character limits on Akkoma

Just because you’ve created a Docker container doesn’t mean you’re ready to run it yet. Paste the following group of commands and then pressEnter.

AnswerYwhen asked if you want to install Hex and rebar3. The app will compile for around a further 12 minutes. Use this time to listen to somepodcasts that will boost your positivity.

Feeling inspired and invigorated, you should return to the command line and answer some questions about your instance. When prompted, enter your domain name without thehttp://orhttps://prefix, followed by the name of your instance and your email address.

You’ll need to choose whether to let search engines index your site (it’s up to you), and whether to store the configuration in the database. Chooseyesfor this option as it will let you administer your instance through the admin web interface.

Set the hostname of your database asdb, confirm the database name and user asakkoma, and enter the database password asakkoma.

RUM indicesallow for fast searching of the PostgreSQL database, so tapywhen asked if you want to use them. The default port is4000. You can leave this as it is unless you’re using port 4000 for other self-hosted software.

An easy way to check for ports in use is to open another terminal window or tab, and enter:

Set the IP will the app listen to as0.0.0.0, and accept the sensible defaults for the remaining questions.

The process will end with your instance configuration generated to config/generated_config.exs. Copy this file to a new location:

The following command will return the container ID as a 64-character string. Copy it elsewhere for safekeeping. Now use this command to set up the database:

When the container has successfully set up, stop it with:

…to run migrations and recompile your files. You’ll see multiple notifications that “it’s taking more than 10s”, and the process will easily give you enough time to make a cup of tea.

Your instance will need an interface for users to interact with. For now, you will just need the Pleroma front end and the admin front end:

You’re now ready to create the admin user. Enter:

This command will return a summary of the information you’ve entered so far. Check it’s correct, then entery.

A link will be generated for you to reset the admin password. As your instance isn’t yet running and isn’t exposed to the internet, note down the link for later.

Expose Your Akkoma Instance to the Web

You will need to create an Apache configuration file for your Akkoma instance:

In the new file, paste the following:

Save and exit nano withCtrl + OthenCtrl + X.Enable the conf file, then restart Apache:

Now use Certbot to fetch and deploy TLS certificates and keys:

Select your domain name from the list and press Enter. Restart Apache again with:

Navigate back to your Akkoma directory, and bring up Docker Compose in detached mode:

Wait a few minutes, then visit your Akkoma instance using the password reset link. Make sure you choose a strong password to secure the instance.

Customize Your Akkoma Instance

Before you do anything else, you should visit your web admin page atyour-domain-name.tld/pleroma/admin.

There are hundreds of options here, but you may safely ignore most of them for now. SelectSettings>Frontend, and read through all the things it’s possible to change. You may want to choose a different front end from the default Pleroma, or set the background to a different image.

Exactly what you choose to do here is up to you and your users. To give you an idea of what’s available, we set the following on our demo instance:

We chose to enable green text on lines prefixed with the>character; set the conversation display style to tree; we set the site logo to a cartoon of this writer’s head, and uploaded a stylized NSFW image warning.

More seriously, you’ll want to choose the default feed users see when they log in, and what visitors see when they’re not logged in, the way panels are arranged, and the flavors or Markdown you want to render.

When you’re happy with the front end, head over toSettings>Instance. Set your site name, and description, then take a look at the limits.

While mainstream social media sites have a fairly low character limit, you can set yours to whatever you want. We set a 750,000-character limit for posts from our own instance, but chose to subject posts from remote instances to a mere 100,000-character limit. You can also set limits for file uploads and avatars.

Other vital considerations include whether you want users to be able to register on your instance directly, whether you’d prefer an invite-only system, and whether you want to federate with other instances or run your social media site in splendid isolation. There are so many options inSettings, you should spend a few hours getting familiar with them.

When you’re done, log in through your main URL, andstart growing your Fediverse followers.

Akkoma Isn’t the Only Fediverse Server

While Akkoma is our favorite Fediverse server, and is ideal for running an instance on your Raspberry Pi, it’s far from the only one.

The Fediverse is the ideal place to build an online town square for groups of like-minded people, and by experimenting with different types, you can find the perfect server to build your own online community.