Gan, Jimmy
53cf101307
Phase 9: backup script + Telegram alerts; add Phase 13 placeholder; fix OpenClaw ANTHROPIC_BASE_URL
2026-02-22 20:36:12 +08:00
Gan, Jimmy
4310ae5fee
Add Audiobookshelf, Stirling PDF, Vaultwarden to sidebar; update PLAN.md
Deploy Dashboard / deploy (push) Successful in 1m32s
2026-02-22 20:13:39 +08:00
Gan, Jimmy
dd54c41646
Fix storage display: deduplicate volumes by device
Deploy Dashboard / deploy (push) Successful in 31s
2026-02-22 18:37:49 +08:00
Gan, Jimmy
c081e87a5e
Fix OpenClaw: auto-include gateway token in dashboard link
Deploy Dashboard / deploy (push) Successful in 48s
2026-02-22 18:30:34 +08:00
Gan, Jimmy
edcaea61f0
Add container health status, multi-volume storage, auto-refresh Overview
Deploy Dashboard / deploy (push) Successful in 35s
2026-02-22 17:11:17 +08:00
Gan, Jimmy
5023137d21
Smart LAN routing for Navidrome sidebar link
Deploy Dashboard / deploy (push) Successful in 34s
2026-02-22 16:59:33 +08:00
Gan, Jimmy
b8733f31f9
Fix passkey login on non-HTTPS connections
Deploy Dashboard / deploy (push) Successful in 32s
2026-02-22 16:52:27 +08:00
Gan, Jimmy
bf15dad061
Smart LAN detection for sidebar service links
Deploy Dashboard / deploy (push) Successful in 31s
2026-02-22 16:45:31 +08:00
Gan, Jimmy
c280a64d07
Replace Emby with Jellyfin in sidebar
Deploy Dashboard / deploy (push) Successful in 42s
2026-02-22 16:28:00 +08:00
Gan, Jimmy
df01b3a452
Fix Settings page dark mode styling
Deploy Dashboard / deploy (push) Successful in 28s
2026-02-22 15:03:36 +08:00
Gan, Jimmy
db50b18607
Add Speedtest to sidebar, set up on port 8080
Deploy Dashboard / deploy (push) Successful in 2m2s
2026-02-22 14:57:47 +08:00
Gan, Jimmy
13eec52cc4
Fix audit log timezone to UTC+8
Deploy Dashboard / deploy (push) Successful in 25s
2026-02-22 12:42:21 +08:00
Gan, Jimmy
eb3391cec4
Categorize audit log by threat level with filtering UI
Deploy Dashboard / deploy (push) Successful in 26s
2026-02-22 12:38:59 +08:00
Gan, Jimmy
8e8f465b40
Add audit log viewer to Settings page
Deploy Dashboard / deploy (push) Successful in 28s
2026-02-22 12:34:21 +08:00
Gan, Jimmy
ffac6f47bf
Show passkey names and dates, add individual delete
Deploy Dashboard / deploy (push) Successful in 31s
2026-02-22 12:20:05 +08:00
Gan, Jimmy
888d3e5c49
Add PublicKeyCredential guard for passkey registration
Deploy Dashboard / deploy (push) Successful in 35s
2026-02-22 11:44:02 +08:00
Gan, Jimmy
9683cd3165
Add security improvements: refresh tokens, passkeys, CSP, audit logging, TOTP encryption
...
Deploy Dashboard / deploy (push) Successful in 1m26s
- Shorten access token to 30min with 7-day refresh token flow
- Add WebAuthn passkey registration and login with TOTP fallback
- Add Content-Security-Policy header
- Add audit logging middleware to /volume1/docker/nas-dashboard/audit.log
- Block /volume1/docker/ in files endpoint
- Encrypt TOTP secret at rest with Fernet (derived from SECRET_KEY)
- New deps: py_webauthn, cryptography
2026-02-22 11:04:40 +08:00
Gan, Jimmy
8392b49bb7
Add __pycache__ to gitignore and remove duplicates
2026-02-22 10:05:37 +08:00
Gan, Jimmy
bcf994e6e3
Fix Navidrome sidebar link to use music.jimmygan.com
Deploy Dashboard / deploy (push) Successful in 17s
2026-02-21 11:20:56 +08:00
Gan, Jimmy
c5fcb9bc64
Add CORS, rate limiting, security headers, and files endpoint protection
Deploy Dashboard / deploy (push) Successful in 18s
2026-02-21 11:18:29 +08:00
Gan, Jimmy
52ca6eb5d4
Fix CI: use --pull never instead of --no-pull
Deploy Dashboard / deploy (push) Successful in 1m15s
2026-02-21 11:16:07 +08:00
Gan, Jimmy
538d306902
Fix CI: remove checkout step that requires GitHub access
Deploy Dashboard / deploy (push) Failing after 25s
2026-02-21 11:14:04 +08:00
Gan, Jimmy
08f7ba5c3c
Fix CI: add --no-pull to avoid Docker Hub pull failure
Deploy Dashboard / deploy (push) Failing after 3m4s
2026-02-21 11:09:52 +08:00
Gan, Jimmy
d3ccca52f0
Use docker save/load for cross-build deploy from M1 to NAS
Deploy Dashboard / deploy (push) Failing after 2m7s
2026-02-21 11:05:00 +08:00
Gan, Jimmy
1e3bd71bfb
Switch to cross-build from M1 via Gitea container registry
Deploy Dashboard / deploy (push) Failing after 1m31s
2026-02-21 00:40:46 +08:00
Gan, Jimmy
fa63214e0c
Enable Docker BuildKit for faster builds
Deploy Dashboard / deploy (push) Successful in 1m19s
2026-02-20 23:57:16 +08:00
Gan, Jimmy
eeac606b03
Revert to Github action checkout & add proxy variables
Deploy Dashboard / deploy (push) Successful in 3m37s
2026-02-20 23:52:34 +08:00
Gan, Jimmy
e0574bb1b0
Fix checkout action mirror absolute url
Deploy Dashboard / deploy (push) Successful in 18m14s
2026-02-20 23:28:01 +08:00
Gan, Jimmy
a9059759ff
Add workflow path to trigger
Deploy Dashboard / deploy (push) Failing after 47s
2026-02-20 23:24:04 +08:00
Gan, Jimmy
32ccee93ad
Fix action clone timeout by using gitea mirror
2026-02-20 22:29:32 +08:00
Gan, Jimmy
9fcce3a0a8
Fix proxy env bug in Telegram alert
Deploy Dashboard / deploy (push) Failing after 2m7s
2026-02-20 22:21:16 +08:00
Gan, Jimmy
18605926ca
security: remove hardcoded secrets, add health endpoint, add security headers
2026-02-20 22:04:01 +08:00
Gan, Jimmy
c6392556d5
fix: resolve OpenClaw iframe connection refused and Docker HTTP proxy conflict
Deploy Dashboard / deploy (push) Successful in 8m20s
2026-02-20 17:25:16 +08:00
Gan, Jimmy
0519a4b4c6
fix: add proxy support to httpx to allow Telegram API requests
Deploy Dashboard / deploy (push) Successful in 3m24s
2026-02-20 10:36:59 +08:00
Gan, Jimmy
1a93caf62d
feat: add container monitor & telegram alerts
...
Deploy Dashboard / deploy (push) Has been cancelled
Added asyncio monitoring task to main.py to watch Docker container state transitions and send Telegram notifications on failures.
2026-02-20 10:31:18 +08:00
Gan, Jimmy
801616acda
feat: add claude-dev docker setup & update openclaw config
...
Added Dockerfile and docker-compose.yml for claude-dev on NAS. Updated openclaw docker-compose.yml to include --allow-unconfigured argument.
2026-02-20 09:19:36 +08:00
Gan, Jimmy
050793e0f0
Add multi-host terminal: NAS + VPS side-by-side
Deploy Dashboard / deploy (push) Failing after 3m5s
2026-02-20 00:53:29 +08:00
Gan, Jimmy
6047b2aade
Fix deploy: use absolute path for SSH key bind mount
Deploy Dashboard / deploy (push) Successful in 1m30s
2026-02-20 00:25:17 +08:00
Gan, Jimmy
27cab6b8d0
Add mobile responsive sidebar, OpenClaw route
Deploy Dashboard / deploy (push) Failing after 3m30s
2026-02-20 00:15:36 +08:00
Gan, Jimmy
28149b991e
Add OpenClaw, backup automation, health checks, Telegram notifications
...
Deploy Dashboard / deploy (push) Failing after 1m52s
Phase 6: OpenClaw docker-compose (port 3100) with health check
Phase 9: Enhanced backup.sh with full DB/config coverage + Telegram alerts
Phase 10: Health checks on all compose files, /api/system/notify endpoint
2026-02-19 21:40:34 +08:00
Gan, Jimmy
88a45b9779
Fix terminal: use create_process with binary encoding for PTY I/O
Deploy Dashboard / deploy (push) Failing after 3m26s
2026-02-19 20:32:36 +08:00
Gan, Jimmy
b2c27683e3
Fix session expiry: use config value, increase to 7 days
...
Deploy Dashboard / deploy (push) Failing after 6m38s
- LOGIN was ignoring ACCESS_TOKEN_EXPIRE_MINUTES (hardcoded 15min default)
- Pass expires_delta from config in login route
- Increase token lifetime from 30min to 7 days
2026-02-19 19:44:30 +08:00
Gan, Jimmy
36f1fc0962
Terminal: SSH to NAS host instead of container shell
...
Deploy Dashboard / deploy (push) Has been cancelled
- Rewrite terminal.py to use asyncssh instead of pty/fork
- Add SSH key pair for dashboard container auth
- Mount SSH key and add SSH config vars in docker-compose
- Install openssh-client in Dockerfile
- Add asyncssh to requirements.txt
2026-02-19 19:24:38 +08:00
Gan, Jimmy
69bd41b5a1
Fix terminal: pass JWT via query param, remove Docker-incompatible IP check
Deploy Dashboard / deploy (push) Failing after 2m11s
2026-02-19 17:44:55 +08:00
Gan, Jimmy
bf49e13e56
Add settings page with change password, fix terminal ws bug
Deploy Dashboard / deploy (push) Failing after 2m5s
2026-02-19 17:29:03 +08:00
Gan, Jimmy
4036292273
Bump version to v1.3 — runner DNS fixed
Deploy Dashboard / deploy (push) Successful in 3m39s
2026-02-19 10:26:40 +08:00
Gan, Jimmy
91c8d1b775
Bump version to v1.2 — CI/CD pipeline test
Deploy Dashboard / deploy (push) Failing after 2m6s
2026-02-19 10:18:32 +08:00
Gan, Jimmy
b2064726fd
Fix CI/CD: remove duplicate docker.sock mount
...
Runner already passes docker.sock to job containers.
Only mount the dashboard volume for deploy.
2026-02-19 10:18:03 +08:00
Gan, Jimmy
7aeabe1839
Test CI/CD: add version comment
Deploy Dashboard / deploy (push) Failing after 17s
2026-02-19 10:15:14 +08:00
Gan, Jimmy
6c042b5e09
Fix CI/CD workflow: mount Docker socket into job container
...
- Add container volumes for Docker socket, binary, and dashboard path
- Update runner-config.yaml with valid_volumes whitelist
- Sync source files to NAS volume before rebuilding
- Only trigger on dashboard/** path changes
2026-02-19 10:14:24 +08:00