selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

fx logo

Self-host fx

v3.1.0

Lightweight self-hosted microblogging service

ReleaseOpen SourceMIT
Updated11 hours ago
LanguageRust
Setup difficultyEasy
MobileResponsive
Stars
335
RAM
a few MB
Port
3000 (HTTP web interface)
Requires
SQLite
Docker
zot.huijzer.xyz/bloglite
Install with Docker Compose

What is fx?

bloglite is a minimal microblogging engine you run on your own hardware. It lets you write and edit posts in Markdown through a web interface, with built-in syntax highlighting for code and LaTeX rendering for math formulas. You can upload images and files to embed in posts, and everything is stored in a single SQLite database. The service exposes a simple admin UI protected by a username and password, and includes a backup feature that exports all content to plain-text files which can be committed to a Git repository automatically via GitHub Actions or Forgejo. It is distributed as a Docker image (zot.huijzer.xyz/bloglite) and configured entirely through environment variables. The project was formerly named fx and renamed to bloglite in version 3.0.

Should you self-host fx?

fx scores 47/100 on selfhost.directory (how scoring works) and ranks #14 of 24 in Blogging. It has 335 GitHub stars.

It shipped 17 stable releases in the past year. The latest, v3.1.0, came out on 24 October 2026. New versions land roughly every 2 weeks.

Setup is easy: most people get it running in one sitting. An official Docker image is available. It is MIT-licensed and written mostly in Rust.

Its closest alternative on selfhost.directory is Pleroma (63/100). It scores higher overall, so compare the two before you pick. See fx vs Pleroma side by side.

Features

  • Built-in search
  • File and image uploads
  • Forgejo backup automation
  • GitHub Actions backup automation
  • Graceful Shutdown
  • Health check endpoint
  • Markdown posting
  • Plain-text backup
  • RSS/Atom feed
  • Session Management
  • Syntax highlighting
  • WebFinger support

fx README

How to install fx

Install fx with Docker Compose

Docker and Docker Compose
Environment variables
BLOGLITE_USERNAME, BLOGLITE_DOMAIN, BLOGLITE_PASSWORD (or BLOGLITE_PASSWORD_FILE), plus optional BLOGLITE_* variables

services: bloglite: image: 'zot.huijzer.xyz/bloglite:3' container_name: 'bloglite' environment: BLOGLITE_USERNAME: 'john' BLOGLITE_DOMAIN: 'example.com' env_file: # Contains BLOGLITE_PASSWORD="<PASSWORD>". - 'BLOGLITE_PASSWORD.env' ports: - '3000:3000' volumes: # Stores the SQLite database. - './data:/data:rw' healthcheck: test: ['CMD', '/bloglite', 'check-health'] logging: driver: 'json-file' options: max-size: '5m' max-file: '10' restart: 'unless-stopped'

Requires BLOGLITE_PASSWORD in an env file or BLOGLITE_PASSWORD_FILE

How to configure fx

  • BLOGLITE_DATABASE_PATH/data/db.sqlitePath to the SQLite database file

    Path to the SQLite database file

    values: file path

  • BLOGLITE_DOMAINDomain name of the website

    Domain name of the website

    values: domain name

  • BLOGLITE_HTML_LANGenLanguage of the website

    Language of the website

    values: language code

  • BLOGLITE_LOG_LEVELinfoLogging level

    Logging level

    values: trace/debug/info/warn/error

  • BLOGLITE_PASSWORDAdmin password for the web interface

    Admin password for the web interface

    values: any non-empty string

  • BLOGLITE_PASSWORD_FILEPath to a file containing the admin password (overrides BLOGLITE_PASSWORD)

    Path to a file containing the admin password (overrides BLOGLITE_PASSWORD)

    values: file path

  • BLOGLITE_PORT3000Port the server listens on

    Port the server listens on

    values: any valid port number

  • BLOGLITE_PRODUCTIONfalseRun in production mode

    Run in production mode

    values: true/false

  • BLOGLITE_TRIGGER_BRANCHmainBranch in which the workflow is triggered

    Branch in which the workflow is triggered

    values: branch name

  • BLOGLITE_TRIGGER_HOSThttps://github.comHost for the workflow trigger (GitHub or Forgejo instance)

    Host for the workflow trigger (GitHub or Forgejo instance)

    values: URL

  • BLOGLITE_TRIGGER_OWNER_REPOOwner and repository for triggering backup workflows (e.g., johndoe/bloglite-backup)

    Owner and repository for triggering backup workflows (e.g., johndoe/bloglite-backup)

    values: owner/repo

  • BLOGLITE_TRIGGER_TOKENToken for triggering GitHub Actions or Forgejo workflows for backups

    Token for triggering GitHub Actions or Forgejo workflows for backups

    values: personal access token

  • BLOGLITE_TRIGGER_WORKFLOW_IDbackup.ymlWorkflow ID (filename) that is triggered for backups

    Workflow ID (filename) that is triggered for backups

    values: workflow filename

  • BLOGLITE_USERNAMEadminAdmin username for the web interface and WebFinger

    Admin username for the web interface and WebFinger

    values: any string

fx releases & version history

More in Blogging

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…