# 部署指南 ## 环境要求 服务器需安装 JDK 17+。无需安装 Node、Maven 或数据库。 ## 首次部署 ### 1. 在开发机上构建 ```bash ./scripts/build.sh ``` 产物为单个 JAR 文件:`backend/target/okr-performance-1.0.0.jar` ### 2. 上传到服务器 ```bash # 替换 your-server 为实际地址 scp backend/target/okr-performance-1.0.0.jar user@your-server:/opt/okr/ scp scripts/start.sh user@your-server:/opt/okr/ ``` ### 3. 启动 ```bash ssh user@your-server cd /opt/okr chmod +x start.sh ./start.sh ``` 首次启动后自动在 `/opt/okr/data/` 下创建 `okr-performance.db`。 系统访问:`http://<服务器IP>:18080` 默认账号:`admin` / `emoon123456` ### 4. 后台运行(推荐) ```bash nohup java -jar okr-performance-1.0.0.jar > app.log 2>&1 & ``` --- ## 代码升级 数据库文件 `data/okr-performance.db` 在 JAR 外部,升级只需替换 JAR,数据不受影响。 ### 步骤 ```bash # 1. 在开发机重新构建 ./scripts/build.sh # 2. 上传新 JAR 到服务器 scp backend/target/okr-performance-1.0.0.jar user@your-server:/opt/okr/okr-performance-new.jar # 3. 替换并重启 ssh user@your-server cd /opt/okr # 停止旧进程 pkill -f okr-performance # 替换 JAR mv okr-performance-new.jar okr-performance-1.0.0.jar # 重新启动 nohup java -jar okr-performance-1.0.0.jar > app.log 2>&1 & ``` --- ## 目录结构(服务器上) ``` /opt/okr/ ├── okr-performance-1.0.0.jar ← 唯一需要替换的文件 ├── start.sh ├── app.log └── data/ └── okr-performance.db ← 持久化数据,升级不会丢失 ``` --- ## 端口与反向代理 默认端口 18080。如需 80 端口,用 Nginx 反代: ```nginx server { listen 80; server_name okr.your-domain.com; location / { proxy_pass http://127.0.0.1:18080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` --- ## 备份数据库 ```bash # 定期备份 SQLite 文件即可 cp /opt/okr/data/okr-performance.db /opt/okr/data/okr-performance.db.$(date +%Y%m%d) ``` SQLite 使用 WAL 模式,直接复制文件是安全的。