中文 | English
如果你也是那种
喜欢分享情绪和感受、随手记下某个瞬间的小孩;
如果你也想在抬头就能望见天花板的空间里,
造一座属于自己的小窝——
那些美好的、快乐的、不好的、悲伤的,
就把它们当作一颗颗星星,挂在这里吧……
So everything that makes me whole
今君に捧げよう
I'm Yours
StarryNight is an anime-style self-hosted personal site that blends static pages with dynamic memos. Built with Mizuki (Astro MD3 theme) + Memos (Go backend), plus AI Agent integration via MCP protocol.
Project meaning: Turn every joyful, sorrowful, and tiny moment of life into stars, storing them in your own little nest ✨
Browser → Nginx :3000 → Mizuki static files
→ /api/* → Memos :5230 (REST API)
→ /mcp → Memos :5230 (MCP for AI Agent)
AI Agent → REST API /api/v1/memos (curl, scripts)
→ MCP Protocol /mcp (AI native interface)
Key components:
| Component | Role | Tech |
|---|---|---|
| Mizuki | Frontend static theme | Astro, MD3 design, anime style |
| Memos | Backend data service | Go, REST API, MCP, SQLite |
| Nginx | Reverse proxy & static serving | Routes traffic, injects auth |
| daily-banner.sh | Cron task | Random banner rotation |
Content is automatically categorized by Memos tags — no manual sorting needed:
| Path | Page | Tag |
|---|---|---|
/ |
Home · Banner carousel | Static + daily random |
/ticker/ |
碎碎念 (Thoughts) | #ticker |
/blog/ |
博文 (Posts) | #blog |
/todo/ |
待办清单 (Todo) | #todo |
/gallery/ |
图库 (Gallery) | #gallery |
/timeline/ |
时间历程 (Timeline) | Static + #milestone |
/guestbook/ |
留言板 (Guestbook) | Memos #guestbook |
/about/ |
关于我 (About) | Static |
- Anime MD3 UI — Beautiful Material Design 3 visuals with anime aesthetic
- Markdown editor — Quick toolbar (headings, bold, code, dividers, etc.)
- Lightweight self-hosted — Run on NAS, VPS, or any Linux server
- Daily random banner — cron-based random image carousel from your pool
- Nixie tube clock — Steins;Gate style widget (
⚠️ known issue: clock may freeze after page refresh, WIP) - Dual auth — Browser Cookie for web, Bearer Token for API/AI
- AI Agent integration — MCP protocol allows AI to read/write Memos automatically
- REST API — Full CRUD via curl, scripts, or any HTTP client
- Node.js 18+ / pnpm
- Docker & Docker Compose
- A NAS or Linux server
# 1. Start Memos backend
docker run -d --name memos -p 5230:5230 \
-v ~/.memos:/var/opt/memos \
neosmemo/memos:stable
# 2. Build & serve frontend
cd Mizuki
pnpm install
pnpm run build
pnpm run preview<!-- copy-from-here -->
Please read AGENT_DEPLOY.md from https://github.com/hanasite/StarryNight and deploy StarryNight for me.
Ask me for NAS IP, Memos Token, and Cookie Key when needed.
<!-- copy-to-here -->
Copy the text inside the code block above and send to your AI agent.
See AI_AGENT_PUSH_GUIDE.md for AI integration docs.
# Push a ticker via API
echo "Hello StarryNight! #ticker" | curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d @- http://localhost:5230/api/v1/memosPerfect for anyone who:
- Loves journaling, photography, todo lists, and random thoughts
- Wants a fully private, self-hosted anime-style blog
- Doesn't want to rely on third-party platforms
- Has a NAS or server and enjoys DIY tech
| Layer | Tech |
|---|---|
| Frontend | Astro, Mizuki Theme, MD3 |
| Backend | Go, Memos, SQLite |
| Proxy | Nginx (Alpine) |
| Runtime | Docker, Docker Compose |
| Automation | Bash, MCP Protocol |
See DEV_GUIDE.md for architecture, customization, and APIs.
MIT
Made with ❤️ by Kakun





