Skip to main content

Decentralized bulletin boards on atproto.

Project description

Build License: AGPL v3 Ko-fi

@bbs

Bulletin boards on the atmosphere.

Run a BBS from your own account. No server required. Users own their posts, communities migrate freely. Built on atproto.

Features

  • Web app and TUI: Browse, post, and manage BBSes from your browser or terminal.
  • Built on atproto: All data lives in user repos as xyz.atboards records. No central database.
  • No server needed to run a BBS: A sysop just publishes records to their own PDS.
  • OAuth login: Sign in with your Bluesky handle or any atproto account.
  • Discover BBSes: The home screen shows BBSes from across the network.
  • Flat replies with quotes: Threads with chronological replies. Quote other replies inline.
  • File attachments: Attach files to threads and replies, stored as blobs in your repo.
  • Inbox: See replies to your threads and quotes of your replies in one place.
  • Moderation: Sysops can ban users, hide posts, and manage their BBS.
  • Sysop tools: Create and edit your BBS, manage boards, post news, delete your BBS.
  • Self-hostable: One Docker command to run the web app.

Quick start

TUI (recommended)

Requires Python 3.14+ and uv.

uv tool install atbbs
atbbs

Or from source:

git clone https://github.com/alyraffauf/atbbs.git
cd atbbs
uv sync
uv run atbbs

Web app (Docker)

docker run -d -p 8000:8000 -v atbbs-data:/data -e PUBLIC_URL=https://your-domain.com ghcr.io/alyraffauf/atbbs:latest

Or with Docker Compose:

git clone https://github.com/alyraffauf/atbbs.git
cd atbbs
docker compose up -d

Visit http://localhost:8000.

Web app (from source)

git clone https://github.com/alyraffauf/atbbs.git
cd atbbs
uv sync
just dev

Architecture

atbbs has no backend database for content. All BBS data lives in atproto repos:

  • Sysop records: xyz.atboards.site, xyz.atboards.board, xyz.atboards.news
  • User records: xyz.atboards.thread, xyz.atboards.reply

The web app and TUI query existing network infrastructure:

  • Slingshot — cached record and identity fetching
  • Constellation — backlink index for discovering threads and replies
  • UFOs — BBS discovery feed

Configuration

On first run, atbbs generates:

  • secrets.json — app secret key and OAuth client signing key
  • atbbs.db — SQLite database for OAuth sessions

Web app: Set ATBBS_DATA_DIR to control where these are stored (default: current directory, /data in Docker). Set PUBLIC_URL to your domain for OAuth callbacks.

TUI: Data is stored in ~/.local/share/atbbs/ (Linux), ~/Library/Application Support/atbbs/ (macOS), or %APPDATA%/atbbs/ (Windows).

License

AGPL-3.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

atbbs-0.3.1.tar.gz (134.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

atbbs-0.3.1-py3-none-any.whl (74.2 kB view details)

Uploaded Python 3

File details

Details for the file atbbs-0.3.1.tar.gz.

File metadata

  • Download URL: atbbs-0.3.1.tar.gz
  • Upload date:
  • Size: 134.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for atbbs-0.3.1.tar.gz
Algorithm Hash digest
SHA256 8f2dffdfc70d1340a7b2ba1324a82638b3472bba00d3a48982bfac6bc00c9d27
MD5 517a05ce6afea22e9edebedb0f9e603a
BLAKE2b-256 8b3c9f0facda0011a1504bcc4bda0b49ad64677686e2f2f6c53aef6d2df785ab

See more details on using hashes here.

File details

Details for the file atbbs-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: atbbs-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 74.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for atbbs-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 816c5f58fb890911aeba4f2e3ac5dcbad04c5f9bd8c77f67fefa436423a12a03
MD5 2c1ca086860415e31267672720471e3d
BLAKE2b-256 49ac0e635e03887a6f7aa8e569f22a578ae3bc7b5e6c7d3f4309fce6c971afa9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page