数字档案馆系统云版从零部署实操指南 附全流程可复制配置命令
一、前置准备
操作前请先在云服务商控制台的安全组配置中,放行80、5432、9000、9001、8080端口的入方向TCP规则
1.1 硬件要求
- 云服务器最低配置:2核4G、带宽5M、系统盘40G、数据盘≥100G(档案量大可按需扩容)
- 操作系统:Ubuntu 22.04 LTS(其他版本可能存在依赖兼容问题,不推荐使用)
1.2 基础工具安装
登录云服务器后执行以下命令,更新系统源并安装基础工具:
```bash sudo apt update && sudo apt upgrade -y && sudo apt install wget curl vim net-tools cron -y ```安装Docker与Docker Compose,执行官方一键安装命令:
```bash curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh sudo apt install docker-compose-plugin -y ```验证安装结果,执行以下命令返回对应版本号即为成功:
```bash docker -v 返回Docker 24.0.x及以上版本 docker compose version 返回v2.20.x及以上版本 ```二、系统部署步骤
2.1 创建目录结构
执行以下命令创建系统所需的目录,用于存放配置、数据、日志等内容:
```bash sudo mkdir -p /opt/archive-cloud/{data/postgres,data/minio,data/nginx/log,nginx/conf.d,backup} cd /opt/archive-cloud ```2.2 编写配置文件
在/opt/archive-cloud目录下创建docker-compose.yml文件,内容可直接复制以下完整配置:
```yaml version: '3.8' services: postgres: image: postgres:14-alpine container_name: archive-postgres restart: always environment: POSTGRES_USER: archive_user POSTGRES_PASSWORD: Archive@2024 POSTGRES_DB: archive_db volumes: - ./data/postgres:/var/lib/postgresql/data ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U archive_user -d archive_db"] interval: 10s timeout: 5s retries: 5 minio: image: minio/minio:RELEASE.2024-03-15T01-07-19Z container_name: archive-minio restart: always command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: minio_admin MINIO_ROOT_PASSWORD: Minio@2024 volumes: - ./data/minio:/data ports: - "9000:9000" - "9001:9001" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 10s timeout: 5s retries: 5 archive-app: image: docker.io/opensourcearchives/digital-archive-cloud:v1.2.0 container_name: archive-app restart: always depends_on: postgres: condition: service_healthy minio: condition: service_healthy environment: DB_HOST: postgres DB_PORT: 5432 DB_NAME: archive_db DB_USER: archive_user DB_PASSWORD: Archive@2024 MINIO_ENDPOINT: http://minio:9000 MINIO_ACCESS_KEY: minio_admin MINIO_SECRET_KEY: Minio@2024 MINIO_BUCKET: archive-files ports: - "8080:8080" nginx: image: nginx:1.25-alpine container_name: archive-nginx restart: always depends_on: - archive-app volumes: - ./nginx/conf.d:/etc/nginx/conf.d - ./data/nginx/log:/var/log/nginx ports: - "80:80" ```在/opt/archive-cloud/nginx/conf.d目录下创建archive.conf配置文件,内容如下,需将`你的云服务器公网IP`替换为实际IP:
```nginx server { listen 80; server_name 你的云服务器公网IP; client_max_body_size 10G; location / { proxy_pass http://archive-app: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; } } ```2.3 启动服务

在/opt/archive-cloud目录下执行启动命令:
```bash sudo docker compose up -d ```执行以下命令查看服务状态,所有服务状态为Up(postgres、minio显示healthy)即为启动成功,首次启动需等待2分钟完成数据库与存储桶初始化:
```bash sudo docker compose ps ```三、初始化配置与功能验证
3.1 后台登录
浏览器访问`http://你的云服务器公网IP`,默认管理员账号:admin,默认密码:Admin@2024。登录后请立即前往个人中心-安全设置修改默认密码。
3.2 基础配置
进入系统设置-档案管理-分类配置,点击新增,可按单位需求添加档案分类,通用分类为文书档案、科技档案、会计档案、声像档案,每个分类可自定义元数据字段,比如文书档案可配置文号、保管期限、归档日期等必填字段。
3.3 功能验证
进入档案录入-新增档案,选择对应分类,填写元数据,上传附件(支持PDF、Word、JPG、MP4等格式,单文件最大支持10G),提交后在档案检索模块输入关键词可搜索到对应档案,即为部署成功。如需配置HTTPS,可将域名解析到服务器IP后执行以下命令一键申请免费证书:
```bash sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx ```按提示输入域名、邮箱即可自动完成HTTPS配置。
四、数据备份与常见问题排查
4.1 自动备份配置
在/opt/archive-cloud目录下创建backup.sh备份脚本,内容如下:
```bash !/bin/bash BACKUP_DIR=/opt/archive-cloud/backup DATE=$(date +%Y%m%d%H%M) mkdir -p $BACKUP_DIR 备份数据库 sudo docker exec archive-postgres pg_dump -U archive_user archive_db > $BACKUP_DIR/db_$DATE.sql 备份档案文件 sudo docker run --rm --volumes-from archive-minio -v $BACKUP_DIR:/backup alpine tar zcvf /backup/minio_$DATE.tar.gz /data 删除7天前的备份文件,避免占用空间 find $BACKUP_DIR -mtime +7 -name ".sql" -o -name ".tar.gz" -delete ```执行以下命令添加执行权限并配置定时任务,实现每天凌晨2点自动备份:
```bash chmod +x backup.sh (crontab -l 2>/dev/null; echo "0 2 /opt/archive-cloud/backup.sh") | crontab - ```4.2 常见问题排查
- 服务启动失败:执行`sudo docker compose logs 服务名`查看错误日志,若提示端口被占用,执行`netstat -tunlp | grep 端口号`查看占用进程,杀掉进程或修改docker-compose.yml中对应端口即可。
- 文件上传失败:检查minio服务状态是否正常,确认安全组已放行9000端口,同时确认nginx配置中client_max_body_size参数已设置为10G。
- 后台无法访问:检查安全组是否放行80端口,执行`sudo docker compose ps nginx`查看nginx服务状态是否为Up。