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.

GitHub
tootik logo

Self-host tootik

v0.25.5

Federated text-based social network with Gemini frontend

ReleaseOpen SourceApache-2.0
Updated8 hours ago
LanguageGo
Setup difficultyModerate
Stars
211
Ports
1965 (Gemini protocol frontend), 443 (HTTPS for ActivityPub federation and ACME challenges)
Install with Linux

What is tootik?

tootik is a federated social network written in Go that deliberately avoids a web interface. Users interact through Gemini clients, which provide a lightweight, privacy-focused, text-only experience suitable for low-bandwidth connections and screen readers. It implements a subset of ActivityPub to federate with platforms like Mastodon, Lemmy, Sharkey, Friendica, Akkoma, GoToSocial, Mitra, and PieFed. Features include text posts with three privacy levels, quote posts, polls, Lemmy-style communities, bookmarks, full-text search, avatar uploads via Titan, automatic old-post deletion, account migration, and invite-only registration. All data lives in a single SQLite file, and the server is a single static binary that runs on a modest VPS or single-board computer. Installation is documented for Debian with systemd, including automatic TLS certificate generation (Gemini and HTTPS via Let's Encrypt) and a Garden Fence blocklist. Configuration is stored in a JSON file with options for registration policies, feed update intervals, and actor age limits. Authentication uses TLS client certificates rather than passwords. The project is licensed under Apache-2.0.

Should you self-host tootik?

tootik scores 47/100 on selfhost.directory (how scoring works) and ranks #53 of 69 in Social Networks & Forums. It has 211 GitHub stars.

It shipped 18 stable releases in the past year. The latest, v0.25.5, came out on 3 October 2026. New versions land roughly every 2 weeks.

Setup is moderate: expect some configuration beyond a single command. It is Apache-2.0-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is Discourse (83/100, 48 024 stars). It scores higher overall, so compare the two before you pick. See tootik vs Discourse side by side.

Features

  • Account Migration
  • ActivityPub Federation
  • Automatic Old Post Deletion
  • Avatar Upload via Titan
  • Bookmarks
  • Communities
  • Follower Synchronization
  • Follows with Manual Approval
  • Full-Text Search
  • Gemini Protocol Frontend
  • Multiple Client Certificates
  • Polls
  • Portable Accounts
  • Quote Posts
  • Text Posts with Privacy Levels

tootik README

How to install tootik

Install tootik with Linux

curl -L https://github.com/dimkr/tootik/releases/latest/download/tootik-$(case uname -m in x86_64) echo amd64;; aarch64) echo arm64;; i686) echo 386;; armv7l) echo arm;; esac) -o /usr/local/bin/tootik chmod 755 /usr/local/bin/tootik

Prebuilt static executables for x86_64, aarch64, i686, armv7l

How to configure tootik

  • addrAddress and port for HTTP listener (when using -plain behind reverse proxy)

    Address and port for HTTP listener (when using -plain behind reverse proxy)

    values: host:port

  • blocklistPath to CSV blocklist file (e.g., Garden Fence)

    Path to CSV blocklist file (e.g., Garden Fence)

    values: file path

  • certPath to HTTPS TLS certificate file

    Path to HTTPS TLS certificate file

    values: file path

  • cfgPath to configuration JSON file

    Path to configuration JSON file

    values: file path

  • dbPath to SQLite database file

    Path to SQLite database file

    values: file path

  • domainThe domain name of the instance

    The domain name of the instance

    values: domain name

  • FeedUpdateIntervalInterval after which new posts from followed users appear in the feed

    Interval after which new posts from followed users appear in the feed

    values: duration string

  • gemcertPath to Gemini TLS certificate file

    Path to Gemini TLS certificate file

    values: file path

  • gemkeyPath to Gemini TLS private key file

    Path to Gemini TLS private key file

    values: file path

  • keyPath to HTTPS TLS private key file

    Path to HTTPS TLS private key file

    values: file path

  • loglevelLog verbosity level (negative values for more verbose)

    Log verbosity level (negative values for more verbose)

    values: integer

  • MaxInvitationsPerUserMaximum number of invitations each user can create (0 to disable invitations)

    Maximum number of invitations each user can create (0 to disable invitations)

    values: integer

  • MinActorAgeMinimum age of a federated actor before interaction is allowed

    Minimum age of a federated actor before interaction is allowed

    values: duration string

  • plainRun HTTP instead of HTTPS (for reverse proxy setups)

    Run HTTP instead of HTTPS (for reverse proxy setups)

    values: flag

  • RequireInvitationEnable invite-only user registration

    Enable invite-only user registration

    values: true, false

  • RequireRegistrationRestrict access to registered users only

    Restrict access to registered users only

    values: true, false

tootik releases & version history

More in Social Networks & Forums

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…