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 device | Download | How to run |
|---|---|---|
| Mac | wribble-node-mac.zip | Unzip, then bash install.sh. |
| Windows | wribble-node-windows.zip | Unzip, double-click run-windows.bat. |
| Linux desktop / server | wribble-node-linux.zip | Unzip, bash install.sh. Always-on: copy wribble-node.service to systemd. |
| Any server / NAS (Docker) | wribble-node-docker.zip | Unzip, docker compose up -d --build. |
| Synology / QNAP / TrueNAS | wribble-node-synology.zip | Container Manager → Project → Create. |
| Raspberry Pi | wribble-node-raspberry-pi.zip | Unzip, bash install.sh (+ systemd unit). |
| Android phone (Termux) | wribble-node-android-termux.zip | In Termux: bash run-termux.sh. Keep on charger. |
| FreeBSD | wribble-node-freebsd.zip | Unzip, bash install.sh. |
| Free cloud VM | wribble-node-cloud.zip | Paste cloud-init.yml as user-data (Oracle always-free ARM is ideal). |
| Everything (portable) | wribble-node-portable.zip | All 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.
| Setting | What it does |
|---|---|
concurrency | How many pages it fetches in parallel. Higher = faster, more bandwidth and CPU. |
perHostDelayMs | Minimum gap between hits to the same website. This keeps you from being blocked by sites — overall crawl speed is not capped. |
seeds | Starting 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):
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.