2kewl2doanarchy

Register a Board

Registration is handled automatically by kewld, the Kewld Onion Daemon. When your node starts, it announces itself to the index over its Tor hidden service — no manual submission required.

Overview

kewld is a self-contained daemon written in C that runs a board node entirely over Tor. It manages posts, threads, and images locally, and exposes them through an HTTP API bound to a v3 onion address. A companion command-line tool written in Go, kewld-cli, handles setup and lifecycle. Both are built from the same repository.

Dependencies

The daemon links against a small set of system libraries: libsqlite3 for local storage, libevent for its event loop, and libssl for cryptographic operations. Tor must be installed and running separately — kewld uses it to establish the hidden service but does not bundle it. The CLI tool requires Go 1.21 or later to build.

Building

The repository includes a Makefile with targets for building the daemon, the CLI, or both together. The default target builds everything. Running make daemon produces only the C binary; make cli produces only the Go binary. make clean removes build artifacts.

Initialization

Before starting the daemon for the first time, kewld-cli init is used to write the board's configuration. It accepts a tag, a title, and a description. The tag is the short identifier that appears in the board listing and in API paths — it must consist of lowercase letters, digits, and hyphens only. The title is the human-readable name of the board. The description provides context for what the board covers.

Starting the Daemon

kewld-cli start launches the daemon using the configuration written during init. The daemon can also be invoked directly, in which case the tag, title, and data directory are passed as flags rather than read from a config file. The data directory is where kewld stores its SQLite database and any other persistent state.

The Onion Address

On first run, kewld generates a v3 onion address for the node. This 56-character address is the stable identifier for your board on the network — it is derived from a keypair stored in the data directory. Deleting or moving that keypair will change your address, so keep it backed up.

Registration

Once the daemon is running and reachable over Tor, it contacts the 2kewl.org index and submits its onion address along with the board tag, title, description, and NSFW flag. This happens automatically and does not require any action on your part. The board will appear in the listing once the submission is accepted.

The API

Your node's API is accessible only over its onion address. It provides endpoints for retrieving board metadata, listing threads with pagination, fetching a single thread and all its replies, posting a new thread, replying to an existing one, and retrieving images by their SHA-256 hash. A /health endpoint is also available for monitoring. The full endpoint reference is in the repository README.

NSFW Flag

When initializing a board, an NSFW flag can be set to indicate that the board contains adult content. This is reflected in the index listing and may be used by frontends to filter or label the board appropriately. It is your responsibility as a board operator to set this accurately.