51 Commits

Author SHA1 Message Date
david_bai 8f6f0a9266 docs: add low-memory deployment guidance
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-26 07:24:03 +08:00
david_bai 83b835f19c docs: sync docker deployment guide with full-mode runtime behavior 2026-03-26 07:17:34 +08:00
david_bai fa8ca13283 chore: remove temporary docker-only cleanup notes 2026-02-28 13:36:43 +08:00
david_bai 201b36ed19 docs: require explicit --mode in Docker deployment guide 2026-02-28 13:36:26 +08:00
david_bai 927e227c29 docs: record docker-only cleanup execution 2026-02-28 12:39:04 +08:00
david_bai 3ce1ca58ea chore: remove bare-metal deployment guides 2026-02-28 12:37:30 +08:00
david_bai 0dfe627e25 docs: remove PM2/bare-metal references 2026-02-28 12:37:11 +08:00
david_bai 2b24dbef0e docs(playbook): remove bare-metal deployment entries 2026-02-28 12:35:59 +08:00
david_bai e0c31957cc docs: make Docker the only supported deployment path 2026-02-28 12:35:06 +08:00
david_bai 5c8df1867c docs: add docker-only cleanup plan 2026-02-28 12:35:02 +08:00
david_bai 49e20edd80 chore(merge):merge sub-branch into main 2025-12-24 12:14:52 +08:00
david_bai 52bb56501e chore(doc):Add an English version of documents such as AGENTS.md and ai-playbook 2025-12-18 12:28:29 +08:00
david_bai cb9797d0e8 chore(doc):Split docs/ai-playbook/flows.zh-CN.md into multiple documents
- Simplify flows.zh-CN.md to an entry + quick reference, add "Quick Navigation" and in-depth reading links, original sections 6/7/9/10 are retained in the entry page with titles but changed to links.

  - Add in-depth reading sub-document:
      - docs/ai-playbook/flows/frontend.zh-CN.md
      - docs/ai-playbook/flows/backpressure-chunking.zh-CN.md
      - docs/ai-playbook/flows/resume.zh-CN.md
      - docs/ai-playbook/flows/reconnect-consistency.zh-CN.md
  - docs/ai-playbook/index.zh-CN.md add "Process (In-depth reading split)" index
2025-12-18 12:28:29 +08:00
david_bai 7a027a27b8 chore(doc):Added multi-receiver support bullets in both READMEs and indexed the Chinese README in the AI playbook. 2025-12-18 12:28:25 +08:00
david_bai dceaae8efa fix(ssr): guard DOM/window access and client-only listeners
- Prevent server-side exceptions (Application error) on mobile after redirects
  - useOneShotSlowHint: guard document; use global setTimeout; conditionally attach visibilitychange
  - useConnectionFeedback: guard document.visibilityState; register/remove listeners only on client
  - usePageSetup: guard window before tracking referrer and parsing roomId
  - tracking: early return when window is undefined
  - docs(flows): add “SSR & DOM access guard (must-read)” checklist; renumber next section
2025-12-06 12:00:03 +08:00
david_bai 0d830114cd feat(ui): extract reusable one-shot slow-hint hook; refactor join(3s) and RTC negotiate(8s) hints; share rtcPhase mapper; update docs 2025-12-06 11:05:39 +08:00
david_bai 761921684c feat(ui): add 8s P2P slow-connect hint + i18n; document full connection feedback flows
- Hook (useConnectionFeedback):
      - Add SLOW_RTC_MS=8000 timer when entering negotiating
      - Foreground-only; pending while hidden; show once per negotiation attempt
      - Clear timers on connect/disconnect; reset attempt flags when leaving negotiating
      - Cleanup timers on unmount
  - i18n:
      - Add required key ClipboardApp.rtc_slow to types
      - Provide translations for zh, en, ja, es, de, fr, ko
  - Docs:
      - flows.zh-CN: add UI connection feedback state machine covering
        join_inProgress (immediate), join_slow (3s), join_timeout (15s),
        rtc_negotiating, rtc_slow (8s), rtc_connected, rtc_reconnecting, rtc_restored;
        document equivalent success signals and visibility gating
      - code-map.zh-CN: outline responsibilities/locations for useRoomManager (join slow/timeout)
        and useConnectionFeedback (negotiation slow, reconnect/restored)
2025-12-05 19:10:00 +08:00
david_bai 621d65bdfd doc(webrtc): sync flows/code-map 2025-11-26 12:17:53 +08:00
david_bai 723a1ea086 feat(ux): cached roomId auto-join + theme toggle
- Receiver: auto-fill and join on Retrieve tab when input empty, not in room, no URL roomId, and cachedId exists (ClipboardApp + roomIdCache)
  - Sender: “Use cached ID” now immediately joins the room (add onUseCached + disabled to CachedIdActionButton; wire in SendTabPanel)
  - UI: add ThemeToggle and integrate into Header (desktop and mobile)
  - Styles: replace hardcoded white with design tokens in Retrieve panel (bg-card/text-card-foreground) for dark mode
  - Docs: update AI playbook flows and code-map
