蛋猪工作室
政企私有化部署 · 智能办公系统

OA 系统私有化部署教程:从服务器到上线

发布于 2026-09-19 · 蛋猪工作室技术团队

这份教程面向"已经有服务器、要自己把 OA 跑起来"的运维同学。全流程大约 30–60 分钟,核心步骤只有四步。

一、部署前准备

1. 服务器要求

项目要求
操作系统Ubuntu 20.04+ / CentOS 7+(64 位)
配置20 人以内:2 核 4G;50–100 人:4 核 8G
磁盘40G 以上(含上传附件空间,按使用量预留)
依赖(直接部署时)Java 21、MySQL 8.0、Redis 7

用 Docker 方式部署则无需自己装 Java/MySQL/Redis,镜像内已包含,这也是推荐方式。

2. 网络与域名

二、方式一:Docker 部署(推荐)

前提:服务器已安装 Docker 与 Docker Compose。

# 1. 安装 Docker(Ubuntu 示例,已装可跳过)
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker

# 2. 解压部署包
tar -xzf danzhu-oa-docker-v1.4.10.tar.gz
cd danzhu-oa-docker-v1.4.10

# 3. 执行一键安装脚本(会拉起 mysql、redis、backend、frontend)
bash docker-install.sh

# 4. 查看容器状态
docker compose ps

看到 oa-backend、oa-mysql、oa-redis 处于 Up 状态即启动成功。MySQL 首次启动健康检查需要 20–40 秒,请等待后再访问。

首次登录

# 默认管理员账号(首次部署后请立即修改密码)
用户名:admin
密码:  admin123

首次部署会自动创建 30 天全功能试用授权,到期后导入正式授权文件即可继续使用。

三、方式二:直接部署(传统环境)

# 1. 准备数据库
mysql -uroot -p -e "CREATE DATABASE ganxian_police_oa DEFAULT CHARACTER SET utf8mb4;"
mysql -uroot -p ganxian_police_oa < database/full_schema.sql
mysql -uroot -p ganxian_police_oa < database/seed_data.sql

# 2. 启动后端(需 Java 21)
nohup java -Xmx512m -jar backend/target/ganxian-police-oa-backend-1.0.0.jar \
  --server.port=8082 \
  --spring.datasource.url='jdbc:mysql://127.0.0.1:3306/ganxian_police_oa?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai' \
  --spring.datasource.username=root \
  --spring.datasource.password=你的密码 > /var/log/oa-backend.log 2>&1 &

# 3. 部署前端静态文件到 nginx
cp -r frontend/dist/* /var/www/oa/

四、配置反向代理(nginx 示例)

server {
    listen 443 ssl;
    server_name oa.example.com;

    ssl_certificate     /etc/letsencrypt/live/oa.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/oa.example.com/privkey.pem;

    root /var/www/oa;
    index index.html;

    # 前端单页应用回退
    location / {
        try_files $uri $uri/ /index.html;
    }

    # 后端接口
    location /api/ {
        proxy_pass http://127.0.0.1:8082;
        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;
        client_max_body_size 50m;   # 附件上传,按需调整
    }
}

提醒:client_max_body_size 默认只有 1MB,不改的话传稍大的附件会报 413。

五、常见问题排查

现象原因与处理
页面能开但一直转圈通常是某个接口未返回:打开浏览器 F12 → Network 看有没有 pending 请求,再检查后端日志
登录提示服务异常数据库连不上:核对连接串、账号密码、MySQL 是否允许远程连接
上传附件报 413nginx client_max_body_size 调大
重启后数据没了Docker 方式要确认数据卷已挂载(docker volume ls),不要把数据写在容器内
HTTPS 下接口 404检查反代是否只配了 http 段,或 proxy_set_header Host 缺失
消息不推送移动端推送需要服务器到推送服务的网络可达,检查出网策略

六、上线后的三件必做事项

  1. 改掉默认密码,并给管理员账号开启强密码策略
  2. 配置自动备份:数据库每日 dump + 附件目录定期同步(mysqldump + cron 即可)
  3. 收紧端口暴露:数据库、Redis 端口不要暴露公网,只允许内网或容器网络访问

做到这三条,一套私有化 OA 就算稳定上线了。

蛋猪智能OA · 30 天免费试用

私有化部署,数据完全自持。覆盖公文流转、审批工作流、任务看板、考勤排班、值班管理、即时通讯,支持 Web 端与安卓客户端。

下载部署包 了解产品功能

延伸阅读

→ OA 系统怎么选?企业选型指南→ 私有化部署 OA 系统多少钱?→ 私有化部署 OA 与 SaaS 办公平台对比