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

基于开源技术栈构建违法犯罪数字档案馆系统实操指南

发布时间:2026年09月14日 07:20:12 浏览量:0

一、系统核心架构设计

本系统采用微服务架构,将数据采集、存储、检索、分析等功能模块解耦,确保系统的高可用性和可扩展性。核心组件包括文件存储服务、元数据管理服务、全文检索引擎和权限控制服务。

1.1 技术栈选型与部署清单

二、环境准备与依赖安装

所有操作均在Linux服务器(Ubuntu 22.04 LTS)上进行。请确保拥有root或sudo权限。

2.1 安装Docker与Docker Compose

执行以下命令安装Docker引擎和Compose插件:

``` sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin sudo systemctl start docker sudo systemctl enable docker ```

2.2 克隆项目基础代码

我们已准备了一个包含基础配置和服务的项目骨架,请克隆到服务器:

``` cd /opt sudo git clone https://github.com/example-repo/case-archive-system.git cd case-archive-system ```

项目目录结构如下:

三、核心服务配置与启动

所有服务的配置均已集成在docker-compose.yml中。你需要修改几个关键配置。

3.1 修改关键配置文件

编辑docker-compose.yml文件,找到PostgreSQL和Elasticsearch的服务配置部分,设置强密码:

``` PostgreSQL配置段 postgres: image: postgres:14 environment: POSTGRES_DB: case_archive POSTGRES_USER: archive_admin POSTGRES_PASSWORD: YourStrongPassword123! 请修改此处 volumes: - ./init-scripts/init.sql:/docker-entrypoint-initdb.d/init.sql - postgres_data:/var/lib/postgresql/data Elasticsearch配置段 elasticsearch: image: elasticsearch:8.11.0 environment: discovery.type: single-node xpack.security.enabled: "true" ELASTIC_PASSWORD: YourElasticPassword456! 请修改此处 volumes: - es_data:/usr/share/elasticsearch/data ```

编辑backend/src/main/resources/application.yml,更新数据库和Elasticsearch的连接信息,与上一步设置的密码保持一致:

``` spring: datasource: url: jdbc:postgresql://postgres:5432/case_archive username: archive_admin password: YourStrongPassword123! 修改为docker-compose中设置的密码 elasticsearch: uris: http://elasticsearch:9200 username: elastic password: YourElasticPassword456! 修改为docker-compose中设置的密码 ```

3.2 启动所有基础服务

在项目根目录执行以下命令,启动所有依赖服务(数据库、搜索、存储等):

``` sudo docker compose up -d postgres elasticsearch minio redis rabbitmq ```

等待1-2分钟,使用以下命令检查所有服务是否正常运行:

``` sudo docker compose ps ```

所有服务的状态(STATUS)都应显示为“Up”。

四、核心业务功能实现

完成基础环境搭建后,需要部署并配置核心业务应用。

4.1 构建并启动后端应用

进入后端目录,使用Maven打包应用,然后通过Docker启动:

``` cd /opt/case-archive-system/backend sudo mvn clean package -DskipTests sudo docker build -t case-archive-backend . cd .. ```

编辑docker-compose.yml,在后端服务配置中取消注释,然后启动:

``` sudo docker compose up -d backend ```

访问 http://你的服务器IP:8080/api/health,如果返回{"status":"UP"},说明后端启动成功。

4.2 构建并启动前端应用

进入前端目录,安装依赖并构建生产包:

``` cd /opt/case-archive-system/frontend sudo npm install sudo npm run build ```

构建产物在dist目录。我们需要一个Nginx容器来托管它。在项目根目录的docker-compose.yml中启动Nginx服务:

``` sudo docker compose up -d nginx ```

访问 http://你的服务器IP,应能看到系统登录界面。

五、系统初始化与数据接入

系统启动后,需进行初始化配置并接入第一批数据。

5.1 初始化数据库表与管理员账号

基于开源技术栈构建违法犯罪数字档案馆系统实操指南

数据库表结构已通过init.sql脚本自动创建。现在需要创建第一个系统管理员账号。通过后端API接口创建:

``` curl -X POST "http://localhost:8080/api/admin/users" \ -H "Content-Type: application/json" \ -d '{ "username": "sysadmin", "password": "InitAdminPass789!", "realName": "系统管理员", "role": "SUPER_ADMIN" }' ```

返回{"success":true}即表示创建成功。请立即使用该账号登录前端,并在“用户管理”中修改默认密码

5.2 配置档案存储桶(Bucket)与目录结构

