惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
V
V2EX
大猫的无限游戏
大猫的无限游戏
博客园 - 司徒正美
D
Docker
T
The Blog of Author Tim Ferriss
罗磊的独立博客
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
Blog — PlanetScale
Blog — PlanetScale
月光博客
月光博客
J
Java Code Geeks
Jina AI
Jina AI
博客园 - 【当耐特】
C
Check Point Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
腾讯CDC
Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - serendipitynz/serenebach
takkyun · 2026-05-17 · via Hacker News: Show HN

Serene Bach

CI result Go Report Card


A self-hostable Go weblog engine — a lighter path between WordPress and Hugo. Small to place, familiar to publish.

Admin tour (17s, no audio) — click for HD mp4

🌐 go.serenebach.net — features, screenshots, positioning 📄 Japanese: see README.ja.md

At a glance

  • Single statically-linked Go binary, no CGO
  • SQLite via modernc.org/sqlite (pure Go) — no separate database server
  • Runs as a long-lived HTTP server, or as a CGI program on traditional shared hosting
  • Embedded admin UI, MCP server, and end-user help — nothing extra to deploy
  • Static rebuild for hybrid hosting (CDN / static front, dynamic admin behind)
  • Imports content from legacy Serene Bach v2 (flat-file) and v3 (SQLite) installations
  • Outbound webhooks (entry / comment / image events) for Slack / Discord / Zapier / n8n

Quick start

Requires Go and Task.

task dev    # serves on :8080 (auto-creates the dev DB on first request)

Open http://localhost:8080/ in a browser. The first request to a database without an admin user redirects to /setup, where you create the administrator account and choose whether to insert a couple of sample entries. After that, the public site lives at / and the admin UI at /admin/login.

task dev also sets SB_DEV=1, which disables template and i18n caching so edits to web/templates/admin/*.html are reflected on the next request without restarting the server.

Prefer the CLI? task seed still works — it creates the dev DB and seeds an admin (admin / changeme by default; override via SB_ADMIN_NAME / SB_ADMIN_PASSWORD) without going through the browser flow.

A .env template ships at .env.example. Copy it to .env and fill in SB_AI_SECRET if you plan to enable the AI writing assists.

Server-mode HTTP timeouts and graceful shutdown have sensible defaults out of the box and can be tuned via SB_READ_HEADER_TIMEOUT, SB_WRITE_TIMEOUT, SB_IDLE_TIMEOUT, SB_MAX_HEADER_BYTES, and SB_SHUTDOWN_TIMEOUT. Set SB_TZ (e.g. Asia/Tokyo) to pin the timezone used for archive month/year boundaries and rendered entry dates so the same binary produces identical output regardless of the host clock. See docs/configuration.md for the full list.

Run serenebach --version to print the version of the binary you have on disk and exit. The flag works even when the database or environment configuration is missing or broken, so it is safe to use for identifying a freshly unpacked build.

Docker

# Build
docker build -t serenebach .

# Run: start the server and open http://localhost:8080/setup to create the admin user
docker run -d -p 8080:8080 -v serenebach-data:/home/nonroot/data serenebach

# Or seed via CLI with an explicit password
docker run --rm -v serenebach-data:/home/nonroot/data -e SB_ADMIN_PASSWORD=<secret> serenebach seed

Or use the bundled docker-compose.yml:

docker compose up -d

Pre-built images (GHCR)

Official container images are published to GitHub Container Registry (ghcr.io/serendipitynz/serenebach).

docker pull ghcr.io/serendipitynz/serenebach:latest

docker run -d -p 8080:8080 -v serenebach-data:/home/nonroot/data ghcr.io/serendipitynz/serenebach:latest

Available tags:

  • latest — most recent build on the default branch
  • Release tags (4.0.0-beta.N, 4.0.0, …) — see the GitHub Releases page for the current version
  • main — tip of the main branch

For production, prefer a pinned release tag over latest. See docs/deployment.md for QNAP Container Station and VPS deployment examples.

Quality checks

CI runs the same checks on every push and pull request:

  • task lint — runs golangci-lint against .golangci.yml (covers staticcheck plus the project lint set, including gocyclo at the goreportcard threshold of 15)
  • task test — runs go test ./...

Companion tools

Tool What it does
./bin/serenebach mcp serve Start the MCP server over stdio for Claude Code / Cursor / Zed
task build-proxy Build the MCP OAuth proxy (bin/mcp-oauth-proxy) — bridges ChatGPT's OAuth-only MCP client to Serene Bach's Bearer-token /mcp endpoint. See cmd/mcp-oauth-proxy/README.md for env vars and ChatGPT configuration.

Documentation

Topic Link
Public + admin URL reference docs/url-map.md
Environment variables, flags, task shortcuts docs/configuration.md
Deployment modes (HTTP server / CGI / static rebuild) docs/deployment.md
Migrating from Serene Bach v2 / v3 docs/importing-sb3.md
Stack overview + design notes (CSRF, anti-spam, OG cards, analytics, …) docs/architecture.md
End-user help (also served at /admin/help from the running binary) docs/help/

License

MIT. See the file for the full text.