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

行政奖励数字档案馆系统搭建与配置全流程实战指南

发布时间:2026年08月25日 04:25:21 浏览量:0

系统架构与核心技术选型

本系统采用B/S架构,前端使用Vue.js,后端使用Spring Boot,数据库选用PostgreSQL,文件存储采用MinIO。这套技术栈成熟稳定,社区支持好,适合快速构建企业级应用。

环境准备与依赖安装

首先确保服务器满足以下最低配置:CentOS 7.6+ 或 Ubuntu 18.04+,4核CPU,8GB内存,100GB硬盘空间。按顺序执行以下命令安装基础环境:

安装JDK 11:

sudo yum install -y java-11-openjdk-devel
java -version

安装Node.js 16:

curl -sL https://rpm.nodesource.com/setup_16.x | sudo bash -
sudo yum install -y nodejs
node -v

安装PostgreSQL 14:

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql14-server
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14

安装MinIO对象存储:

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/
mkdir ~/minio-data
nohup minio server ~/minio-data --console-address ":9001" > minio.log 2>&1 &

数据库初始化与配置

切换到postgres用户创建数据库和用户:

sudo -u postgres psql
CREATE DATABASE archive_db;
CREATE USER archive_user WITH ENCRYPTED PASSWORD 'YourStrongPassword123!';
GRANT ALL PRIVILEGES ON DATABASE archive_db TO archive_user;
\q

创建核心数据表,保存以下SQL为init_tables.sql并执行:

CREATE TABLE department (
id SERIAL PRIMARY KEY,
code VARCHAR(50) UNIQUE NOT NULL,
name VARCHAR(100) NOT NULL,
parent_id INTEGER REFERENCES department(id),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE reward_type (
id SERIAL PRIMARY KEY,
code VARCHAR(20) UNIQUE NOT NULL,
name VARCHAR(100) NOT NULL,
level INTEGER NOT NULL
);
CREATE TABLE archive_record (
id SERIAL PRIMARY KEY,
record_no VARCHAR(50) UNIQUE NOT NULL,
title VARCHAR(200) NOT NULL,
department_id INTEGER NOT NULL REFERENCES department(id),
reward_type_id INTEGER NOT NULL REFERENCES reward_type(id),
reward_date DATE NOT NULL,
file_path VARCHAR(500),
file_size BIGINT,
file_hash VARCHAR(64),
status INTEGER DEFAULT 1,
created_by VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_archive_dept ON archive_record(department_id);
CREATE INDEX idx_archive_date ON archive_record(reward_date);
CREATE INDEX idx_archive_status ON archive_record(status);

执行SQL文件:

sudo -u postgres psql -d archive_db -f init_tables.sql

后端服务搭建

从GitHub克隆项目源码:

git clone https://github.com/example/archive-backend.git
cd archive-backend

修改application.yml配置文件:

server:
port: 8080
spring:
datasource:
url: jdbc:postgresql://localhost:5432/archive_db
username: archive_user
password: YourStrongPassword123!
driver-class-name: org.postgresql.Driver
jpa:
hibernate:
ddl-auto: validate
show-sql: true
minio:
endpoint: http://localhost:9000
accessKey: minioadmin
secretKey: minioadmin
bucket: archive-files
file:
upload:
max-size: 100MB
allowed-types: pdf,doc,docx,jpg,png

使用Maven编译并启动服务:

mvn clean package -DskipTests
java -jar target/archive-backend-1.0.0.jar

验证服务是否启动成功:

curl http://localhost:8080/api/health

正常应返回{"status":"UP"}

前端界面部署

进入前端项目目录并安装依赖:

cd ../archive-frontend
npm install --registry=https://registry.npm.taobao.org

修改.env.production环境变量文件:

VUE_APP_API_BASE_URL=http://your-server-ip:8080/api
VUE_APP_TITLE=行政奖励数字档案馆

构建生产版本:

行政奖励数字档案馆系统搭建与配置全流程实战指南

npm run build

将生成的dist目录部署到Nginx,安装并配置Nginx:

sudo yum install -y nginx
sudo cp -r dist/ /usr/share/nginx/html/

修改Nginx配置文件/etc/nginx/nginx.conf,在http块内添加:

server {
listen       80;
server_name  localhost;
location / {
root   /usr/share/nginx/html;
index  index.html;
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}

启动Nginx服务:

sudo systemctl start nginx
sudo systemctl enable nginx

系统初始化与基础数据配置

部门数据导入

创建departments.csv文件,格式如下:

code,name,parent_id
D001,办公室,
D002,人事处,D001
D003,财务处,D001
D004,技术部,D001

通过系统管理界面或调用API导入部门数据:

curl -X POST http://localhost:8080/api/departments/import \
-H "Content-Type: multipart/form-data" \
-F "file=@departments.csv"

奖励类型配置

在管理界面添加奖励类型,或直接执行SQL:

INSERT INTO reward_type (code, name, level) VALUES
('GJ', '国家级', 1),
('SB', '省部级', 2),
('SJ', '司局级', 3),
('DW', '单位级', 4);

档案录入与管理系统操作

档案上传流程

登录系统后,点击“新增档案”按钮,按步骤操作:

  1. 填写基本信息:输入档案编号、标题、选择部门和奖励类型
  2. 选择奖励日期:通过日期选择器选择具体日期
  3. 上传文件:点击上传按钮选择PDF或Word文档,系统自动计算文件哈希值
  4. 提交审核:点击提交按钮,系统将文件存储到MinIO,元数据存入数据库

文件存储验证

上传成功后,可以通过MinIO控制台验证文件存储情况。访问http://your-server-ip:9001,使用minioadmin/minioadmin登录,查看archive-files桶中的文件。

系统维护与监控

数据库备份脚本

创建backup.sh脚本:

!/bin/bash
BACKUP_DIR="/opt/archive-backups"
DATE=$(date +%Y%m%d_%H%M%S)
pg_dump -U archive_user -d archive_db -f $BACKUP_DIR/archive_$DATE.sql
find $BACKUP_DIR -name ".sql" -mtime +30 -delete

设置定时任务,每天凌晨2点执行备份:

crontab -e
0 2    /bin/bash /path/to/backup.sh

日志监控配置

修改logback-spring.xml配置文件,按日期分割日志:



logs/archive.log

logs/archive.%d{yyyy-MM-dd}.log
30


%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n


常见问题排查

文件上传失败

检查MinIO服务状态:

ps aux | grep minio
curl http://localhost:9000/minio/health/live

检查Nginx配置是否正确代理了API请求。

数据库连接异常

修改PostgreSQL认证方式,编辑pg_hba.conf

 在文件末尾添加
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

重启PostgreSQL服务:

sudo systemctl restart postgresql-14

前端访问空白页

检查Nginx错误日志:

tail -f /var/log/nginx/error.log

确认dist目录文件权限正确:

sudo chown -R nginx:nginx /usr/share/nginx/html
太原档案数字化服务流程是怎样的?大概需要多少钱?
太原档案数字化服务流程是怎样的?大概需要多少钱?
太原档案数字化服务通常包含需求分析、方案制定、现场整理、扫描加工、数据挂接、验收交付等核心流程,费用根据档案数量、纸张状况、数字化标准等因素综合计算,2026年市场价格范围大致在每页0.5元至2元之间...
2026年08月25日 04:25:21
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818