2025-11-25 12:24:28 +08:00
david_bai 10f236dc8d docs: document in-app navigation persistence (no transfer interruption)
- README.md / README.zh-CN.md:
      - Add feature bullet for in-app navigation persistence (same-tab SPA)
      - Note boundaries: refresh/tab close/new tab not covered
  - Frontend architecture (zh/en):
      - Add “State & Connection Lifecycle (In-App Navigation)” section
      - Explain Zustand store singleton and webrtcService singleton across routes
      - Guidance: avoid leaveRoom()/store reset on route-change side effects
  - System architecture (zh/en):
      - Add “Runtime Session Model (Frontend)” summary
  - AI Playbook:
      - flows.zh-CN.md: add UX optimization item for in-app navigation persistence and debugging notes
      - code-map.zh-CN.md: mark webrtcService and fileTransferStore as singletons (cross-route)
2025-11-24 15:06:10 +08:00
david_bai 18f6703c6b fix(reconnect): auto rejoin on socket connect and widen reconnection triggers for mobile foreground resume
- Attempt reconnection on 'disconnected' | 'failed' | 'closed' states (BaseWebRTC)
  - Relax gating: rejoin when roomId exists and any of isPeerDisconnected, isSocketDisconnected, or socketId changed
  - Auto re-join room on socket 'connect' if lastJoinedSocketId differs or not in room; send initiator-online for initiators
  - Track lastJoinedSocketId after successful join and reset isInRoom when socketId changes to bypass early-return
  - Update flows to document mobile background/foreground reconnection and socketId-based rejoin
2025-11-21 20:23:47 +08:00
david_bai 0c4397bf46 chore(doc):add AI collaborative documents helps AI understand the project context. 2025-11-11 23:41:50 +08:00
david_bai 3d222fd316 chore(doc):improve UX message clarity and add cache optimization
- Update duplicate room ID messages across all languages for better clarity
- Enhance cached ID tips with double-click save mode functionality
- Add image optimization cache configuration to Nginx
- Document production environment variable sync requirements
- Add NEXT_IMAGE_UNOPTIMIZED to production config
2025-10-29 23:12:09 +08:00
david_bai 30635864da feat(deploy): add build-and-deploy script; switch frontend to Next.js standalone; docs: add incremental update guide 2025-10-25 00:03:20 +08:00
david_bai 0d308515a7 SEO: refine WebApplication alternateName and commit docs
- Home WebApplication JSON-LD: add alternateName "Open-source web-based AirDrop alternative"
- Docs: add troubleshooting for missing .next production build in deployment guides
  - docs/DEPLOYMENT.md
  - docs/DEPLOYMENT.zh-CN.md
