Files
MemRelay/projects/d1932ed6-07d3-4463-a224-8534ffd69a07/Checkpoint 2026-09-03 01-14-45 UTC [5d880ea609].md
T

28 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Checkpoint 2026-09-03 01:14:45 UTC [5d880ea609]
type: checkpoint
permalink: main/projects/d1932ed6-07d3-4463-a224-8534ffd69a07/checkpoint-2026-09-03-01-14-45-utc-5d880ea609
stable_id: b5e9162b-d6c3-4593-9b7c-790af4145192
scope: project
project_id: d1932ed6-07d3-4463-a224-8534ffd69a07
memory_type: checkpoint
status: active
revision: 1
restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2
created_at: '2026-09-23T15:04:43.496680+00:00'
updated_at: '2026-09-23T15:04:43.496754+00:00'
tags:
- nextoffice
- ports
- deploy
- manage.py
- handoff
---
完成内容:按用户需求为 NextOffice 增加宿主机端口冲突/占用检查。deploy.py 新增 docker_published_ports / port_holder / choose_port / check_configured_ports;create_or_load_config 用 choose_port 处理 --nextcloud-port/--onlyoffice-port 与交互输入(默认 8080/8081 被占用时自动建议下一个可用端口;被占用/越界/非数字/两端口相同均拒绝);已有 .env 重跑时在拉镜像前预检端口并提示用 manage.py reconfigure 更换;validate_port 改为中文提示。manage.py 通过 from deploy import choose_port 复用,reconfigure 的端口输入获得同样校验,并补充子命令帮助文本。README 增加端口自定义与检查说明;docs/INSTALL.md 新增“自定义端口与占用检查”小节,docs/TROUBLESHOOTING.md 新增“端口已被占用”排障(docs/ 被 .gitignore 忽略,仅本地)。AGENT.md 按用户选择加入 .gitignore 不提交。
验证:python -m py_compile deploy.py manage.py 通过;deploy.py --help / manage.py reconfigure --help 正常;docker compose --env-file .env.example config --quiet 通过;临时脚本(已删除)覆盖正则解析(含端口区间、忽略 UDP)、本机监听端口判定、外部容器 vs 本项目容器判定、CLI 值被占用/保留/越界/非数字抛 InstallError、交互模式建议可用端口与重新提示、check_configured_ports 报错与放行,全部通过;本机正在运行的 nextoffice 实例(8080/8081)被正确识别为自有端口不报冲突。已提交 7b3796e(feat: 部署与端口变更时检查宿主机端口冲突并建议可用端口),仅本地 commit 未 push,工作区干净。
问题与取舍:PowerShell 直接执行 docker ps 模板会吞双引号导致 template 解析失败,但 Python subprocess 以参数列表传递不受影响,验证必须走 Python;控制台中文乱码为 PowerShell 编码显示问题,可用 PYTHONIOENCODING=utf-8 + [Console]::OutputEncoding=UTF8 处理。特权端口非 root 时 bind 抛 PermissionError,选择放行交给 Docker。
下一步 / 给下个会话:用户尚未选择的候选方向——(1) manage.py restore(docs/BACKUP-RESTORE.md 提到“恢复脚本”但不存在);(2) reconfigure 会把 trusted_domains 索引 0 的通配 `#^.+$#` 覆盖成 IP:端口而旧地址残留在索引 3,与 deploy.py 设置不一致,尚未修复;(3) 离线镜像包导出命令;(4) HTTPS 一键切换;(5) upgrade 与 backup --keep。注意 deploy.py 里 create_or_load_config 与 ensure_images 都打印 “[1/6]”,步骤编号有小瑕疵未改。本机 Docker Desktop 正运行一套 nextoffice 实例,占用 8080/8081,测试时不要误停。