系统使用MinIO存储电子文件。登录MinIO管理界面(http://你的服务器IP:9001,默认账号密码在docker-compose.yml中查找),执行以下操作:

  1. 登录后,点击左侧“Buckets”,然后点击“Create Bucket”。
  2. Bucket名称填写 case-archive-files,点击创建。
  3. 进入该Bucket,点击“Create Folder”,依次创建以下目录:/cases (存放案件卷宗)、/evidence (存放证据材料)、/documents (存放法律文书)。

5.3 接入第一批案件数据

系统提供了两种数据接入方式:API接口和后台管理界面上传。

方式一:通过API批量导入。准备一个符合格式的JSON文件cases_batch.json

``` [ { "caseNumber": "2023刑初字第001号", "caseName": "某某盗窃案", "filingDate": "2023-10-01", "category": "刑事", "keyPersons": [{"name": "张三", "idNumber": "110101199001011234", "role": "嫌疑人"}], "abstract": "2023年9月30日,嫌疑人张三在某商场实施盗窃...", "fileList": [ {"fileName": "立案决定书.pdf", "path": "documents/2023刑初001/立案决定书.pdf", "type": "文书"}, {"fileName": "现场勘验照片1.jpg", "path": "evidence/2023刑初001/photo1.jpg", "type": "证据"} ] } ] ```

使用curl命令导入:

``` curl -X POST "http://localhost:8080/api/cases/batch" \ -H "Authorization: Bearer 你的管理员JWT令牌" \ -H "Content-Type: application/json" \ --data-binary @cases_batch.json ```

方式二:通过管理界面单条录入。登录系统后,进入“案件管理” -> “新建案件”,按照表单填写信息,并直接上传对应的电子文件。

六、全文检索功能配置与验证

系统自动将案件摘要、文书内容等文本字段同步至Elasticsearch。需要验证检索功能是否正常。

6.1 创建全文检索索引

首次启动时,后端服务会自动创建名为case_documents的索引。你可以通过以下命令验证索引是否存在:

``` curl -u elastic:YourElasticPassword456! -X GET "http://localhost:9200/_cat/indices?v" ```

在返回的列表中应能看到case_documents

6.2 测试全文检索

通过系统前端或直接调用API测试检索功能:

``` curl -X GET "http://localhost:8080/api/search?keyword=盗窃&page=1&size=10" \ -H "Authorization: Bearer 你的管理员JWT令牌" ```

该请求会返回所有摘要或文书中包含“盗窃”关键词的案件列表。

七、权限与安全加固

系统内置基于角色的访问控制(RBAC),但需要根据实际机构设置进行配置。

7.1 配置角色与权限点

默认有四种角色:SUPER_ADMIN(超级管理员)、ARCHIVE_MANAGER(档案管理员)、INSPECTOR(查阅员)、AUDITOR(审计员)。权限配置位于backend/src/main/resources/permissions.json。如需调整,修改该文件后需重启backend服务。

7.2 启用操作日志与审计

所有关键操作(增删改查、登录登出、文件下载)均已自动记录至数据库sys_operation_log表。审计员角色可在前端“审计日志”模块查看所有记录。无需额外配置。

7.3 网络与容器安全建议

八、备份与恢复方案

必须建立定期备份机制,确保数据安全。

8.1 配置自动化备份脚本

在服务器上创建备份脚本/opt/backup.sh

``` !/bin/bash BACKUP_DIR="/opt/backups/$(date +%Y%m%d_%H%M%S)" mkdir -p $BACKUP_DIR 备份PostgreSQL数据库 sudo docker exec case-archive-system-postgres-1 pg_dump -U archive_admin case_archive > $BACKUP_DIR/db_dump.sql 备份Elasticsearch索引(快照到本地目录) curl -u elastic:YourElasticPassword456! -X PUT "http://localhost:9200/_snapshot/backup_repository/snapshot_$(date +%s)?wait_for_completion=true" 备份MinIO数据(使用mc客户端) /usr/local/bin/mc mirror --overwrite local/case-archive-files $BACKUP_DIR/minio_data/ 压缩备份文件 tar -czf $BACKUP_DIR.tar.gz $BACKUP_DIR 删除7天前的备份 find /opt/backups -name ".tar.gz" -mtime +7 -delete ```

给脚本执行权限并添加到crontab,每天凌晨2点执行:

``` sudo chmod +x /opt/backup.sh sudo crontab -e 添加一行: 0 2 /opt/backup.sh ```

8.2 数据恢复步骤

当需要恢复数据时,按顺序执行:

  1. 恢复数据库sudo docker exec -i case-archive-system-postgres-1 psql -U archive_admin case_archive < /path/to/backup/db_dump.sql
  2. 恢复Elasticsearch索引curl -u elastic:YourElasticPassword456! -X POST "http://localhost:9200/_snapshot/backup_repository/snapshot_xxxx/_restore"
  3. 恢复MinIO文件/usr/local/bin/mc mirror --overwrite /path/to/backup/minio_data/ local/case-archive-files
  4. 重启后端服务sudo docker compose restart backend

至此,一个具备完整数据采集、存储、检索、管理和安全审计功能的违法犯罪数字档案馆系统已部署完成并可以投入使用。所有配置和代码均以生产可用为目标,请根据实际业务需求调整案件数据模型和用户角色权限。

2024常用档案管理软件保密对比:哪款符合涉密单位合规要求?
2024常用档案管理软件保密对比:哪款符合涉密单位合规要求?
现在不管是党政机关、涉密企事业单位还是掌握大量用户信息的互联网公司,档案安全都是红线,一旦出泄密事故,轻则罚款重则停业。很多人选软件的时候摸不清门道,想要做档案管理软件保密对比又找不到清晰的判断标准,...
2026年09月14日 07:20:12
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818