LibrePortal
Sponsor
Install

WriteFreely

Blogging Platform

A clean, distraction-free blog that people can read on the web, by RSS, or follow from Mastodon and the fediverse

On this page
  1. At a glance
  2. Addresses and ports
  3. Settings
  4. In its config file
  5. Tools
  6. Works with
  7. Privacy and security
  8. What leaves this server
  9. What LibrePortal turns off
  10. Sources
  11. Under the hood

Good to know before you install

WriteFreely keeps the address it is installed on as its identity, so give it a domain first if it should federate.

At a glance#

What it is
Blogging Platform Communication
Where it opens
Web Interface On its own port at http://your-server:port, or blog.your-domain once you have a domain
Updates
When you choose New versions wait for you to press Update
Backups
Included Part of the daily backup when that's switched on
Copies
One per server

There's no step-by-step guide for WriteFreely here yet. Everything below comes straight from the app catalogue, so it's what LibrePortal really does when you install it. For using WriteFreely itself, its own documentation is the place to go: github.com/writefreely/writefreely.

Addresses and ports#

WriteFreely has one port. LibrePortal picks a free port number for each when you install, so yours will differ from anyone else's. The Config tab's Network section shows them, and the app's Open button uses the right one. "Anyone" means it's reachable from wherever your server is reachable; you can make it private later.

What it isWho can reach itWith a domain
Web Interface Anyone blog.your-domain

Settings#

These are WriteFreely's own settings on its Config tab. The settings every app shares, like backups, updates and where its data lives, are explained in App pages and settings.

SettingWhat it doesStarts as
Site Name The site's name at install; later in its Admin page. WriteFreely
Single Writer One blog at the root. Off lets the admin invite writers. On
Admin Username Also the blog's address and fediverse handle. Empty

In its config file#

A few more aren't on the Config tab yet. They live in the app's config file, described here so you know they exist. How to change them.

SettingWhat it doesStarts as
Name
CFG_WRITEFREELY_DISPLAY_NAME
What this app is called on your dashboards. Leave empty to use its usual name Empty
Show on the LibrePortal Dashboard
CFG_WRITEFREELY_SHOW_ON_DASHBOARD
Whether this app gets a shortcut on the front page of the LibrePortal WebUI, separate from any Dashy dashboard
Choices: true, false
true
Public Statistics
CFG_WRITEFREELY_PUBLIC_STATS
Whether WriteFreely may show its user and post counts to anyone who asks
Choices: true, false
false

Tools#

WriteFreely's Tools tab has 4 buttons for jobs you'd otherwise need a terminal for. Each one runs as a task, so you can watch it on the Tasks page and read what it did. More about Tools.

Reset User PasswordTested on 0.17.2

Set a new password for an existing user. Leave blank to generate one.

Asks for: Username, New password (optional)
Create User AccountTested on 0.17.2

Add a writer with their own blog. Needs single-user mode off.

Asks for: Username, Password (optional)
List UsersTested on 0.17.2

List every user.

Delete User AccountCan't be undoneTested on 0.17.2

Remove a user, with their blog and every post.

Asks for: Username

Works with#

These are the other apps WriteFreely knows how to work with. Once it's installed, its page shows the same list with whether each one is connected. How this works.

  • Fediverse: Its blogs can be followed from there, and from anywhere on the fediverse. There's nothing to switch on; LibrePortal shows whether it can work and lets you check. It needs a domain.
  • Grafana: Shows dashboards for the apps that have one. works with every app
  • Prometheus: Collects metrics from the apps that can export them. works with every app
  • Uptime Kuma: Watches your apps and shows when one goes down. works with every app

Privacy and security#

Worth knowing WriteFreely is a minimalist blog on your server. Posts are shared with the wider fediverse because that is how it works; LibrePortal turns off its update check.

What leaves this server#

  • Federation: posts are delivered to followers' servers
  • Post and user counts appear on the public stats endpoint

What LibrePortal turns off#

  • Update check

Licence: AGPL-3.0. Audited: 21 October 2026. See the privacy of every app and the Promise.

Sources#

Under the hood#

  • It runs this image: git.libreportal.org/libreportal/writefreely:0.17.2-acdc6b9@sha256:d1b9289c885828be36acc14555450f31ce53cc15f8f62584f568429c80a3d2e5. The version is pinned, and moves only when you update it.
  • It can sit behind Authelia's sign-in once Authelia is installed.
  • Its own project and documentation: github.com/writefreely/writefreely

Ports, settings, tools and connections on this page are read from LibrePortal v0.10.97's app catalogue each time the guide is built.

Next steps