149 lines
3.1 KiB
Markdown
149 lines
3.1 KiB
Markdown
# 人事共享服务中心"码"上办 - 需求收集系统
|
||
|
||
## Linux服务器部署指南
|
||
|
||
### 1. 上传并解压包
|
||
|
||
```bash
|
||
# 上传 requirement-collection.tar.gz 到服务器
|
||
|
||
# 解压
|
||
tar -xzf requirement-collection.tar.gz
|
||
cd mashangban
|
||
```
|
||
|
||
### 2. 安装依赖
|
||
|
||
```bash
|
||
pip3 install -r requirements.txt
|
||
```
|
||
|
||
### 3. 初始化数据库
|
||
|
||
```bash
|
||
python3 init_db.py
|
||
```
|
||
|
||
### 4. 启动服务
|
||
|
||
```bash
|
||
python3 run.py
|
||
```
|
||
|
||
### 5. 访问地址
|
||
|
||
- 基础地址:http://your-server-ip:5001/requirement-collection
|
||
- 带钉钉参数:http://your-server-ip:5001/requirement-collection/?userId={{发起人userid}}&name={{发起人姓名}}&dept={{发起人部门}}
|
||
|
||
### 6. 钉钉集成
|
||
|
||
在钉钉中配置机器人或应用,传入以下参数:
|
||
|
||
| 参数 | 说明 | 示例 |
|
||
|------|------|------|
|
||
| userId | 钉钉用户ID | manager123 |
|
||
| name | 用户姓名 | 张三 |
|
||
| dept | 部门名称 | 人事部 |
|
||
|
||
**示例URL:**
|
||
```
|
||
https://askill.top/requirement-collection/?userId=user001&name=张三&dept=人事部
|
||
```
|
||
|
||
**首次访问:** 系统自动创建用户并记录姓名和部门信息
|
||
|
||
**后续访问:** 根据userId自动识别用户并登录
|
||
|
||
### 7. 管理员配置
|
||
|
||
默认管理员账户信息:
|
||
- 用户名:管理员
|
||
- dingtalk_userid:admin
|
||
|
||
如需修改为其他管理员,需要手动编辑数据库。
|
||
|
||
### 8. 修改配置(可选)
|
||
|
||
#### 修改端口
|
||
编辑 `run.py` 中的端口号:
|
||
```python
|
||
run_simple('0.0.0.0', 端口号, application, ...)
|
||
```
|
||
|
||
#### 使用Gunicorn部署(生产环境推荐)
|
||
|
||
```bash
|
||
pip3 install gunicorn
|
||
gunicorn -w 4 -b 0.0.0.0:5001 'run:application'
|
||
```
|
||
|
||
#### Nginx反向代理配置
|
||
|
||
```nginx
|
||
server {
|
||
listen 80;
|
||
server_name your-domain.com;
|
||
|
||
location /requirement-collection {
|
||
proxy_pass http://127.0.0.1:5001;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||
proxy_set_header X-Forwarded-Proto $scheme;
|
||
}
|
||
}
|
||
```
|
||
|
||
### 9. 后台运行
|
||
|
||
使用systemd管理服务:
|
||
|
||
```bash
|
||
sudo nano /etc/systemd/system/requirement-collection.service
|
||
```
|
||
|
||
写入以下内容:
|
||
|
||
```ini
|
||
[Unit]
|
||
Description=Requirement Collection Service
|
||
After=network.target
|
||
|
||
[Service]
|
||
User=www-data
|
||
WorkingDirectory=/path/to/mashangban
|
||
ExecStart=/usr/bin/python3 /path/to/mashangban/run.py
|
||
Restart=always
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
```
|
||
|
||
启用服务:
|
||
|
||
```bash
|
||
sudo systemctl daemon-reload
|
||
sudo systemctl enable requirement-collection
|
||
sudo systemctl start requirement-collection
|
||
```
|
||
|
||
---
|
||
|
||
## 功能说明
|
||
|
||
- **需求汇总**:公开页面,显示所有公开需求
|
||
- **提交新需求**:登录后可提交(需求标题、需求内容、分会、联系方式、是否公开)
|
||
- **我的需求**:查看和管理自己提交的需求
|
||
- **管理后台**:管理员可回答需求、修改公开状态
|
||
|
||
## 权限说明
|
||
|
||
| 功能 | 普通用户 | 管理员 |
|
||
|------|---------|--------|
|
||
| 查看公开需求 | ✓ | ✓ |
|
||
| 提交需求 | ✓ | ✓ |
|
||
| 编辑自己的需求 | ✓ | ✓ |
|
||
| 回答需求 | - | ✓ |
|
||
| 强制修改公开状态 | - | ✓ |
|
||
| 查看所有需求 | - | ✓ |
|