Skip to content

单程序部署

概述

单程序部署是沐霖工时管理系统最简单、最推荐的部署方式。前端资源完全嵌入到后端二进制文件中,只需一个可执行文件即可运行整个系统。

优势

  • 单文件部署:只需一个可执行文件
  • 零前端配置:前端资源已嵌入后端
  • 快速启动:配置数据库后即可运行
  • 易于分发:方便打包和分发
  • 跨平台:支持 Windows、Linux、macOS

部署步骤

第一步:获取二进制文件

方式一:从 Release 页面下载

访问项目的 GitHub Releases 页面,下载最新版本的二进制包:

  • Windows: mulin-windows-amd64.zip
  • Linux: mulin-linux-amd64.tar.gz
  • macOS: mulin-darwin-amd64.tar.gz

方式二:从公众号下载

关注「沐霖工时管理系统」微信公众号,在菜单栏选择**“沐霖工时系统下载”**,即可获取最新版本的二进制包。

公众号信息

  • 公众号名称: 沐霖工时管理系统
  • 公众号ID: wuyusoft

二维码

公众号二维码

操作步骤

  1. 使用微信扫描下方二维码
  2. 关注公众号
  3. 在底部菜单栏选择"沐霖工时系统下载"
  4. 根据提示获取最新版本

公众号优势

  • 📱 手机随时下载
  • 💬 获取最新版本通知
  • 📖 接收使用教程和技巧
  • 🔔 及时获取更新推送

第二步:准备环境

环境要求

  • MySQL: 8.0+
  • Redis: 6.0+

请确保 MySQL 和 Redis 服务已经安装并正常运行。

第三步:创建数据库

sql
-- 登录 MySQL
mysql -u root -p

-- 创建数据库
CREATE DATABASE mulin_cost DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 退出
exit;

第四步:配置系统

解压下载的压缩包,进入目录后编辑 application.yaml 文件:

yaml
# 数据库配置
db:
  host: localhost
  port: 3306
  user: root
  password: your_password
  name: mulin_cost
  maxIdleConns: 10
  maxOpenConns: 100

# Redis 配置
redis:
  host: localhost
  port: 6379
  password: ""
  db: 0

# 服务配置
server:
  port: 8080
  mode: release  # debug 或 release

第五步:启动系统

Windows

bash
# 直接运行
mulin.exe

# 或者后台运行
start /b mulin.exe

Linux/macOS

bash
# 添加执行权限
chmod +x mulin

# 直接运行
./mulin

# 或者后台运行
nohup ./mulin &

第六步:访问系统

打开浏览器访问:

http://localhost:8080

默认管理员账号:

  • 用户名: admin
  • 密码: 12345678

注意:首次登录后请立即修改密码!

使用 systemd 管理(Linux)

创建服务文件:

bash
sudo vim /etc/systemd/system/mulin.service

内容如下:

ini
[Unit]
Description=沐霖工时管理系统
After=network.target mysql.service redis.service

[Service]
Type=simple
User=www
WorkingDirectory=/opt/mulin
ExecStart=/opt/mulin/mulin
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

启动服务:

bash
# 重新加载配置
sudo systemctl daemon-reload

# 启动服务
sudo systemctl start mulin

# 设置开机自启
sudo systemctl enable mulin

# 查看状态
sudo systemctl status mulin

# 查看日志
sudo journalctl -u mulin -f

使用 Nginx 反向代理(可选)

如果需要通过域名访问,可以配置 Nginx 反向代理:

nginx
server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

配置 HTTPS(可选)

使用 Let's Encrypt 免费 SSL 证书:

bash
# 安装 certbot
sudo apt-get install certbot python3-certbot-nginx

# 获取证书
sudo certbot --nginx -d your-domain.com

# 自动续期
sudo certbot renew --dry-run

数据备份

备份 MySQL 数据库

bash
# 备份
mysqldump -u root -p mulin_cost > backup_$(date +%Y%m%d).sql

# 恢复
mysql -u root -p mulin_cost < backup_20240101.sql

备份上传文件

bash
# 备份上传目录
tar -czf uploads_backup_$(date +%Y%m%d).tar.gz uploads/

# 恢复
tar -xzf uploads_backup_20240101.tar.gz

常见问题

Q: 启动后无法访问?

A: 检查以下几点:

  1. 确认端口 8080 未被占用
  2. 检查防火墙设置
  3. 查看日志文件 logs/app.log

Q: 数据库连接失败?

A: 确认:

  1. MySQL 服务已启动
  2. 数据库已创建
  3. 用户名密码正确
  4. 数据库用户有足够权限

Q: Redis 连接失败?

A: 确认:

  1. Redis 服务已启动
  2. 端口 6379 可访问
  3. 密码配置正确(如果有)

Q: 如何修改端口?

A: 编辑 application.yaml,修改 server.port 配置项。

Q: 如何查看日志?

A: 日志文件位于 logs/app.log,可以使用以下命令查看:

bash
tail -f logs/app.log

升级系统

  1. 停止当前运行的服务
  2. 备份数据库和上传文件
  3. 替换新的二进制文件
  4. 检查配置文件是否有更新
  5. 重新启动服务
bash
# 停止服务
sudo systemctl stop mulin

# 备份
mysqldump -u root -p mulin_cost > backup.sql

# 替换二进制文件
cp new-mulin /opt/mulin/mulin

# 启动服务
sudo systemctl start mulin

下一步

Released under the MIT License.