网站首页/ 信息中心/ 档案百科/

人事档案数字化:基于开源工具的低成本全流程解决方案

发布时间:2026年06月26日 00:40:07 浏览量:0

一、方案选型与核心工具

本方案采用完全开源的软件栈,核心是使用Docker进行环境隔离与部署,Nextcloud作为文件存储与管理平台,Mayan EDMS作为专业的文档管理系统,并通过Nginx提供统一的Web访问入口。这套组合能实现从档案扫描、上传、分类、检索到权限管理的完整闭环,且无需支付任何软件授权费用。

1.1 服务器环境要求

你需要一台运行Linux的服务器(物理机或云服务器均可),建议配置为:

二、基础环境与Docker安装

以root用户登录你的服务器,完成系统更新和Docker环境的搭建。

2.1 系统更新与依赖安装

执行以下命令:

``` apt update && apt upgrade -y apt install -y curl wget vim gnupg2 apt-transport-https ca-certificates software-properties-common ```

2.2 安装Docker与Docker Compose

Docker是容器化部署的核心,Docker Compose用于编排多容器应用。

安装Docker Engine:

``` curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh systemctl start docker && systemctl enable docker ```

安装Docker Compose:

``` curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ```

验证安装:

``` docker --version docker-compose --version ```

三、部署Nextcloud文件管理平台

Nextcloud负责原始扫描件(如PDF、图片)的集中存储和初步管理。

3.1 创建部署目录与配置文件

在服务器上创建所有服务的根目录:

``` mkdir -p /data/archive_solution cd /data/archive_solution mkdir nextcloud && cd nextcloud ```

创建 docker-compose.yml 文件:

``` vim docker-compose.yml ```

将以下完整配置复制进去:

``` version: '3' services: nextcloud-db: image: mariadb:10.6 container_name: nextcloud-db restart: always environment: - MYSQL_ROOT_PASSWORD=YourStrongDBRootPass123! - MYSQL_PASSWORD=YourNextcloudDBPass123! - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud volumes: - ./db_data:/var/lib/mysql nextcloud-app: image: nextcloud:latest container_name: nextcloud-app restart: always ports: - "8080:80" depends_on: - nextcloud-db environment: - MYSQL_HOST=nextcloud-db - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD=YourNextcloudDBPass123! - NEXTCLOUD_ADMIN_USER=archive_admin - NEXTCLOUD_ADMIN_PASSWORD=YourStrongAdminPass123! volumes: - ./app_data:/var/www/html/data - ./config:/var/www/html/config - ./apps:/var/www/html/apps ```

保存并退出(按ESC,输入:wq,回车)。

3.2 启动Nextcloud

/data/archive_solution/nextcloud 目录下执行:

``` docker-compose up -d ```

等待约1-2分钟,然后在浏览器访问 http://你的服务器IP:8080。使用配置中设置的用户名(archive_admin)和密码(YourStrongAdminPass123!)登录。首次登录会完成初始化,进入Nextcloud管理后台。

关键操作:进入“设置”->“基本设置”,在“受信任的域名”中添加你的服务器IP和计划使用的域名(如 archive.your-company.com)。

四、部署Mayan EDMS文档管理系统

Mayan EDMS是专业的档案内容管理核心,负责档案的元数据定义、索引、检索和版本控制。

4.1 创建Mayan部署目录与配置

返回根目录并创建Mayan的文件夹:

``` cd /data/archive_solution mkdir mayan && cd mayan ```

创建 docker-compose.yml 文件:

``` vim docker-compose.yml ```

将以下完整配置复制进去:

