推荐使用Ubuntu 22.04系统(兼容性最好,零踩坑),直接复制执行以下命令,完成所有基础依赖安装:
``` sudo apt update && sudo apt install -y python3-pip python3-venv git openjdk-17-jre minio nginx ```直接执行以下命令拉取轻量开源数字档案馆基础包,无需手动下载,复制即可运行:
``` git clone https://github.com/hello-evan/digital-archive-base.git ./digital-archive cd digital-archive ```接着创建虚拟环境,安装项目依赖:
``` python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ```MinIO用于存储档案原始文件,支持大文件共享,执行以下命令启动服务:
``` mkdir -p ~/minio-archive-data minio server ~/minio-archive-data --console-address ":9001" & ```打开浏览器访问 http://你的服务器IP:9001,默认账号密码均为minioadmin,按以下步骤操作:
archive-share,创建后进入存储桶,访问权限选只读,保存AccessKey和SecretKey备用打开项目根目录的config.py文件,直接替换为以下完整配置,再替换括号内标注的你自己的信息即可:
保存配置文件,内网部署请务必将allow_origins改为单位内网IP段,提升安全性。
执行以下命令初始化数据库,创建管理员账号:
``` flask init-db flask create-admin --username admin --password 123456@archive ```
执行flask run临时启动系统,打开浏览器访问http://你的服务器IP:5000/admin,用刚才创建的账号登录,按以下步骤操作:
操作完成后关闭临时服务(按Ctrl+C终止进程)。
打开Nginx配置文件/etc/nginx/sites-available/default,替换为以下完整配置,替换掉标注的服务器IP:
执行以下命令验证配置并重启Nginx:
``` sudo nginx -t && sudo systemctl reload nginx ```执行以下命令启动系统,后台运行不中断:
``` source venv/bin/activate gunicorn -w 4 -b 127.0.0.1:5000 app:app --daemonize ```按以下步骤验证,全部通过说明部署成功:
http://你的服务器IP/api/share/list?page=1&page_size=10,能正常返回JSON格式的档案列表,说明接口正常download_url,能正常下载档案文件,说明共享存储配置正确常用共享接口说明,对接其他系统可直接调用:
| 接口地址 | 功能 | 参数说明 |
|---|---|---|
| /api/share/list | 获取所有开放共享档案列表 | page:页码,page_size:每页条数 |
| /api/share/detail/<档案ID> | 获取单个档案元数据详情 | 无 |
| /api/share/download/<档案ID> | 获取档案文件下载地址 | 无 |
最后操作:部署完成后请立即登录后台修改默认管理员密码,避免安全风险。如果需要授权访问,只需关闭config.py中的enable_public_share,调用接口时在请求头添加后台生成的access token即可。