No description
Find a file
2026-07-03 02:29:09 +00:00
.github add CONTRIBUTING.md and issue template 2026-06-09 03:15:55 +00:00
tests auto-discovery toggle, auto-prune with customizable retention 2026-06-05 01:00:47 +00:00
tinyweb_forum logging, gitignore, pin rns 2026-07-03 02:25:03 +00:00
.gitignore logging, gitignore, pin rns 2026-07-03 02:25:03 +00:00
CONTRIBUTING.md docs(contributing): expand with setup, conventions, and PR guidelines 2026-07-03 02:27:57 +00:00
LICENSE add AGPLv3 license 2026-06-09 01:10:04 +00:00
pyproject.toml logging, gitignore, pin rns 2026-07-03 02:25:03 +00:00
README.md docs(readme): remove about section (LLM/personal disclosure) 2026-07-03 02:29:09 +00:00
SECURITY.md security: replace personal email with confidential issue reporting 2026-07-03 02:22:56 +00:00

tinyweb-forum

A link-sharing forum plugin for TinyWeb. Threads and posts are stored locally and exchanged with other TinyWeb instances over the Reticulum mesh.

Contents

Install

pip install tinyweb-forum

Enable it on TinyWeb's /style page under "Forum".

How it works

  • Threads and posts are stored in ~/.tinyweb/forum.db (separate from TinyWeb's search index)
  • Instances auto-discover each other via RNS announces — no manual setup
  • Sync is manual by default: click "sync now" on the forum page. Auto-sync every 5 minutes is optional (toggle on moderation page)
  • At scale, sync uses epidemic gossip: 20 random peers per cycle, converging within ~O(log N) cycles
  • Authors are identified by a short pseudonymous identity hash (no accounts, no sign-up)
  • Auto-discovery can be disabled in the moderation page
  • Threads are auto-pruned after 30 days (configurable, or set to 0 to keep everything)
  • Moderation is local: block authors, mute threads, keyword filters, and gossip block lists with peers (auto-block after 3 peer reports)

Trust circle

Content exchange is gated by a trust graph derived from your TinyWeb subscriptions:

  • Only peers you subscribe to (with forum enabled) are trusted sources of content
  • Content from trusted peers propagates transitively: you see posts from their trusted peers, and theirs, and so on — no hop limit
  • New identities have no trust path until a trusted peer vouches for them or you subscribe
  • Trust is seeded from TinyWeb's subscription page — each subscribed peer's forum content (and their transitive trust network) enters your view automatically.

Moderation

All moderation is local — it controls what you see:

  • Block author — hides all content from that identity and cascades: the blocked peer's downstream trust network (peers they vouched for) is also removed from your view. If a downstream peer has an alternate trust path from another source you trust, they survive the cascade.
  • Auto-block — when 3+ of your peers have blocked the same identity, it blocks for you too (with cascade)
  • Mute thread — hides a thread from the listing
  • Keyword filters — hides threads matching keywords
  • Instance sync — choose which peers to sync with; unsync at any time

Sync

  • Instances discover each other via RNS announces — any forum on the mesh finds you
  • Content is exchanged as JSON over RNS links
  • Manual by default — click "sync now" on the forum listing or moderation page
  • Auto-sync every 5 minutes can be enabled on the moderation page
  • Auto-discovery can be disabled (manual instance add only)
  • Known peers propagate through gossip — each instance shares its peers during sync
  • Block lists and retractions are gossiped alongside content
  • Only new/updated content is transferred (timestamp-based)
  • When >20 peers, each cycle syncs with a random 20 — content converges epidemically

Storage

  • Threads older than 30 days are auto-pruned (configurable on moderation page)
  • Set retention to 0 to keep everything indefinitely
  • Database location: ~/.tinyweb/forum.db

Known rough edges

  • Authors are pseudonymous — no identities, no accounts
  • No rate limiting on forum POST endpoints
  • Retractions are voluntary — peers can ignore them
  • Block gossip can be gamed (requires collusion by 3+ peers on Reticulum)
  • Threads prune after 30 days by default
  • Discovery is through the subscription graph rather than topic-based blooms
  • Best-effort maintenance

Security

  • No authentication — The forum inherits TinyWeb's access model. Anyone who can reach the HTTP port (localhost by default) can post, edit, retract, block, and change moderation settings. See TinyWeb's Security section for --bind 0.0.0.0.
  • Retractions are voluntary — Retracting a thread or post sends a signal to peers, but any peer can ignore it. "Retract" is a polite request, not a guaranteed delete.
  • Block gossip can be gamed — Auto-block triggers after 3 peer reports. On Reticulum this requires 3+ real instances to collude, which is impractical at mesh scale, but is not cryptographically enforced.
  • No rate limiting — Forum POST endpoints have no throttling. Low risk since the HTTP port is localhost-only by default.
  • Trust circle — Blocking a peer removes their downstream trust network from your view. A peer with multiple independent trust paths may survive a single block.