Repository navigation
koshi v3.0.0 — Serverless P2P Mesh
koshi v3.0.0 — Serverless P2P Mesh 🎉
Zero-setup decentralized SNS. Koshi v3.0 makes it effortless to run a full P2P social node — just pull a Docker image, no database or server configuration required.
🚀 Highlights
- Serverless P2P Mesh (Default): SQLite + hypercore/hyperswarm for peer-to-peer sync — no PostgreSQL needed
kb serve: Start a local serverless node (REST API + WebSocket + Web UI + P2P mesh)kb connect <url>: Connect CLI to a remote server;--resetreturns to serverless mode- Docker Multi-Arch: Pre-built images for
linux/amd64andlinux/arm64(Docker Hub / GHCR) - CLI Bilingual: English/Japanese support via
KOSHI_LANG=ja|enenv var - Quiet Logs:
LOG_LEVEL=warnby default in serverless mode — only warnings/errors shown
🐳 Quick Start (Docker)
docker run -d -p 3000:3000 \
-v $HOME/.config/koshi:/home/koshi/.config/koshi \
ghcr.io/ryopc/koshi:standalone-v3.0.0
# Then open http://localhost:3000📚 Documentation
- Full English documentation at
docs/docs/index.html - Updated CLI reference with
kb serve,kb connect,kb p2p,kb nostrcommands - Project structure updated to reflect serverless architecture (
src/local/,src/p2p/,src/nostr/)
🔧 Docker Images
| Image | Architecture | Use Case | External DB |
|---|---|---|---|
ghcr.io/ryopc/koshi:standalone-v3.0.0 |
amd64, arm64 | Personal / Serverless (Recommended) | No (SQLite) |
ghcr.io/ryopc/koshi:runner-v3.0.0 |
amd64, arm64 | Production Server | Yes (PostgreSQL) |
📦 CLI
npm install -g @ryopc/koshi
# Default language is auto-detected (English / Japanese)
KOSHI_LANG=en kb serve # Start local serverless node (English)
KOSHI_LANG=ja kb serve # Start local serverless node (Japanese)
kb connect https://example.com # Connect to remote server🌍 CLI Language
# Set language globally
export KOSHI_LANG=en # English
export KOSHI_LANG=ja # Japanese
# Or use system locale (auto-detected from $LANG)🐛 Bug Fixes & Improvements
- Fixed version display in
bin/server.js(was v1.1.1, now v3.0.0) - Web UI
api.jsnow dynamically readsconfig.serverUrlvia/api/config - Suppressed verbose pino debug logs in serverless mode (
LOG_LEVEL=warn) .dockerignorecorrected to includeweb/build output- Dockerfile sets
LOG_LEVEL=warnfor clean container logs
📊 Stats
- CLI Commands: 24
- API Endpoints: 32
- Protocols: REST, WebSocket, P2P (hypercore/hyperswarm), Nostr
Full Changelog: https://github.com/ryopc/koshi/releases/tag/v3.0.0