本系统采用微服务架构,将数据采集、存储、检索、分析等功能模块解耦,确保系统的高可用性和可扩展性。核心组件包括文件存储服务、元数据管理服务、全文检索引擎和权限控制服务。
所有操作均在Linux服务器(Ubuntu 22.04 LTS)上进行。请确保拥有root或sudo权限。
执行以下命令安装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 ```我们已准备了一个包含基础配置和服务的项目骨架,请克隆到服务器:
``` cd /opt sudo git clone https://github.com/example-repo/case-archive-system.git cd case-archive-system ```项目目录结构如下:
docker-compose.yml: 定义所有服务容器backend/: Spring Boot后端应用代码frontend/: Vue前端应用代码config/: 各服务的配置文件init-scripts/: 数据库初始化脚本所有服务的配置均已集成在docker-compose.yml中。你需要修改几个关键配置。
编辑docker-compose.yml文件,找到PostgreSQL和Elasticsearch的服务配置部分,设置强密码:
编辑backend/src/main/resources/application.yml,更新数据库和Elasticsearch的连接信息,与上一步设置的密码保持一致:
在项目根目录执行以下命令,启动所有依赖服务(数据库、搜索、存储等):
``` sudo docker compose up -d postgres elasticsearch minio redis rabbitmq ```等待1-2分钟,使用以下命令检查所有服务是否正常运行:
``` sudo docker compose ps ```所有服务的状态(STATUS)都应显示为“Up”。
完成基础环境搭建后,需要部署并配置核心业务应用。
进入后端目录,使用Maven打包应用,然后通过Docker启动:
``` cd /opt/case-archive-system/backend sudo mvn clean package -DskipTests sudo docker build -t case-archive-backend . cd .. ```编辑docker-compose.yml,在后端服务配置中取消注释,然后启动:
访问 http://你的服务器IP:8080/api/health,如果返回{"status":"UP"},说明后端启动成功。
进入前端目录,安装依赖并构建生产包:
``` cd /opt/case-archive-system/frontend sudo npm install sudo npm run build ```构建产物在dist目录。我们需要一个Nginx容器来托管它。在项目根目录的docker-compose.yml中启动Nginx服务:
访问 http://你的服务器IP,应能看到系统登录界面。
系统启动后,需进行初始化配置并接入第一批数据。

数据库表结构已通过init.sql脚本自动创建。现在需要创建第一个系统管理员账号。通过后端API接口创建:
返回{"success":true}即表示创建成功。请立即使用该账号登录前端,并在“用户管理”中修改默认密码。
系统使用MinIO存储电子文件。登录MinIO管理界面(http://你的服务器IP:9001,默认账号密码在docker-compose.yml中查找),执行以下操作:
系统提供了两种数据接入方式:API接口和后台管理界面上传。
方式一:通过API批量导入。准备一个符合格式的JSON文件cases_batch.json:
使用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。需要验证检索功能是否正常。
首次启动时,后端服务会自动创建名为case_documents的索引。你可以通过以下命令验证索引是否存在:
在返回的列表中应能看到case_documents。
通过系统前端或直接调用API测试检索功能:
``` curl -X GET "http://localhost:8080/api/search?keyword=盗窃&page=1&size=10" \ -H "Authorization: Bearer 你的管理员JWT令牌" ```该请求会返回所有摘要或文书中包含“盗窃”关键词的案件列表。
系统内置基于角色的访问控制(RBAC),但需要根据实际机构设置进行配置。
默认有四种角色:SUPER_ADMIN(超级管理员)、ARCHIVE_MANAGER(档案管理员)、INSPECTOR(查阅员)、AUDITOR(审计员)。权限配置位于backend/src/main/resources/permissions.json。如需调整,修改该文件后需重启backend服务。
所有关键操作(增删改查、登录登出、文件下载)均已自动记录至数据库sys_operation_log表。审计员角色可在前端“审计日志”模块查看所有记录。无需额外配置。
docker-compose.yml中,将Nginx、MinIO管理端等对外服务的端口映射(如9001)改为非默认端口。sudo docker compose pull和sudo docker compose up -d以更新服务至最新安全版本。必须建立定期备份机制,确保数据安全。
在服务器上创建备份脚本/opt/backup.sh:
给脚本执行权限并添加到crontab,每天凌晨2点执行:
``` sudo chmod +x /opt/backup.sh sudo crontab -e 添加一行: 0 2 /opt/backup.sh ```当需要恢复数据时,按顺序执行:
sudo docker exec -i case-archive-system-postgres-1 psql -U archive_admin case_archive < /path/to/backup/db_dump.sqlcurl -u elastic:YourElasticPassword456! -X POST "http://localhost:9200/_snapshot/backup_repository/snapshot_xxxx/_restore"/usr/local/bin/mc mirror --overwrite /path/to/backup/minio_data/ local/case-archive-filessudo docker compose restart backend至此,一个具备完整数据采集、存储、检索、管理和安全审计功能的违法犯罪数字档案馆系统已部署完成并可以投入使用。所有配置和代码均以生产可用为目标,请根据实际业务需求调整案件数据模型和用户角色权限。