Connect
Server greeting

Less feed.
More place.

KDX is a private community server you host yourself. Chat, files, people, and a door that locks. No feed, no ranking, no one selling ads against your evenings.

Public Chat
Topica place that doesn't want anything from you · set by sysop · 14:12
4 online
14:08*** phraq joined
14:09<sysop> welcome back
14:11<sysop> everything on this server stays on this server
14:11<sysop> no feed, no ranking, no notifications you didn't ask for
14:12<sysop> just the people you invited and the things you decided to keep
14:12*** sysop set the topic
14:13<phraq> we used to run bbs's for the same reasons
14:14<phraq> cost was a server, time, and knowing who you let in
14:14<sysop> same costs. same payoff.
14:15*** acidburn joined
14:15<acidburn> hey
Files
/ Up New Folder Search Upload
NameSize
[DIR]pub—
[DIR]archive—
[DROP]submissions—
[FILE]readme.txt2.1 KB
[FILE]mixtape-07.flac41 MB
[→]scrapbook—
[→]mixtape-latest.flac41 MB

How files work here

[DIR] is a folder, [FILE] is a file. A [DROP] box is a folder people can write into but no one can list — the write-only vault for submissions.

An [→] alias is a soft pointer. The same bytes appear in two places without duplicating on disk, and the target's own class gate still applies — you can't bypass a stricter folder by aliasing it into a permissive one.

Access is a class check against the folder, and the folder is the whole fence. No cloud, no API, no third party. The bytes live on your disk.

Administration

User List

sysopadmin
phraqpower user
acidburnuser
guestguest

Four base classes, custom roles on top, bans that expire. If someone has to leave, you kick them. If they shouldn't come back, you ban the IP — a CIDR check that runs before TLS so the handshake never happens.

Server History

14:08guestlogin
14:12sysoptopic_set lobby
14:18sysoprole_assigned target=phraq, role=moderator
14:22sysopkicked target=spammer_42, reason=links
14:24sysopip_rule_created deny 5.5.5.0/24
14:30—ip_denied peer=5.5.5.7, note=links
14:35sysopnewsgroup_created #dev

Every admin action is logged to a persistent audit trail. The log is admin-only and append-only — the receipts you need when something goes sideways.

Get Started

Run the server

$cargo install --git https://github.com/iamkhayyam/kdx-hotline kdxd

Rust binary, SQLite under the hood, TLS cert self-generated on first run. One port, one process, your box.

Get the client

$cargo install --git https://github.com/iamkhayyam/kdx-hotline kdx-client

Tauri desktop app for macOS, Linux, Windows. Trust-on-first-use certificate pinning. Also runs in a browser against the dist bundle.

Read the source

$git clone https://github.com/iamkhayyam/kdx-hotline

Everything is on GitHub. Rust workspace, ~230 tests, clippy clean. Protocol is binary and documented in the handoff docs.

Docs