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
go-ssb-room logo

Self-host go-ssb-room

v2.0.6

Go implementation of Secure Scuttlebutt room server

ReleaseOpen SourceMIT
Updated3 years ago
LanguageGo
Setup difficultyAdvanced
Stars
200
Ports
3000 (HTTP server for web dashboard and admin UI), 8008 (Secret-handshake + muxrpc for SSB client connections), 6078 (Metrics and pprof HTTP server)
Requires
SQLite
Install with Docker Compose
Web administration dashboard for go-ssb-room

What is go-ssb-room?

go-ssb-room is a Go implementation of the Secure Scuttlebutt (SSB) Room server specification (v1 and v2). It enables SSB peers to discover and connect with each other by providing a publicly reachable server that handles tunneling connections via secret-handshake+boxstream transport and muxrpc. The server includes an embedded HTTP server with an HTML frontend for administration, supporting user management with allow/deny lists, moderator and administrator roles, multiple privacy modes (open, community, restricted), sign-in with SSB, HTTP invites, and alias management. It can be deployed via Docker Compose, Debian packages, or built from source. The server uses SQLite for data storage and requires a reverse proxy (like nginx) for TLS termination. Configuration is done via environment variables including HTTPS_DOMAIN, ALIASES_AS_SUBDOMAINS, and REPO path.

Should you self-host go-ssb-room?

go-ssb-room scores 47/100 on selfhost.directory (how scoring works) and ranks #3 of 3 in Peer-to-Peer. It has 200 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. It is MIT-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is ZeroNet (63/100, 18 786 stars). It scores higher overall, so compare the two before you pick. See go-ssb-room vs ZeroNet side by side.

Features

  • Alias Management
  • HTTP Invites
  • MuxRPC tunneling
  • Privacy Modes
  • Secret-handshake transport
  • Sign-in with SSB
  • SSB Room v1/v2 protocol support
  • User management with roles
  • Web Administration Dashboard

go-ssb-room README

How to install go-ssb-room

Install go-ssb-room with Docker Compose

Docker and Docker Compose
Environment variables
HTTPS_DOMAIN, ALIASES_AS_SUBDOMAINS, REPO

docker-compose build room

docker-compose up

Requires copying .env_example to .env and setting HTTPS_DOMAIN. Data persisted to ./ssb-go-room-secrets. Reverse proxy (nginx/Apache) needed for TLS.

How to configure go-ssb-room

  • ALIASES_AS_SUBDOMAINStrueWhether aliases are served as subdomains (requires wildcard certificate)

    Whether aliases are served as subdomains (requires wildcard certificate)

    values: true,false

  • HTTPS_DOMAINThe domain name the room is running on for TLS and AllowedHosts checks

    The domain name the room is running on for TLS and AllowedHosts checks

  • MODEPrivacy mode determining room access controls

    Privacy mode determining room access controls

    values: open, community, restricted

  • REPO~/.ssb-go-roomPath to store the log, indexes, and SQLite database

    Path to store the log, indexes, and SQLite database

  • SHSCAP1KHLiKZvAvjbY1ziZEHMXawbCEIM6qwjCDm3VYRan/s=Secret-handshake app-key/capability (defines which SSB network to join)

    Secret-handshake app-key/capability (defines which SSB network to join)

go-ssb-room releases & version history

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…