Files
AIclinicalresearch/docs/03-业务模块/Redcap/01-部署与配置/15-REDCap生产环境部署信息记录.md
HaHafeng 4b9b90ffb8 feat(iit): Complete REDCap production deployment on Alibaba Cloud ECS
Summary:

- Deploy REDCap 15.8.0 on ECS with Docker CE 26.1.3

- Configure RDS MySQL 8.0 database (redcap_prod)

- Setup Nginx reverse proxy with HTTPS/SSL

- Domain configured: https://redcap.xunzhengyixue.com/

Documentation:

- Add ECS deployment guide

- Add deployment info record

- Update system status document (v4.5 -> v4.6)

Status: REDCap production environment fully operational
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 22:27:05 +08:00

322 lines
7.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# REDCap 生产环境部署信息记录
**创建日期:** 2026-02-02
**最后更新:** 2026-02-02
**状态:** ✅ 部署成功运行中HTTPS + 域名已配置)
**⚠️ 机密文档:** 请妥善保管,不要提交到公开代码仓库
---
## 🌐 访问地址
| 服务 | 地址 | 备注 |
|------|------|------|
| **REDCap 主页** | https://redcap.xunzhengyixue.com/ | ✅ 生产环境(推荐) |
| **REDCap 控制中心** | https://redcap.xunzhengyixue.com/ControlCenter/ | 管理员入口 |
| **REDCap API** | https://redcap.xunzhengyixue.com/api/ | API 接口 |
| **备用地址IP** | http://39.105.153.58/ | 会重定向到 HTTPS |
---
## 🖥️ ECS 服务器信息
| 项目 | 值 |
|------|-----|
| **实例名称** | launch-advisor-20260108 |
| **实例ID** | i-2ze51hziwjg23m2u1fg4 |
| **公网IP** | `39.105.153.58` |
| **私网IP** | `172.17.173.82` |
| **规格** | ecs.u2a-c1m2.large (2核 4GB) |
| **操作系统** | Alibaba Cloud Linux 3.2104 LTS |
| **可用区** | 华北2北京F |
| **到期时间** | 2027-01-09 |
| **VPC** | vpc-2ze055cptkew9c38w4r06 |
### SSH 登录信息
```bash
ssh root@39.105.153.58
```
| 项目 | 值 |
|------|-----|
| **用户名** | root |
| **密码** | `Xilu,881009` |
---
## 🗄️ RDS MySQL 数据库信息
| 项目 | 值 |
|------|-----|
| **实例ID** | rm-2ze9587199003517c |
| **数据库类型** | MySQL 8.0 |
| **规格** | mysql.n2e.medium.1 (2核 4GB) |
| **内网地址** | `rm-2ze9587199003517c.mysql.rds.aliyuncs.com` |
| **端口** | 3306 |
| **可用区** | 华北2北京F |
| **到期时间** | 2027-01-09 |
### REDCap 数据库
| 项目 | 值 |
|------|-----|
| **数据库名** | `redcap_prod` |
| **字符集** | utf8mb4 |
| **用户名** | `redcap_user` |
| **密码** | `Xilu@881009` |
### 数据库连接命令
```bash
mysql -h rm-2ze9587199003517c.mysql.rds.aliyuncs.com -u redcap_user -p'Xilu@881009' redcap_prod
```
---
## 👤 REDCap 管理员账户
| 项目 | 值 |
|------|-----|
| **用户名** | `admin` |
| **密码** | `Xilu,881009` |
| **权限** | 超级管理员 |
---
## 🔐 关键安全信息
### Salt 值(⚠️ 永不可变!)
```
redcap_prod_salt_2026_xilu_medical_v1_never_change
```
> **警告**Salt 值用于数据去标识化哈希,一旦设置**永远不能更改**
> 更改将导致所有去标识化数据失效,请务必备份保存。
### database.php 配置文件位置
```
ECS 路径: /opt/redcap/config/database.php
容器内路径: /var/www/html/redcap/database.php
```
---
## 🐳 Docker 部署信息
### 文件路径
| 文件/目录 | 路径 |
|----------|------|
| **部署根目录** | `/opt/redcap/` |
| **REDCap 源码** | `/opt/redcap/redcap15.8.0/redcap/` |
| **Docker Compose 文件** | `/opt/redcap/docker-compose.prod.yml` |
| **Dockerfile** | `/opt/redcap/Dockerfile.redcap` |
| **database.php** | `/opt/redcap/config/database.php` |
| **Apache 配置** | `/opt/redcap/config/apache/redcap.conf` |
| **PHP 配置** | `/opt/redcap/config/php/php.ini` |
| **日志目录** | `/opt/redcap/logs/` |
### Docker 信息
| 项目 | 值 |
|------|-----|
| **容器名称** | redcap-prod |
| **镜像名称** | redcap-redcap-web |
| **Docker 版本** | 26.1.3 |
| **Docker Compose 版本** | v2.27.0 |
### Docker 数据卷
| 卷名 | 用途 | 备注 |
|------|------|------|
| redcap-edocs-prod | 上传文件 | **重要!需定期备份** |
| redcap-modules-prod | External Modules | 可选备份 |
| redcap-temp-prod | 临时文件 | 可定期清理 |
### 常用 Docker 命令
```bash
# 进入部署目录
cd /opt/redcap
# 查看容器状态
docker compose -f docker-compose.prod.yml ps
# 查看日志
docker logs redcap-prod --tail 100
# 重启服务
docker compose -f docker-compose.prod.yml restart
# 停止服务
docker compose -f docker-compose.prod.yml stop
# 启动服务
docker compose -f docker-compose.prod.yml start
# 进入容器
docker exec -it redcap-prod bash
```
---
## 🔧 Docker 镜像加速器配置
配置文件:`/etc/docker/daemon.json`
```json
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://dockerpull.org",
"https://docker.rainbond.cc",
"https://docker.m.daocloud.io"
]
}
```
---
## 🛡️ 安全组配置
| 规则 | 协议 | 端口 | 授权对象 |
|------|------|------|---------|
| 入方向 | ALL | 全部 | 0.0.0.0/0 |
> **安全建议**:生产环境应限制 SSH 端口22只允许特定 IP 访问
---
## 🔒 HTTPS / SSL 配置
### 域名信息
| 项目 | 值 |
|------|-----|
| **域名** | `redcap.xunzhengyixue.com` |
| **DNS 解析** | A 记录 → `39.105.153.58` |
| **SSL 证书** | 阿里云免费证书DV |
| **证书有效期** | 1 年(需定期续期) |
### Nginx 反向代理
| 项目 | 值 |
|------|-----|
| **Nginx 版本** | 系统默认 |
| **配置文件** | `/etc/nginx/conf.d/redcap.conf` |
| **SSL 证书路径** | `/etc/nginx/ssl/redcap.xunzhengyixue.com.pem` |
| **SSL 私钥路径** | `/etc/nginx/ssl/redcap.xunzhengyixue.com.key` |
| **代理目标** | `http://127.0.0.1:8080` |
### 架构说明
```
用户访问 https://redcap.xunzhengyixue.com
Nginx (443/80) ← SSL 终止
Docker 容器 (8080) ← REDCap Apache
RDS MySQL (3306) ← 数据库
```
### Nginx 常用命令
```bash
# 检查配置
nginx -t
# 重启 Nginx
systemctl restart nginx
# 查看状态
systemctl status nginx
# 查看日志
tail -f /var/log/nginx/error.log
```
---
## 📦 软件版本
| 软件 | 版本 |
|------|------|
| REDCap | 15.8.0 |
| PHP | 8.1.x |
| Apache | 2.4.65 |
| MySQL | 8.0 (RDS) |
| Nginx | 系统默认 |
| Docker | 26.1.3 |
| Docker Compose | v2.27.0 |
| 操作系统 | Alibaba Cloud Linux 3.2104 |
---
## 💾 备份策略
### 数据库备份命令
```bash
# 手动备份
mysqldump -h rm-2ze9587199003517c.mysql.rds.aliyuncs.com \
-u redcap_user -p'Xilu@881009' \
redcap_prod > /opt/redcap/backups/redcap_db_$(date +%Y%m%d).sql
# 备份 edocs上传文件
docker cp redcap-prod:/var/www/html/redcap/edocs /opt/redcap/backups/edocs_$(date +%Y%m%d)
```
### 建议备份频率
| 数据类型 | 频率 | 保留时间 |
|---------|------|---------|
| 数据库 | 每日 | 30 天 |
| edocs 文件 | 每周 | 90 天 |
| 配置文件 | 每次修改后 | 永久 |
---
## 📋 部署时间线
| 日期 | 事件 |
|------|------|
| 2026-02-02 | ECS 服务器初始化,安装 Docker CE 26.1.3 |
| 2026-02-02 | 配置 Docker 镜像加速器(国内源) |
| 2026-02-02 | RDS MySQL 配置,创建数据库 redcap_prod 和用户 |
| 2026-02-02 | REDCap 15.8.0 源码和配置文件上传 |
| 2026-02-02 | Docker 容器构建和启动 |
| 2026-02-02 | 执行 redcap_install.sql 初始化数据库表 |
| 2026-02-02 | ✅ REDCap 生产环境部署完成HTTP |
| 2026-02-02 | 配置域名 redcap.xunzhengyixue.com DNS 解析 |
| 2026-02-02 | 申请并配置阿里云 SSL 证书 |
| 2026-02-02 | 安装 Nginx 反向代理,配置 HTTPS |
| 2026-02-02 | ✅ HTTPS + 域名配置完成 |
---
## ⚠️ 重要提醒
1. **Salt 值永不可变** - 更改将导致数据损坏
2. **定期备份数据库** - 防止数据丢失
3. **定期更新密码** - 增强安全性
4. **监控服务器状态** - 及时发现问题
5. **不要将此文档提交到公开仓库** - 包含敏感信息
---
## 📞 技术支持
- REDCap 官方文档https://projectredcap.org/
- 部署操作手册:[10-REDCap_Docker部署操作手册.md](./10-REDCap_Docker部署操作手册.md)
- ECS 部署方案:[14-REDCap_ECS生产环境部署方案.md](./14-REDCap_ECS生产环境部署方案.md)
- 问题排查手册:[13-部署问题排查手册.md](./13-部署问题排查手册.md)
---
**文档版本**v1.0
**创建者**AI Clinical Research 开发团队