2.2. Catodon (Early Adopters)

Early Adopters

One of my bad sides is, that I can´t wait. So I couldn´t for having a running Catodon server with the additional challenge to let it run in a Docker stack. Basically I followed the install instructions of the great Catodon team. And I leveraged the docker-compose.yml.example and the provided config files docker_example.env and example.yml.

CAUTION: You should have some experience in setting up fediverse servers like Firefish, Sharkey and such, as I will only explain what made me stumbling.

Building the Catodon Image from Git Repository

Based on the docker-compose.yml.examle I created my own docker-compose.yml.

As there is - at the time I’m writing this - no docker image available, the image needs to be build from the Catodon git repository. That’s as easy as changing following lines in docker-compose.yml.

#   image: catodon
    build: https://codeberg.org/catodon/catodon.git

Building the image will start as soon as you start the container. For me and on my server it took about 10 minutes and went witout any issues. So be just patient.

Running on an ARM64 Based Server

My server is ARM64 based, and it turned out, that the pgroonga image which is used in docker-compose.yml is just not available for an ARM64 based system. So I exchanged it with another one of the same version and the same source, which has an ARM64 image available:

#   image: docker.io/groonga/pgroonga:latest-alpine-15
    image: docker.io/groonga/pgroonga:latest-debian-15

Enabling Pgroonga Database Extension

When starting my catodon stack, I recognized, that the database did not support pgroonga extension. In the install instructions it is described how to enable it, but unfortunately not how to do it in a docker environment.

This took me some time, but finally I made it:

Create Database

Let your Docker stack run for a while, until the error messages of Catodon appear complaining, that the database does not understand pgroonga. This creates the database and adds the database user for Catodon.

docker compose up

You see the logs, stop the processes with CTRL-C as soon as the error appears.

Work in Database Container

Take your Docker stack down and only start the db image:

docker compose down
docker compose up -d db

Open a shell in the db container as user postgres (I named my db container catodon_db, you might have to adapt the command):

docker exec -u postgres -it catodon_db bash

Enable the extension of the catodon database:

psql -U <database user> -c "CREATE EXTENSION pgroonga;" <database>

In this command replace

  • <database user> with the POSTGRES_USER defined in .config/docker.env\.
  • <database> with the POSTGRES_DBas defined it in.config/docker.env\.

The option -U did the trick and is a deviation from the install instructions.

Start the Catodon Stack

Take down your database container and start the Catodon stack:

docker compose down
docker compose up -d

Hopefully you see your Catodon server running and enjoy that you are an early adopter.

Kudos

Big kudos to the Catodon team. Although they just started, they make it quite easy to already setup your own server (It’s not official release at the moment, so be careful!). With the install instructions they already provided, setting up Catodon even in Docker works like a charm.