2025-10-14 23:50:40 +08:00
david_bai 99f264fcd0 chore(doc):update some docs
roadmap: rewrite CN/EN roadmap to focused P0/P1; remove non‑goals; add unified logging in P0
frontend: state management = Zustand + custom Hooks (CN/EN) with updated strategy
2025-10-13 00:03:44 +08:00
david_bai 1e22481a00 docs(docker): align commands and access guidance with latest deployment model
- Use "bash ./deploy.sh" consistently across docs
- Prefer "docker compose" (Compose v2) and update examples accordingly
- Public mode: recommend "--with-nginx" for same-origin gateway
- Access: document Nginx (same-origin) vs direct ports; update HTTPS endpoints (lan-tls 8443, full 443)
- Health checks: add same-origin /api examples
- Add notes on NEXT_IMAGE_UNOPTIMIZED in Docker and same-origin behavior when --with-nginx is enabled
- Fix bare-metal docs cross-links to Docker guides
2025-10-10 23:25:12 +08:00
david_bai 975f6e74ad docs: clarify LAN TLS (self-signed) usage — import CA in browser, correct HTTPS endpoints (8443), CORS guidance; fix deploy hints to only show reachable Nginx URLs. Also: trust CA in frontend container and align HTTPS port mapping. 2025-10-09 21:46:03 +08:00
david_bai 8590eda2c2 refactor(scripts): simplify modes and harden cert automation
- New modes: lan-http, lan-tls (self-signed), public, full
- Add flags: --no-sni443, --enable-web-https (lan-tls), --test-renewal
- generate-config: lan-tls HTTPS on 8443 only when explicitly enabled; HSTS only in full; SNI 443 default in full
- detect-environment: remove interactive prompt; adjust public description to 'HTTP + TURN'
- deploy.sh: pass new flags, add certbot scheduler (systemd timer or cron fallback), add dry-run renewal test
- Docs (EN/zh-CN): update quick start, modes overview, LAN TLS guidance, LE auto-issue/renew section
2025-10-08 23:17:19 +08:00
david_bai 1f4522eeb2 docs+scripts: move domain quick tips to docs; add modes overview; clarify full+SNI defaults; add self-signed domain guidance
- deploy.sh: replace verbose public domain test instructions with a single docs link
- docker/scripts/generate-config.sh: remove 'Intranet with TURN quick tip' from help; add docs pointers
- docs(zh/EN): add 'Modes Overview', add 'Private LAN + TURN' quick start example, add 'Domain + Self-signed' and 'Public Domain Quick Test' sections; note LE auto-issue/renew and SNI 443 default in full mode
2025-10-08 23:07:34 +08:00
david_bai 2bd09835b1 docs(docker): elevate Docker one-click to top, add LE automation + SNI443, update flags and compose v2 commands
- DEPLOYMENT_docker.md/zh-CN: Add top Quick Start (private/public/full), Let’s Encrypt auto issue/renew (webroot, zero downtime), SNI 443 default for full+domain, common flags (--with-sni443, --turn-port-range, --le-email), replace docker-compose with docker compose.
- README.md/zh-CN: Promote Docker one-click section to top and link to docs.
- DEPLOYMENT.md/zh-CN: Add audience/scope notice; point to Docker docs for recommended path.
- ROADMAP.md/zh-CN: Record recently completed (Docker, LE, SNI, TURN).
2025-10-07 22:48:26 +08:00
david_bai 200fc65617 build(docker): Intranet deployment is successfully tested using turn
- Switch all CLI examples to Docker Compose V2 (docker compose) for consistency.
  - Add explicit instruction to grant write permissions to the host logs/ directory (chmod 777 -R logs) to fix coturn/nginx bind-mount logging errors.
  - Parameterize TURN UDP port range via TURN_MIN_PORT/TURN_MAX_PORT and set a safer default 49152-49252 to reduce startup/cleanup overhead and port
  conflicts.
  - Update troubleshooting with coturn log write failure guidance and port conflict hints.
  - Clarify that LAN IP is auto-detected in private mode; --local-ip is no longer needed by default but remains as an override for edge cases.
2025-09-30 14:01:30 +08:00
david_bai cfcd60145a build: refresh docker deployment workflow 2025-09-26 14:02:55 +08:00
david_bai 158433bb0b chore:Initial addition of Docker related content 2025-09-11 06:46:04 +08:00
david_bai 69d7b980cc chore(doc):Remove the duplicate installation steps from the deployment documentation. 2025-08-24 09:29:21 +08:00
david_bai a0486da313 chore(doc):Update document
Update the document to include the latest changes: file continuation, introduction of Zustand to the front-end architecture.
2025-08-24 08:46:17 +08:00
david_bai 94c9ba7ad3 fix:Fix the issue of nginx address occupation during the process of obtaining ssl certificates using certbot 2025-08-21 22:57:54 +08:00
david_bai 6d82050081 fix:Fix the hard-coded issue with the turn domain name 2025-08-19 23:45:21 +08:00
david_bai 1c4cb08c24 chore(doc):Update the firewall configuration instructions in the deployment document 2025-08-10 22:50:01 +08:00
david_bai 6c91889887 feat:Simplify the startup in the deployment process
Streamline the process by combining the front-end and back-end startup into one
2025-07-24 23:59:00 +08:00
david_bai bac5e84d90 fix:Fix the incorrect path in the nginx configuration file.
Fix the incorrect path in the nginx configuration file.
Update the deployment documentation.
2025-07-23 23:48:28 +08:00
david_bai 7950aec063 fix:Change the turns port used in WebRTC to 443
nginx(website on server) listens on port 4443 and then forwards to the frontend and backend.
nginx main configuration adds a stream block to uniformly listen on port 443, then forwards based on domain to coturn(5349) and website(4443).
The TURN port used in WebRTC is changed to 443.
The deployment document adds a script action to delete extra configurations generated by certbot.
2025-07-23 23:13:59 +08:00
david_bai 571b1cddcf update doc 2025-07-03 20:22:46 +08:00
david_bai c9227baaf1 update docs:add env_example in Tutorial;sync edit docs/DEPLOYMENT.md depend on docs/DEPLOYMENT.zh-CN.md. 2025-07-01 23:40:18 +08:00
david_bai 11b338432a update DEPLOYMENT procedure 2025-07-01 23:10:07 +08:00
david_bai d2e93073f8 replace .env.development[production].local with .env.development[production];add env example 2025-06-30 20:45:06 +08:00
david_bai b1d389ad84 change backend PORT to BACKEND_PORT and front-3000 to 3002 2025-06-28 08:28:26 +08:00
david_bai 1646885454 adjust order of content 2025-06-26 21:18:48 +08:00
david_bai 77d6f5ae7f fix graph format bug 2025-06-21 14:48:40 +08:00
david_bai a0034d46ff 增加英文文档 2025-06-20 23:31:48 +08:00