# Windows、局域网与云服务器部署说明

## 1. Windows 单机或局域网服务器

1. 在承担服务器角色的 Windows 10/11 或 Windows Server 计算机安装 Docker Desktop，并启用 WSL 2。
2. 解压交付包，双击 `start_windows.bat`。
3. 首次运行会生成 `.env` 并打开记事本。将所有 `replace-with-...` 替换为强密码或随机密钥，保存后再次运行。
4. 本机通过 `http://localhost:3100` 访问；同一局域网其他电脑通过 `http://服务器局域网IP:3100` 访问。
5. 若其他电脑无法访问，以管理员身份运行 `configure_lan_firewall.ps1`。脚本只对“专用/域”网络和本地子网开放 TCP 3100，不对公共网络开放。
6. 停止软件可双击 `stop_windows.bat`。日常关闭浏览器不会停止服务器。

服务器应使用固定局域网 IP，或在路由器 DHCP 中为服务器绑定固定地址，避免访问地址变化。

## 2. Linux 或租赁云服务器

1. 建议使用 Ubuntu Server 24.04 LTS，安装 Docker Engine 与 Docker Compose Plugin。
2. 上传并解压“程序”目录，复制 `.env.production.example` 为 `.env`，修改全部密码、密钥和端口。
3. 在程序目录执行 `docker compose up -d --build`。
4. 测试阶段可通过 `http://云服务器IP:3100` 访问；正式使用应绑定域名，并由 Caddy、Nginx 或云厂商负载均衡提供 HTTPS。
5. 云安全组只开放 80/443。若使用 HTTPS 反向代理，不应长期把 3100 端口直接暴露给公网。
6. PostgreSQL 未映射到宿主机公网端口，保持该配置，不要直接开放数据库端口。

## 3. 运维要求

- 生产环境不得使用交付示例密码。
- 定期使用数据库备份脚本，并将备份复制到另一台设备或对象存储。
- 软件升级前同时备份 `.env`、数据库和当前程序目录。
- 局域网运行不需要 Cloudflare Quick Tunnel 或其他内网穿透工具。
