Blogs from outer space


Read the latest posts from Blogs from outer space.

from Not the blog you're looking for

WriteFreely is a really neat solution for hosting one or multiple blogs and join the Fediverse.

Sadly, their deployment guide is lacking, their docker hub image is 7 months old and their docker-compose.yml is just wrong1, so here's a quick guide to get started using docker-compose.

Build the image

As mentioned above, the docker image is outdated, so the best way to get WriteFreely is to build the docker image yourself.

Clone the repository:

git clone
cd writefreely

Then, build the image:

docker build -t writefreely:dev .

This will take a while, while still building you can start setting up the docker-compose file, create a docker-compose.yml file with this:

version: "3"

    image: writefreely:dev
      - "./config.ini:/go/config.ini"
      - web-keys:/go/keys
      - writefreely
    restart: unless-stopped
      - "8080:8080"

    image: "mariadb:latest"
      - db-data:/var/lib/mysql
      - writefreely
      - MYSQL_DATABASE=writefreely
      - MYSQL_ROOT_PASSWORD=change-me
    restart: unless-stopped


(Change version to "2" if you want to run this on portainer)

Create an empty config.ini file in the same directory.

When the build is done, use docker-compose up -d to start everything.

However, it will not work.

This is because there is some setting up to do. I haven't found a better way to do this (mostly because setting up requires both containers to be up and connected), if you know a better way please let me know!2

Some checks

Before running the configuration, make sure the database container is set up correctly:

  1. Check that you can connect to the database as root from outside the container
  2. Check that the writefreely database exists.

I don't know why, but both were not working out of the box for me. If you need help, check the Troubleshooting section at the bottom.

Create configuration and initialize database tables

Run this command and follow the interactive configuration process:

docker exec -u root -it writefreely_web_1 /go/cmd/writefreely/writefreely -config

If everything went well, your config.ini should be now filled and your writefreely database should have been populated with tables.

If you selected a multi-instance you will need to create an admin user manually, do it with this command:

docker exec -u root -it writefreely_web_1 /go/cmd/writefreely/writefreely -create-admin USERNAME:PASSWORD

Running behind a reverse-proxy

The official guide contains a sample Nginx configuration for running Writefreely behind a reverse proxy, but otherwise, it's just your run-of-the-mill web service and doesn't require any special treatment.

Interaction with Mastodon and other Fediverse clients

Screenshot of this blog on Mastodon

After deploying WriteFreely and getting a blog started, you should be able to follow it from Mastodon/Pleroma/etc by searching for @blogname@blogurl, for example, this blog is Keep in mind that because of how ActivityPub works, you can't see posts from before the instance you're on started following the one you're trying to subscribe to.


If your database configuration came broken as it happened to me, here's how to fix it:

Connect to the database:

docker exec -it writefreely_db_1 /usr/bin/mysql

Run these commands, depending on the issue:

-- Table not found
CREATE DATABASE "writefreely";

-- Cannot connect as root from outside
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '<password>';

1 I'm not bashing them, their software is marked as alpha and they're probably breaking things right now. 2 or write me an e-mail


from BFOS

Blogs from outer space is a lax place where to write about anything you want.

We use WriteFreely, which allows users to publish their own blog, have it on the Fediverse and even configure it as a novel (oldest post first, no dates) if you want a particularly hipster way to show off your fan-fiction!

Want an account? Write at or hit me up on the fediverse at!

Want to see what everyone's doing here? Check the public reader to see a feed of all the public posts on this instance!