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>
322 lines
7.7 KiB
Markdown
322 lines
7.7 KiB
Markdown
# 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 开发团队
|