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.

hatsu logo

Self-host hatsu

v0.3.5

ActivityPub bridge for static sites

BetaOpen SourceAGPL-3.0
Updated9 hours ago
LanguageRust
Setup difficultyModerate
Stars
258
Port
3939 (HTTP server)
Docker
ghcr.io/importantimport/hatsu
Install with Docker

What is hatsu?

Hatsu is a self-hosted ActivityPub bridge that enables static websites to participate in the Fediverse. It acts on behalf of a static site, accepting follow requests from Fediverse users, pushing new posts to followers' timelines, and receiving replies to backfeed to the static site. Unlike similar tools, Hatsu uses RSS/Atom/JSON feeds as its data source instead of requiring microformats2 markup, and it fully automates the process without manual Webmention sending. Written in Rust for high performance, it supports SQLite or PostgreSQL databases and provides Docker, binary, and NixOS installation methods. The project is licensed under AGPL-3.0 and uses the same ActivityPub federation library as Lemmy, ensuring compatibility with Mastodon (including authorized fetch), GoToSocial, and Pleroma.

Should you self-host hatsu?

hatsu scores 45/100 on selfhost.directory (how scoring works) and ranks #5 of 5 in Fediverse. It has 258 GitHub stars.

It shipped 2 stable releases in the past year. The latest, v0.3.5, came out on 1 October 2026. New versions land roughly every 10 months.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is AGPL-3.0-licensed and written mostly in Rust.

Its closest alternative on selfhost.directory is Misskey (74/100, 11 365 stars). It scores higher overall, so compare the two before you pick. See hatsu vs Misskey side by side.

hatsu README

How to install hatsu

Install hatsu with Docker

Docker Engine
Environment variables
HATSU_DATABASE_URL, HATSU_DOMAIN, HATSU_LISTEN_HOST, HATSU_LISTEN_PORT, HATSU_PRIMARY_ACCOUNT, HATSU_ACCESS_TOKEN, HATSU_NODE_NAME, HATSU_NODE_DESCRIPTION, HATSU_LOG, HATSU_ENV_FILE

docker run -d
--name hatsu
--restart unless-stopped
-p 3939:3939
-v /opt/hatsu/hatsu.sqlite3:/app/hatsu.sqlite3
-e HATSU_DATABASE_URL=sqlite://hatsu.sqlite3
-e HATSU_DOMAIN={{hatsu-instance-domain}}
-e HATSU_LISTEN_HOST=0.0.0.0
-e HATSU_PRIMARY_ACCOUNT={{your-static-site}}
-e HATSU_ACCESS_TOKEN=123e4567-e89b-12d3-a456-426614174000
ghcr.io/importantimport/hatsu:{{version}}

Requires all environment variables to be specified at once

How to configure hatsu

  • HATSU_ACCESS_TOKENToken for accessing Admin API (optional)

    Token for accessing Admin API (optional)

    values: any string, recommended random UUID v4

  • HATSU_DATABASE_URLsqlite::memory:Database connection URL (sqlite: or postgres:)

    Database connection URL (sqlite: or postgres:)

    values: sqlite://hatsu.sqlite3 or postgres://...

  • HATSU_DOMAINDomain name assigned to this Hatsu instance

    Domain name assigned to this Hatsu instance

    values: e.g. hatsu.local

  • HATSU_ENV_FILE/etc/hatsu/.envPath to dotenv file

    Path to dotenv file

  • HATSU_LISTEN_HOST127.0.0.1Hostname on which the Hatsu server listens

    Hostname on which the Hatsu server listens

    values: e.g. 0.0.0.0

  • HATSU_LISTEN_PORT3939Port on which the Hatsu server listens

    Port on which the Hatsu server listens

    values: e.g. 3939

  • HATSU_LOGinfoLog level and filtering, same format as RUST_LOG

    Log level and filtering, same format as RUST_LOG

    values: e.g. info,tokio::net=debug,sqlx::query=warn

  • HATSU_NODE_DESCRIPTIONUsed for NodeInfo metadata.nodeDescription (optional)

    Used for NodeInfo metadata.nodeDescription (optional)

  • HATSU_NODE_NAMEUsed for NodeInfo metadata.nodeName (optional)

    Used for NodeInfo metadata.nodeName (optional)

  • HATSU_PRIMARY_ACCOUNTPrimary account for this Hatsu instance, used as signed_fetch_actor

    Primary account for this Hatsu instance, used as signed_fetch_actor

    values: e.g. blog.example.com

hatsu releases & version history

More in Fediverse

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…