``` version: '3.4' services: redis: image: redis:6-alpine container_name: mayan-redis restart: always postgres: image: postgres:13-alpine container_name: mayan-postgres restart: always environment: POSTGRES_DB: mayan POSTGRES_USER: mayan POSTGRES_PASSWORD: YourMayanDBPass123! volumes: - ./postgres_data:/var/lib/postgresql/data mayan: image: mayanedms/mayanedms:latest container_name: mayan-app restart: always depends_on: - redis - postgres ports: - "8000:8000" environment: MAYAN_DATABASE_ENGINE: django.db.backends.postgresql MAYAN_DATABASE_HOST: postgres MAYAN_DATABASE_NAME: mayan MAYAN_DATABASE_PASSWORD: YourMayanDBPass123! MAYAN_DATABASE_USER: mayan MAYAN_REDIS_HOST: redis volumes: - ./media:/var/lib/mayan ```

人事档案数字化:基于开源工具的低成本全流程解决方案

保存并退出。

4.2 启动Mayan EDMS并完成初始化

/data/archive_solution/mayan 目录下执行:

``` docker-compose up -d ```

启动过程较慢,首次需要下载镜像并初始化数据库,请等待3-5分钟。然后访问 http://你的服务器IP:8000

初始化设置

  1. 首次访问会进入设置向导。设置管理员邮箱、用户名(如 mayan_admin)和密码(设置一个强密码)。
  2. 完成向导后,使用刚设置的管理员账号登录。
  3. 进入后,点击左上角菜单图标,进入“管理”界面。

4.3 配置Mayan核心功能

创建文档类型:在“管理”->“文档类型”中,点击“新建文档类型”。例如,创建“员工入职档案”、“劳动合同”、“学历证明”等。为每种类型定义对应的元数据(Metadata),如“员工工号”、“姓名”、“部门”、“合同有效期”等。

配置存储路径:在“管理”->“存储路径”中,系统已有一个默认路径。你可以根据“文档类型”或“部门”创建新的存储路径规则,实现文件的自动归类。

配置全文检索:在“管理”->“索引”中,创建索引。例如,创建一个名为“员工档案索引”的索引,将“员工工号”、“姓名”等元数据字段添加进去。然后重建索引,使历史文档可被检索。

五、使用Nginx整合与配置反向代理

为了让用户通过一个统一的域名访问,并启用HTTPS,我们需要用Nginx将Nextcloud和Mayan整合起来。

5.1 安装Nginx并申请SSL证书

在服务器上安装Nginx:

``` apt install -y nginx ```

使用Certbot申请免费的Let‘s Encrypt SSL证书(假设你的域名已解析到该服务器):

``` apt install -y certbot python3-certbot-nginx certbot --nginx -d archive.your-company.com --email your-email@example.com --agree-tos --no-eff-email ```

按照提示操作,证书会自动配置到Nginx。

5.2 配置Nginx反向代理规则

编辑Nginx的站点配置文件:

``` vim /etc/nginx/sites-available/archive ```

将以下配置复制进去,请将 archive.your-company.com 替换为你的实际域名。

``` server { listen 80; server_name archive.your-company.com; 强制跳转到HTTPS return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name archive.your-company.com; ssl_certificate /etc/letsencrypt/live/archive.your-company.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/archive.your-company.com/privkey.pem; 其他SSL优化配置可从Certbot生成的文件中继承 代理Nextcloud (用于文件上传/下载) location /nextcloud/ { proxy_pass http://127.0.0.1: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; Nextcloud特定头部 proxy_set_header Front-End-Https on; client_max_body_size 10G; 允许上传大文件 } 代理Mayan EDMS (核心档案管理) location / { proxy_pass http://127.0.0.1:8000; 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; proxy_read_timeout 300; proxy_connect_timeout 300; } } ```

保存并退出。然后创建软链接并测试配置:

``` ln -s /etc/nginx/sites-available/archive /etc/nginx/sites-enabled/ nginx -t 测试配置语法 systemctl reload nginx 重载Nginx使配置生效 ```

六、全流程实操:上传并管理一份人事档案

假设你要录入员工“张三”的入职材料。

6.1 在Nextcloud中准备原始文件

  1. 访问 https://archive.your-company.com/nextcloud,用管理员账号登录。
  2. 在根目录下创建文件夹“待处理档案”。
  3. 将扫描好的“张三身份证.pdf”、“张三学历证书.jpg”、“张三入职登记表.pdf”上传至该文件夹。

