本次部署基于Gitee开源的通用档案在线管理系统,所有工具、命令均可直接复制使用,无需额外适配。
Python安装:
``` sudo apt update && sudo apt install python3.9 python3-pip -y ```MySQL安装:
``` sudo apt install mysql-server -y 安装后执行初始化命令,按照提示设置root密码 sudo mysql_secure_installation ```Node.js安装:
``` curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - && sudo apt install nodejs -y ```有Git工具的直接执行克隆命令:
``` git clone https://gitee.com/opensource/archive-manage-system.git ```无Git工具的直接下载zip包:https://gitee.com/opensource/archive-manage-system/repository/archive/master.zip,下载后解压到任意目录即可。
后端依赖安装:
``` cd archive-manage-system/backend 使用清华源加速,避免下载失败 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ```前端依赖安装:
``` cd ../frontend 使用国内npmmirror源加速 npm install --registry=https://registry.npmmirror.com ```首先登录MySQL创建专属数据库,执行以下命令:
``` mysql -u root -p 输入刚才设置的MySQL root密码后执行建库语句 CREATE DATABASE archive_manage DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; exit; ```修改后端数据库配置文件,打开backend/config/settings.py,找到DATABASES配置段,替换为以下内容(对应修改你的MySQL用户名和密码):
``` DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'archive_manage', 'USER': 'root', 替换为你的MySQL用户名 'PASSWORD': '123456', 替换为你的MySQL密码 'HOST': '127.0.0.1', 'PORT': '3306', } } ```执行数据库迁移,初始化表结构:
``` python manage.py makemigrations && python manage.py migrate ```
创建系统超级管理员账号,按照提示输入用户名、邮箱、密码即可:
``` python manage.py createsuperuser ```后端服务启动:在backend目录下执行
``` python manage.py runserver 0.0.0.0:8000 ```前端服务启动:新开一个终端,进入frontend目录执行
``` npm run dev ```启动完成后访问http://localhost:9528,输入刚才创建的超级管理员账号即可登录系统。
登录后台后,点击左侧菜单【系统管理】-【档案分类】,点击新增按钮,填写分类名称(如人事档案、项目档案、合同档案)、排序号、上级分类(二级分类需选择对应父级),分类编码需全局唯一,填写完成后点击确定即可生效。
点击左侧菜单【系统管理】-【角色管理】,选择对应角色(如普通员工、部门管理员、系统管理员),点击权限配置,按需勾选对应权限:普通员工建议仅勾选本部门档案上传、查看权限;部门管理员可勾选本部门档案的编辑、导出权限;系统管理员保留全部权限即可。
点击左侧菜单【档案管理】-【元数据设置】,选择对应档案分类,点击新增字段,可自定义该分类下档案的必填属性:比如人事档案可添加姓名、工号、入职时间、合同期限字段,合同档案可添加合同编号、甲方、乙方、到期时间字段,字段类型可选择文本、日期、数字、附件,勾选是否必填后保存,后续上传对应分类档案时会自动展示这些字段要求填写。
lsof -i:8000,Windows执行netstat -ano | findstr 8000找到占用进程ID,杀死进程后重新启动,或修改启动命令的端口号,比如python manage.py runserver 0.0.0.0:8001FILE_UPLOAD_MAX_MEMORY_SIZE = 10241024100(即最大支持100MB,可自行调整数值),线上部署的话还需要在Nginx配置中添加client_max_body_size 100M;npm install安装依赖再启动测试环境跑通后,如需上线正式使用,可按以下步骤优化:
后端使用Gunicorn托管,执行命令:
``` pip install gunicorn 启动4个进程,可根据服务器配置调整进程数 gunicorn -w 4 -b 127.0.0.1:8000 config.wsgi:application ```前端打包静态资源:
``` npm run build ```打包后生成的dist目录上传到服务器,配置Nginx反向代理,完整配置参考:
``` server { listen 80; server_name 你的域名或服务器公网IP; 前端静态资源路由 location / { root /usr/share/nginx/html/dist; index index.html index.htm; try_files $uri $uri/ /index.html; } 后端接口代理 location /api/ { proxy_pass http://127.0.0.1:8000/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ```注意:生产环境必须关闭DEBUG模式,打开backend/config/settings.py,修改DEBUG = False,ALLOWED_HOSTS = ['你的域名或公网IP'],避免泄露敏感信息。
档案整理行业认证,这玩意儿到底是不是你的职场“硬通货”?