| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A self-hosted personal blog and publishing platform, written in Go. The whole app ships as a single static binary — templates, assets and migrations are embedded — with SQLite as the only datastore. It is a Go port of a Rails original; the schema and routes deliberately mirror the Rails behavior.
Writing & publishing
Feed & discovery
Engagement
Site management (admin)
Security
Requires Go 1.26+.
HMAC_SECRET="$(openssl rand -hex 32)" go run ./cmd/serverOpen http://localhost:8080/setup to create the admin account, then log in at /session/new. All runtime state lives in ./data (SQLite rables.db + uploaded files/); migrations run automatically at boot.
| Var | Default | Notes |
|---|---|---|
| ADDR | :8080 | Listen address |
| DATA_DIR | ./data | SQLite DB + uploaded files |
| HMAC_SECRET | — | Required; signs math-captcha tokens |
| LOG_LEVEL | info | debug|info|warn|error |
| ARTICLE_ROUTE_PREFIX | — | Fallback public route prefix; the admin setting takes precedence |
| TRUST_X_FORWARDED_FOR | false | Key rate limits off X-Forwarded-For; only behind a trusted proxy |
| SECURE_COOKIES | false | Add Secure to session/flash cookies; enable for HTTPS |
See deploy/README.md for the full guide: hardened systemd unit, Docker (distroless, ~48 MB image), backups with deploy/backup.sh, and the rich-text → Markdown upgrade path.
# Binary
CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o rables-server ./cmd/server
# Docker
docker build -t rables .
docker run -d -e HMAC_SECRET="$(openssl rand -hex 32)" -p 8080:8080 \
-v rables-data:/data --restart unless-stopped rablescmd/server HTTP server entrypoint (wiring, graceful shutdown)
cmd/migrate-content One-off rich_text → Markdown content migration tool
internal/httpd chi router, handlers, middleware, rate limiting
internal/service Domain services (articles, comments, crosspost,
newsletter, subscribers, transfer, twittersync, ...)
internal/domain Pure content logic (markdown, sanitize, slug, excerpt)
internal/jobs DB-backed job queue + cron scheduler
internal/db SQLite open/migrate; sqlc-generated queries in db/query
internal/templates Embedded html/template files
internal/assets Embedded CSS/JS
migrations Embedded goose migrations (run at boot)
queries sqlc query sources
The database is pure-Go SQLite (modernc.org/sqlite), so builds are CGO-free and cross-compile cleanly.
See LICENSE.
| Back | FazBrowse Home | New Git URL |