Writefreely, Again

Hello world from Writefreely!

I am not exactly new to Writefreely.

The first time I tried it out was a few years ago—July 2022, to be precise, according to my Git logs. I don't remember why I gave it up back then; at the time, I had less experience with Docker, so it's entirely possible that I simply couldn't get it to work and abandoned it.

Fast-forward to the present, 2025. I decided to give Writefreely another go, and this time I managed to get it up and running with Docker. The docker-compose.yml file I created is quite simple:

services:
  writefreely:
    container_name: writefreely
    image: ghcr.io/writefreely/writefreely:latest
    user: "0:0"
    volumes:
      - ./data:/data
      - ./config.ini:/go/config.ini
    networks:
      - proxied_services
    restart: unless-stopped

networks:
  proxied_services:
    external: true

A few key points about this docker-compose configuration:

Initial Setup Steps

Before starting the container, I had to complete a few manual setup steps.

First, I generated the configuration and keys:

$ docker compose run --rm --entrypoint sh writefreely  
/go # cmd/writefreely/writefreely config start
...
/go # cmd/writefreely/writefreely keys generate
...

Then, I copied the following directories from the Writefreely Git repository into the data directory:

And that's it! I now have a fully functional Writefreely deployment running with Docker Compose. 🚀