Federated Ceramic Wiki

On this page we explore a promising implementation of a Federated Private Wiki that we will test is the combination of: - Ceramic Protocol - Caddy Reverse Proxy - Guide Desktop

To pull in a remote folder of JSON “wiki” pages and serve them under your own domain, you run a Ceramic Daemon on your MacMini that deterministically maps each filename (e.g. `demo-page`) into a Ceramic TileDocument stream.

# Injection Script

A small Ceramic Ingestion Script on the original host reads each JSON file, creates or updates its corresponding Ceramic stream (using the page slug as a “family”), and assigns write‑ACLs in the stream’s controller list (your W3C DID).

# Ceramic Daemon

On your local machine, that same Ceramic daemon is configured with the remote host’s Ceramic URL in its `bootstrapUrls`. It automatically gossips and replicates all streams for those page families—giving you an eventually consistent, peer‑to‑peer datastore of your friend’s wiki content.

# Caddy Reverse Proxy Configure a Caddy Reverse Proxy `/ceramic/*` to your local `localhost:7007` Ceramic API and to rewrite requests like `/demo-page.json` into `/ceramic/api/v0/streams?family=thought.garden&stream=/demo-page`. A `handle_response` rule uses a regex `body_replace` to strip away Ceramic’s envelope, returning only the raw JSON in `content`.

# Guide Application Finally, the Guide Desktop application, or any HTTP client simply `GET`s `http://thought.garden/demo-page.json`, receives the pure wiki JSON, and renders or forks it locally. Because each Ceramic stream enforces its controllers via W3C DID signatures, you automatically get identity‑aware, per‐page ACLs without extra middleware.

This stack requires no VPN or public ports beyond Caddy, leverages the power of Ceramic’s pubsub replication, and slots neatly into your existing LiveCode‑backed Federated Wiki architecture.

# See also - ChatGpt Discussion