Minimal, fast, self-hostable forum — inspired by Hacker News. One binary. One database.

Install
curl -fsSL https://raw.githubusercontent.com/arcten/oforum/main/install.sh | sudo shPre-built binaries for macOS and Linux (amd64/arm64) on the releases page.
Quick Start
oforum init # generate .env (asks for DB URL + port) oforum migrate # run database migrations oforum seed # seed demo data (optional) oforum # start the server
Open http://localhost:8080.
CLI
oforum Start the forum server
oforum init Generate .env config interactively
oforum migrate Run database migrations
oforum seed Seed demo data (30 users, 20 posts, 200 comments)
oforum version Print version
oforum update Update to latest release
oforum help Show all commands
Full docs: man oforum
Features
- Posts, comments, threaded replies, upvoting
- User profiles with karma, bios, display names
- Admin panel — user management, bans, roles, tags, forum settings
- Colored roles as username badges
- Full-text search
- Leaderboard
- Dark mode
- SEO (sitemap, robots.txt, llms.txt)
- No JavaScript frameworks — server-rendered HTML
Self-Hosting
You need two things: the binary and a PostgreSQL database.
DATABASE_URL="postgres://user:pass@host:5432/oforum" oforumMigrations run automatically. That's the entire config.
Docker
docker build -t oforum . docker run -p 8080:8080 -e DATABASE_URL="postgres://..." oforum
Fly.io
fly launch fly secrets set DATABASE_URL="postgres://..." fly deploy
Environment
| Variable | Required | Default | Description |
|---|---|---|---|
DATABASE_URL |
Yes | — | PostgreSQL connection string |
PORT |
No | 8080 |
Server port |
Development
make dev # hot reload with air make build # build binary make release # cross-compile all platforms make seed # seed test data make test # run tests