wribble

Contribute a node. Strengthen the swarm.

Wribble grows with the people who run it. If you have an old laptop, a Raspberry Pi, a NAS, a phone on a charger, or any machine you can leave running, you can run a contributor node — a small program that crawls public pages and adds them to Wribble's shared index. It runs on your hardware, makes only outbound connections, and you can stop it anytime.

What a node does

It does

  • Crawls public web pages politely (respects per-site rate limits)
  • Extracts titles, text, and links
  • Sends them to Wribble's index, where they're validated and filtered
  • Only makes outbound HTTPS calls — no inbound ports to open

It does not

  • Answer other people's searches (it only contributes crawling)
  • Open any listening port on your machine
  • Touch anything on your computer beyond its own folder
  • Send any of your personal data — only the public pages it crawls

Requirements

Node.js 18 or newer. Check with node -v. Any operating system works (Linux, macOS, Windows). An always-on machine is ideal, but not required — a node helps whenever it's running.

Fastest: one command (any Linux / Mac / Raspberry Pi / cloud)

This auto-detects your OS and always pulls the latest node, so you can never run a stale build:

curl -fsSL https://wribble.com/node/install.sh | bash

Prefer to read it first (recommended): curl -fsSL https://wribble.com/node/install.sh -o install.sh, read it, then bash install.sh. Please also read CONSENT.md — what a node does, in plain English.

Or download a ready-to-run package

Each package wraps the same canonical node + a launcher + CONSENT.md. Desktops need Node.js 18+; Docker/NAS packages don't.

Your deviceDownloadHow to run
Macwribble-node-mac.zipUnzip, then bash install.sh.
Windowswribble-node-windows.zipUnzip, double-click run-windows.bat.
Linux desktop / serverwribble-node-linux.zipUnzip, bash install.sh. Always-on: copy wribble-node.service to systemd.
Any server / NAS (Docker)wribble-node-docker.zipUnzip, docker compose up -d --build.
Synology / QNAP / TrueNASwribble-node-synology.zipContainer Manager → Project → Create.
Raspberry Piwribble-node-raspberry-pi.zipUnzip, bash install.sh (+ systemd unit).
Android phone (Termux)wribble-node-android-termux.zipIn Termux: bash run-termux.sh. Keep on charger.
FreeBSDwribble-node-freebsd.zipUnzip, bash install.sh.
Free cloud VMwribble-node-cloud.zipPaste cloud-init.yml as user-data (Oracle always-free ARM is ideal).
Everything (portable)wribble-node-portable.zipAll launchers in one zip — extract anywhere.

What your node stores: only public discovery metadata — title, description, a short snippet (≤30 words) and the link. Never full page bodies. It obeys robots.txt and enforces Wribble's signed safety blocklist. Cheapest always-on node: an old phone on a charger, or a Raspberry Pi, or a free Oracle Cloud ARM VM.

Run it

cd ~/wribble-node
node wribble-node.js

On first run it automatically requests a token and saves it. You'll see a status line every 10 seconds:

[wribble-node] crawled=120 accepted=88 rejected=4 frontier=940

Keep it running (optional)

To run always-on with systemd on Linux, create /etc/systemd/system/wribble-node.service:

[Unit]
Description=Wribble Contributor Node
After=network.target

[Service]
WorkingDirectory=%h/wribble-node
ExecStart=/usr/bin/node %h/wribble-node/wribble-node.js
Restart=always
RestartSec=5

[Install]
WantedBy=default.target

Then enable it:

systemctl --user enable --now wribble-node

Or with pm2: pm2 start ~/wribble-node/wribble-node.js --name wribble-node && pm2 save

Settings

Edit config.json in the install folder. Sensible defaults are set; change only if you want to.

SettingWhat it does
concurrencyHow many pages it fetches in parallel. Higher = faster, more bandwidth and CPU.
perHostDelayMsMinimum gap between hits to the same website. This keeps you from being blocked by sites — overall crawl speed is not capped.
seedsStarting URLs for the crawl. Add topics or sites you'd like Wribble to cover.

What contributors have built

Every node's work is counted transparently. This is the swarm right now (updates live):

Loading contribution stats…

Privacy & safety

The program is small and readable — open wribble-node.js and inspect it before running. It only contacts Wribble's server, opens no ports, and stores nothing about you. Stop anytime with Ctrl-C, and delete the folder to remove it completely.

Stopping or leaving

Press Ctrl-C, or disable the service. Your node simply goes quiet — nothing of yours is kept beyond the public pages it already crawled.

Questions or trouble? See the contact page. Thank you for helping build a search engine no single company can own.