服务器需安装 JDK 17+。无需安装 Node、Maven 或数据库。
./scripts/build.sh
产物为单个 JAR 文件:backend/target/okr-performance-1.0.0.jar
# 替换 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/
ssh user@your-server
cd /opt/okr
chmod +x start.sh
./start.sh
首次启动后自动在 /opt/okr/data/ 下创建 okr-performance.db。
系统访问:http://<服务器IP>:18080
默认账号:admin / emoon123456
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 模式,直接复制文件是安全的。