Sovereign, Ephemeral, Decentralized Imageboard over Reticulum.
RetiBoard is a censorship-resistant anonymous imageboard built on the Reticulum Network Stack (RNS). It recreates the classic imageboard experience—catalog views, thread bumping, and media sharing—without any centralized storage or infrastructure.
- Sovereign & Ephemeral — All data lives on end-user machines. Threads are short-lived (12h default TTL) and aggressively pruned.
- Infrastructure Neutrality — Reticulum nodes only route; they do not store or index.
- Strict Content Opacity — The backend is 100% content-blind. It handles encrypted blobs but never holds decryption keys or inspects payloads.
- Client-Side Governance — Moderation, filtering, and fetch policies are 100% local decisions.
- P2P Sync: Gossip-based synchronization via LXMF.
- Chunked Transfers: Multi-peer payload transfer with resume-safe fetching.
- Privacy: AES-GCM encryption with HKDF key derivation (client-side).
- Anti-Spam: Per-board Proof-of-Work (PoW) difficulty.
- Network Resilience: Optimized for both high-bandwidth and LoRa/low-speed links.
RetiBoard is designed for strong practical privacy when used correctly.
- Encrypted Content: Post content is encrypted before storage or transfer.
- Local Decryption: Content is decrypted locally in the browser, not on the backend.
- Infrastructure Neutrality: Routing nodes forward traffic but do not need your decryption keys.
- User-Controlled Identity: Reticulum identities are local, portable, and disposable.
The main privacy rule is simple: your first-hop connection matters. If you connect to a TCP node directly, that node can see your IP address. For better privacy, use Tor, a VPN, or another privacy-preserving first hop, and treat identities as compartmentalized personas when needed.
For practical privacy guidance, see:
docs/privacy.md
- Python: 3.10+
- Node.js: 18+ (for frontend build)
RetiBoard is currently in active development. Binary releases are not yet provided, and building from source is the recommended path for enthusiasts. See docs/compile-nutka-binary.md.
# Clone the repository
git clone https://github.com/user/retiboard.git
cd retiboard
# Install in editable mode
pip install -e .
# — or with uv —
uv synccd frontend
npm install
npm run build
cd ..# Start as a full client (Web UI + Node)
python -m retiboard
# Start in Relay Mode (Headless, no UI, purely for network participation)
python -m retiboard --relayAccess the Web UI at http://127.0.0.1:8787 (default).
- Linux Binary Build: Compiling a standalone binary (e.g., via Nuitka) is currently non-trivial and may require manual patches to the
rnslibrary's Identity initialization. It is recommended to run via the Python interpreter for now. - Identity: RetiBoard uses native Reticulum identities. Ensure your
~/.retiboard/identityis backed up if you wish to preserve your node's identity.
For detailed protocol, synchronization, and data model information, see:
docs/RetiBoard_v3_6_4_spec.md
RetiBoard is released under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.