6.2 在Mayan EDMS中创建档案记录

  1. 访问 https://archive.your-company.com,登录Mayan。
  2. 在“文档”页面,点击“上传新文档”。
  3. 在“文档类型”下拉框中选择“员工入职档案”。
  4. 系统会显示你为该文档类型定义的元数据字段,依次填写:员工工号:10001,姓名:张三,部门:技术部。
  5. 在“文件”区域,不要直接上传文件。点击“链接现有文件”标签页。
  6. 这里需要配置Mayan与Nextcloud的共享链接。首先回到Nextcloud,选中“张三身份证.pdf”,点击分享图标,创建“公开链接”并复制链接地址(如 https://.../s/XXXXX)。
  7. 将复制的公开链接粘贴到Mayan的“文件URL”输入框中,并填写一个描述,点击“提交”。
  8. 重复步骤6-7,将张三的其他文件也以链接方式关联进来。这样,文件物理存储仍在Nextcloud,管理元数据和检索在Mayan,实现了存储与管理分离

6.3 检索与使用

在Mayan的搜索框中,输入“张三”或工号“10001”,即可立即找到这份档案。点击文档,可以查看所有关联的原始文件(通过链接从Nextcloud获取),并查看完整的元数据信息。

七、日常维护与备份

7.1 数据备份

核心数据在三个目录:

编写一个简单的备份脚本 /root/backup_archive.sh

``` !/bin/bash BACKUP_DIR="/backup/archive_$(date +%Y%m%d_%H%M%S)" mkdir -p $BACKUP_DIR 停止服务,确保数据一致性 cd /data/archive_solution/nextcloud && docker-compose stop cd /data/archive_solution/mayan && docker-compose stop 备份数据目录 tar -czf $BACKUP_DIR/nextcloud_app_data.tar.gz -C /data/archive_solution/nextcloud app_data tar -czf $BACKUP_DIR/nextcloud_db_data.tar.gz -C /data/archive_solution/nextcloud db_data tar -czf $BACKUP_DIR/mayan_media.tar.gz -C /data/archive_solution/mayan media tar -czf $BACKUP_DIR/mayan_postgres_data.tar.gz -C /data/archive_solution/mayan postgres_data 重新启动服务 cd /data/archive_solution/nextcloud && docker-compose start cd /data/archive_solution/mayan && docker-compose start 删除7天前的备份 find /backup -type d -name "archive_" -mtime +7 -exec rm -rf {} \; ```

给脚本添加执行权限并添加到定时任务(每天凌晨2点执行):

``` chmod +x /root/backup_archive.sh crontab -e 添加一行:0 2 /root/backup_archive.sh ```

7.2 服务更新

更新Nextcloud和Mayan到最新版本:

``` cd /data/archive_solution/nextcloud docker-compose pull docker-compose up -d cd /data/archive_solution/mayan docker-compose pull docker-compose up -d ```

更新前请务必执行一次完整的备份

搞不定档案全流程管理?这份档案一体化解决方案真的香
搞不定档案全流程管理?这份档案一体化解决方案真的香
咱就是说,干了5年国企行政岗,管了4年档案,我以前真的是听到“档案年检”这四个字就生理性头疼,谁懂啊?以前我们单位的档案那叫一个“各自为战”,收文在OA系统存着,业务档案各部门自己塞移动硬盘,人事档案...
2026年06月26日 00:40:07
档案整理社会化服务方案:企事业单位省心避坑的全流程指南
档案整理社会化服务方案:企事业单位省心避坑的全流程指南
你是不是上周刚被领导安排整理单位十年的档案?翻得满手灰不说,分类错了还被档案局打回整改?找内部人做吧,半个月干不完还耽误本职工作,找外面的服务又怕踩坑,要么乱报价要么整理完不符合规范?这篇就给你说清楚...
2026年06月26日 00:40:07
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818