Running Akkoma with Docker

16 Jun 2023, 22:11 2min read

So, today we're going to try to download and run the Akkoma Fediverse server using Docker!

If you're not familiar with Akkoma, then you can visit this website to find out more about it.

What is Docker?

Docker is a program that lets you containerize (spelled container-ize) applications, which means that every application will run in its kind of VM. This gives you more security, and has a very minimal performance impact.

Installing Docker

These are the requirements for installing Docker:

  • 64-bit CPU/OS
  • KVM virtualization support
  • QEMU >= 5.2
  • A Linux system (required for Akkoma)

You can download Docker and docker-compose for your distro from your package manager or directly from docker's website.

Downloading the Akkoma Docker image

The Akkoma docker image is different from normal Docker images, as it has to be built from source before it is run, and not downloaded like regular images.

You should begin by cloning the akkoma-docker repository using these commands:

git clone https://github.com/hyena-network/akkoma-docker
cd akkoma-docker

Setting up env variables

Copy the .env.dist file to .env and change these values to the ones matching your desired server configuration:

DOMAIN=mydomain.com
INSTANCE_NAME=MyAkkomaServer
ADMIN_EMAIL=my@email.com
REGS_OPEN=FALSE

Building the Akkoma docker image

Building the Akkoma docker image is very simple, all you need is to run

./manage.sh build

This process will take a good chunk of time, as the Akkoma Git repository is cloned and built from source.

Running Akkoma

Finally, when your image is built, you can run

./manage.sh up

or

docker-compose up -d

To start your server.

🥳 You're done! Now you can access your server on port 4000!

What next?

The next step is to setup a reverse proxy to serve Akkoma on port 80 under your chosen domain name and add HTTPS. For this, I recommend the excellent Caddy webserver.

Here is an example config using Caddy:

mydomain.com {
    reverse_proxy akkoma-docker-server-1:4000
    encode gzip zstd
}

As a bonus, this will activate GZIP text compression, making your instance load faster.

Good luck with your Fediverse adventures!