部署指南.md 2.2 KB

部署指南

环境要求

服务器需安装 JDK 17+。无需安装 Node、Maven 或数据库。

首次部署

1. 在开发机上构建

./scripts/build.sh

产物为单个 JAR 文件:backend/target/okr-performance-1.0.0.jar

2. 上传到服务器

# 替换 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. 启动

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. 后台运行(推荐)

nohup java -jar okr-performance-1.0.0.jar > app.log 2>&1 &

代码升级

数据库文件 data/okr-performance.db 在 JAR 外部,升级只需替换 JAR,数据不受影响。

步骤

# 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 反代:

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;
    }
}

备份数据库

# 定期备份 SQLite 文件即可
cp /opt/okr/data/okr-performance.db /opt/okr/data/okr-performance.db.$(date +%Y%m%d)

SQLite 使用 WAL 模式,直接复制文件是安全的。