Skip to content

feat: Web 設定面板 + 測試按鈕 + AGPL-3.0#15

Merged
cablate merged 7 commits intomasterfrom
feat/web-config
Apr 12, 2026
Merged

feat: Web 設定面板 + 測試按鈕 + AGPL-3.0#15
cablate merged 7 commits intomasterfrom
feat/web-config

Conversation

@cablate
Copy link
Copy Markdown
Owner

@cablate cablate commented Apr 12, 2026

Summary

  • Web UI 設定面板(port 3000):瀏覽器設定 API key 和通知管道,不需手動改 env
  • 首次進入建立管理員帳密,DB-backed config store(DB > env > default 三層 fallback)
  • 測試按鈕:抓取 1 篇貼文 → LLM 分析 → 通知推送,SSE 串流即時顯示進度
  • 左右雙欄佈局 + 即時 Log 面板(複製/清除)
  • 淺色主題重設計(taste-skill:Outfit 字型、Slate/Zinc 色階、Emerald 強調色)
  • npx @cablate/banini-tracker serve CLI 子命令
  • 授權從 MIT 切換至 AGPL-3.0,README 頂部加醒目聲明

Changed files

檔案 說明
src/web.ts Hono web server + 前端 HTML(測試按鈕 + SSE + 雙欄佈局)
src/config-store.ts DB-backed 設定存儲 + cache
src/auth.ts scrypt 密碼 + session 管理
src/cli.ts 新增 serve 子命令
src/index.ts 接入 config-store + 啟動 web server
src/notifiers/index.ts 改用 getConfig 讀設定
Dockerfile EXPOSE 3000 + CMD 統一為 cli.js serve
zeabur-template.yaml 簡化 env、加 port/domain/volume
README.md 頂部 AGPL 聲明 + 部署說明重寫
LICENSE MIT → AGPL-3.0
package.json 加 hono 依賴、license 改為 AGPL-3.0-only

Test plan

  • Docker build + run,開 localhost:3000 走完首次設定流程
  • 測試按鈕:設定 → 抓取 → 分析 → 推送,Log 面板即時顯示
  • npx @cablate/banini-tracker serve 啟動,確認 Web UI 和排程正常
  • Container 重啟後 config 持久化、需重新登入

cablate and others added 6 commits April 12, 2026 16:19
- 新增 Web UI 設定頁面(port 3000),首次進入建立管理員帳密
- DB-backed config store(DB > env > default 三層 fallback)
- scrypt 密碼雜湊 + httpOnly/sameSite/secure cookie
- 設定修改後下次排程自動生效,不需重啟容器
- Zeabur template 簡化為零 env 部署(全部走 Web UI)
- README 重寫:Zeabur 一鍵部署為主要推薦方式
- PUT /api/config 輸入驗證 + ConfigKey type safety
- 前端 masking 改為比對 originalValues(支援清除已設定的值)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- `npx @cablate/banini-tracker serve [--port 8080]` 直接跑常駐服務
- Dockerfile CMD 統一為 `node dist/cli.js serve`
- 動態 import index.ts 複用現有 cron + web server 邏輯

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 新增測試按鈕:抓取 1 篇貼文 → LLM 分析 → 通知推送,逐步顯示結果
- SSE 串流(hono/streaming)即時回傳每一步進度
- 左右雙欄全頁佈局:左欄設定表單 / 右欄即時 Log 面板
- Log 面板:時間戳 + 顏色區分、複製/清除按鈕
- 套用 taste-skill 淺色主題:Outfit 字型、Slate/Zinc 色階、Emerald 強調色
- 修正字型過小(0.875rem base)、純黑背景(改 #f8fafc)、間距不足

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
整碗端走不標來源的人太多了。AGPL-3.0 要求:
- 保留原始署名
- 衍生作品必須開源
- 網路服務部署也必須公開原始碼

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@cablate cablate changed the title feat: Web 設定面板 + config store 熱重載 feat: Web 設定面板 + 測試按鈕 + AGPL-3.0 Apr 12, 2026
授權資訊放在最後面太容易被忽略,移到專案描述上方作為醒目提示。
底部 License 段落簡化為連結。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@cablate cablate merged commit 65ccdee into master Apr 12, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant