Summary: - Complete IIT Manager Agent MVP Day 1 (12.5% progress) - Database: Create iit_schema with 5 tables (IitProject, IitPendingAction, IitTaskRun, IitUserMapping, IitAuditLog) - Backend: Add module structure (577 lines) and types (223 lines) - WeChat: Configure Enterprise WeChat app (CorpID, AgentID, Secret) - WeChat: Obtain web authorization and JS-SDK authorization - WeChat: Configure trusted domain (iit.xunzhengyixue.com) - Frontend: Deploy v1.2 with WeChat domain verification file - Frontend: Fix CRLF issue in docker-entrypoint.sh (CRLF -> LF) - Testing: 11/11 database CRUD tests passed - Testing: Access Token retrieval test passed - Docs: Create module status and development guide - Docs: Update MVP task list with Day 1 completion - Docs: Rename deployment doc to SAE real-time status record - Deployment: Update frontend internal IP to 172.17.173.80 Technical Details: - Prisma: Multi-schema support (iit_schema) - pg-boss: Job queue integration prepared - Taro 4.x: Framework selected for WeChat Mini Program - Shadow State: Architecture foundation laid - Docker: Fix entrypoint script line endings for Linux container Status: Day 1/14 complete, ready for Day 2 REDCap integration
26 KiB
26 KiB
REDCap部署指南与环境要求详解
文档版本: v1.0
创建日期: 2025-12-30
文档目的: 详细说明REDCap的部署要求、复杂度、软硬件条件
阅读时间: 25分钟
重要性: ⭐⭐⭐⭐⭐ 对接前必读
📋 执行摘要
核心结论:
- ✅ 是的,对接REDCap前必须先部署REDCap服务器
- 🟡 部署复杂度:中等(3.5/5分)
- ⏱️ 部署时间:
- 测试环境(Docker):1-2小时
- 生产环境(手动):1-2天
- 生产环境(含安全加固):3-5天
- 💰 成本:
- 测试环境:$0(本地开发)
- 生产环境:$500-3000/月(云服务器)
关键前置条件:
- 🔑 获得REDCap许可(加入联盟,签署EULA)
- 💾 下载REDCap源代码(redcap15.8.0.zip)
- 🖥️ 准备服务器环境(LAMP/LEMP栈)
- 📧 配置SMTP邮件服务(必需)
🎯 部署前必读:您需要什么?
1. REDCap许可与源代码获取(🔑 最关键)
获取流程
Step 1: 申请加入REDCap联盟
↓
访问:https://projectredcap.org/join/
↓
填写机构信息(医院/大学/研究机构)
↓
等待审批(1-4周)
Step 2: 签署最终用户许可协议(EULA)
↓
法律审查(禁止商业用途)
↓
机构授权人签字
Step 3: 下载REDCap软件包
↓
登录联盟成员门户
↓
下载:redcap_vX.X.X.zip(约50-80MB)
许可限制(⚠️ 重要)
✅ 允许:
- 非商业研究用途
- 机构内部使用
- 开发External Modules(开源共享)
❌ 禁止:
- 商业化销售
- 未经授权的再分发
- 修改核心代码后闭源
⚠️ 灰色地带:
- 提供REDCap托管服务(需咨询范德堡大学)
- 基于REDCap开发商业产品(你们的情况)
→ 建议:咨询法律顾问,可能需要额外协议
您的情况分析
壹证循科技的商业模式:
- REDCap是"客户已有"的系统
- 你们提供的是"AI增值服务"(DC/SSA模块)
- 通过External Module连接
合规性评估:
✅ 可能合规(提供插件,不销售REDCap本身)
⚠️ 需确认:是否帮客户部署REDCap?
- 如果只是对接客户现有REDCap → ✅ 合规
- 如果你们部署REDCap并收费 → ⚠️ 灰色地带
建议:
1. 与范德堡大学确认商业用途许可
2. 或者:只对接客户现有的REDCap(不提供部署)
🖥️ 软硬件要求详解
服务器配置要求
开发/测试环境
用途: 本地开发、功能测试、External Module开发
最低配置:
CPU: 2核
内存: 4GB
硬盘: 20GB SSD
系统: Windows 10/11 或 macOS 或 Linux
推荐配置:
CPU: 4核
内存: 8GB
硬盘: 50GB SSD
系统: Ubuntu 22.04 LTS
成本: $0(使用个人电脑或Mac)
生产环境(小型)
用途: 1-5个项目,<1000条记录
最低配置:
CPU: 2核 @ 2.5GHz+
内存: 8GB
硬盘: 100GB SSD
带宽: 10Mbps
系统: Ubuntu 22.04 LTS / CentOS 8
数据库:
MySQL: 5.7+ 或 MariaDB 10.3+
存储: 20GB(独立磁盘)
Web服务器:
Apache 2.4+ 或 Nginx 1.18+
PHP: 7.4 / 8.0 / 8.1 / 8.2
云服务器参考:
阿里云: ecs.c6.large(2核8GB) ≈ ¥500/月
AWS: t3.large(2核8GB) ≈ $70/月
腾讯云: SA2.MEDIUM4(2核8GB) ≈ ¥450/月
年度成本: $6K-8K
生产环境(中型)
用途: 10-50个项目,10K-100K条记录
推荐配置:
CPU: 4核 @ 3.0GHz+
内存: 16GB
硬盘: 500GB SSD(或SAN存储)
带宽: 50Mbps
系统: Ubuntu 22.04 LTS
数据库:
MySQL: 8.0+ 或 MariaDB 10.5+
存储: 200GB(独立服务器)
连接数: 最大500
Web服务器:
Apache 2.4+ 或 Nginx 1.20+
PHP: 8.1+(性能最优)
PHP-FPM进程数: 50-100
负载均衡:
可选:多Web节点 + LB
云服务器参考:
阿里云: ecs.c6.xlarge(4核16GB) ≈ ¥1200/月
AWS: t3.xlarge(4核16GB) ≈ $150/月
年度成本: $15K-20K
生产环境(大型/企业级)
用途: 100+项目,100万+记录,多机构部署
架构:
Web层: 2-4台Web服务器(负载均衡)
- 每台: 8核16GB
数据库层: 主从架构
- 主库: 16核32GB
- 从库: 16核32GB(读负载分担)
存储层:
- 文件服务器: NFS/对象存储
- 容量: 2TB-5TB
缓存层:
- Redis: 8核16GB
高可用:
- 数据库主从切换
- Web节点故障转移
- 每日备份+异地容灾
监控:
- Prometheus + Grafana
- 日志聚合(ELK)
- APM监控
云服务器参考:
总成本: ¥15K-30K/月
年度成本: $50K-100K
软件依赖清单
必需组件
# 操作系统(任选其一)
Ubuntu 22.04 LTS # 推荐
CentOS 8 / Rocky Linux 8 # 企业级
Debian 11
# Web服务器(任选其一)
Apache 2.4+ # REDCap官方推荐
- mod_rewrite enabled
- mod_ssl enabled
- mod_headers enabled
Nginx 1.18+ # 性能更好,配置复杂
# PHP(推荐8.1)
PHP 7.4 / 8.0 / 8.1 / 8.2
- PHP-FPM
- php-cli
- php-mysql / php-mysqli
- php-gd
- php-curl
- php-zip
- php-mbstring
- php-xml
- php-json
- php-ldap(如需LDAP认证)
- php-soap(如需Web Service集成)
# 数据库(任选其一)
MySQL 5.7+ / 8.0+ # 主流选择
MariaDB 10.3+ / 10.5+ # 开源替代
# PHP配置要求
upload_max_filesize = 32M
post_max_size = 32M
max_execution_time = 300
memory_limit = 256M
可选组件(增强功能)
# SMTP服务器(邮件通知)
必需:用于发送调查邀请、密码重置等
选项:
- SendGrid(推荐,云服务)
- Amazon SES
- 自建Postfix
- 企业SMTP(Office 365、Gmail)
# SSL证书(HTTPS)
必需:生产环境强制要求
选项:
- Let's Encrypt(免费)
- 商业证书(GeoTrust、DigiCert)
- 企业内部CA
# LDAP/Active Directory(单点登录)
可选:企业环境推荐
- OpenLDAP
- Microsoft AD
- Azure AD
# 防火墙/WAF
推荐:
- UFW / firewalld(主机防火墙)
- ModSecurity(Web应用防火墙)
- Cloudflare(CDN + DDoS防护)
# 监控工具
推荐:
- New Relic APM
- Datadog
- Prometheus + Grafana
🐳 部署方案对比
方案1:Docker容器部署(⭐ 推荐用于开发/测试)
优势
✅ 快速启动(1小时内完成)
✅ 环境隔离(不污染主机)
✅ 易于迁移(容器可移植)
✅ 版本管理(镜像标签)
✅ 易于销毁重建(测试理想)
完整Docker Compose配置
# docker-compose.yml
version: '3.8'
services:
# MySQL数据库
redcap-db:
image: mysql:8.0
container_name: redcap-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: redcap_root_123
MYSQL_DATABASE: redcap
MYSQL_USER: redcap_user
MYSQL_PASSWORD: redcap_pass_456
volumes:
- redcap-db-data:/var/lib/mysql
- ./mysql-init:/docker-entrypoint-initdb.d
ports:
- "3306:3306"
networks:
- redcap-network
command: --default-authentication-plugin=mysql_native_password
# PHPMyAdmin(数据库管理)
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: redcap-phpmyadmin
restart: unless-stopped
environment:
PMA_HOST: redcap-db
PMA_USER: root
PMA_PASSWORD: redcap_root_123
ports:
- "8081:80"
networks:
- redcap-network
depends_on:
- redcap-db
# Apache + PHP + REDCap
redcap-web:
image: php:8.1-apache
container_name: redcap-apache
restart: unless-stopped
ports:
- "8080:80"
volumes:
# REDCap源代码(需手动解压到此目录)
- ./redcap15.8.0:/var/www/html
# Apache配置
- ./apache/redcap.conf:/etc/apache2/sites-available/000-default.conf
# PHP配置
- ./php/php.ini:/usr/local/etc/php/php.ini
# 上传文件存储
- redcap-edocs:/var/www/html/edocs
- redcap-temp:/var/www/html/temp
environment:
REDCAP_DB_HOST: redcap-db
REDCAP_DB_NAME: redcap
REDCAP_DB_USER: redcap_user
REDCAP_DB_PASS: redcap_pass_456
networks:
- redcap-network
depends_on:
- redcap-db
# 安装PHP扩展
command: >
bash -c "
docker-php-ext-install mysqli pdo pdo_mysql gd zip &&
a2enmod rewrite ssl headers &&
apache2-foreground
"
networks:
redcap-network:
driver: bridge
volumes:
redcap-db-data:
redcap-edocs:
redcap-temp:
部署步骤(Docker方案)
# Step 1: 创建项目目录
mkdir redcap-docker && cd redcap-docker
# Step 2: 解压REDCap源码
unzip redcap_v15.8.0.zip
# 得到: redcap15.8.0/ 目录
# Step 3: 创建docker-compose.yml
# (粘贴上面的配置)
# Step 4: 创建Apache配置
mkdir apache
cat > apache/redcap.conf << 'EOF'
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/html/redcap
<Directory /var/www/html/redcap>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
EOF
# Step 5: 创建PHP配置
mkdir php
cat > php/php.ini << 'EOF'
upload_max_filesize = 32M
post_max_size = 32M
max_execution_time = 300
memory_limit = 256M
date.timezone = Asia/Shanghai
EOF
# Step 6: 启动容器
docker-compose up -d
# Step 7: 检查容器状态
docker-compose ps
# 应该看到3个容器运行中
# Step 8: 访问REDCap安装向导
# 打开浏览器:http://localhost:8080/install.php
# Step 9: 按照向导完成安装
# - 数据库配置:
# Host: redcap-db
# Database: redcap
# Username: redcap_user
# Password: redcap_pass_456
# Step 10: 安装完成后,访问REDCap
# http://localhost:8080/
Docker方案的坑点
⚠️ 坑1: 文件权限问题
症状: 上传文件失败,无法写入edocs目录
解决:
docker exec -it redcap-apache bash
chown -R www-data:www-data /var/www/html/edocs
chown -R www-data:www-data /var/www/html/temp
⚠️ 坑2: 数据库连接失败
症状: REDCap无法连接MySQL
原因: 容器网络未就绪
解决:
# 等待MySQL完全启动(30秒)
docker-compose logs redcap-db
# 看到 "ready for connections" 后再访问install.php
⚠️ 坑3: PHP扩展缺失
症状: 提示缺少GD库、ZIP库
解决:
# 进入容器安装
docker exec -it redcap-apache bash
docker-php-ext-install gd zip mysqli
service apache2 reload
⚠️ 坑4: 性能问题
症状: 页面加载慢(Docker on Windows/Mac)
原因: 文件I/O性能差
解决:
# 使用命名卷而非绑定挂载
volumes:
- redcap-code:/var/www/html # 命名卷(快)
# 不要: - ./redcap:/var/www/html # 绑定挂载(慢)
方案2:手动部署(生产环境推荐)
Ubuntu 22.04 LTS部署脚本
#!/bin/bash
# REDCap生产环境自动化部署脚本
# 适用于:Ubuntu 22.04 LTS
set -e # 遇到错误立即退出
echo "========================================"
echo "REDCap 15.8.0 自动化部署脚本"
echo "========================================"
# ========== 1. 系统更新 ==========
echo "[Step 1] 更新系统..."
apt update && apt upgrade -y
# ========== 2. 安装Apache ==========
echo "[Step 2] 安装Apache 2.4..."
apt install -y apache2
a2enmod rewrite ssl headers
systemctl enable apache2
systemctl start apache2
# ========== 3. 安装PHP 8.1 ==========
echo "[Step 3] 安装PHP 8.1..."
apt install -y software-properties-common
add-apt-repository -y ppa:ondrej/php
apt update
apt install -y \
php8.1 \
php8.1-cli \
php8.1-fpm \
php8.1-mysql \
php8.1-gd \
php8.1-curl \
php8.1-zip \
php8.1-mbstring \
php8.1-xml \
php8.1-ldap \
php8.1-soap \
libapache2-mod-php8.1
# 配置PHP
cat > /etc/php/8.1/apache2/conf.d/99-redcap.ini << 'EOF'
upload_max_filesize = 32M
post_max_size = 32M
max_execution_time = 300
memory_limit = 256M
date.timezone = Asia/Shanghai
EOF
systemctl restart apache2
# ========== 4. 安装MySQL 8.0 ==========
echo "[Step 4] 安装MySQL 8.0..."
apt install -y mysql-server mysql-client
# 启动MySQL
systemctl enable mysql
systemctl start mysql
# 安全加固MySQL
mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongRootPassword123!';"
mysql -e "DELETE FROM mysql.user WHERE User='';"
mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
mysql -e "DROP DATABASE IF EXISTS test;"
mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';"
mysql -e "FLUSH PRIVILEGES;"
# 创建REDCap数据库和用户
REDCAP_DB_PASS=$(openssl rand -base64 32)
mysql -uroot -p'YourStrongRootPassword123!' << EOF
CREATE DATABASE redcap CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'redcap_user'@'localhost' IDENTIFIED BY '${REDCAP_DB_PASS}';
GRANT ALL PRIVILEGES ON redcap.* TO 'redcap_user'@'localhost';
FLUSH PRIVILEGES;
EOF
echo "数据库密码(请保存):${REDCAP_DB_PASS}"
# ========== 5. 部署REDCap代码 ==========
echo "[Step 5] 部署REDCap代码..."
# 上传redcap15.8.0.zip到 /tmp/
# 手动或通过SCP上传
# scp redcap_v15.8.0.zip user@server:/tmp/
cd /var/www/html
unzip /tmp/redcap_v15.8.0.zip
mv redcap redcap_v15.8.0
# 创建符号链接(方便版本切换)
ln -s redcap_v15.8.0 redcap
# 设置权限
chown -R www-data:www-data /var/www/html/redcap
chmod -R 755 /var/www/html/redcap
chmod -R 777 /var/www/html/redcap/edocs
chmod -R 777 /var/www/html/redcap/temp
# ========== 6. 配置Apache虚拟主机 ==========
echo "[Step 6] 配置Apache..."
cat > /etc/apache2/sites-available/redcap.conf << 'EOF'
<VirtualHost *:80>
ServerName redcap.yourdomain.com
ServerAdmin admin@yourdomain.com
DocumentRoot /var/www/html/redcap
<Directory /var/www/html/redcap>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# 安全头
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-XSS-Protection "1; mode=block"
ErrorLog ${APACHE_LOG_DIR}/redcap_error.log
CustomLog ${APACHE_LOG_DIR}/redcap_access.log combined
</VirtualHost>
EOF
# 启用站点
a2ensite redcap.conf
a2dissite 000-default.conf
systemctl reload apache2
# ========== 7. 配置防火墙 ==========
echo "[Step 7] 配置防火墙..."
ufw allow 22/tcp # SSH
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS
ufw --force enable
# ========== 8. 安装Let's Encrypt SSL证书 ==========
echo "[Step 8] 安装SSL证书..."
apt install -y certbot python3-certbot-apache
# 自动获取证书(需要域名已解析到此服务器)
# certbot --apache -d redcap.yourdomain.com --non-interactive --agree-tos --email admin@yourdomain.com
# ========== 9. 配置Cron任务 ==========
echo "[Step 9] 配置Cron任务..."
cat > /etc/cron.d/redcap << 'EOF'
# REDCap Cron任务
*/1 * * * * www-data php /var/www/html/redcap/cron.php > /dev/null 2>&1
EOF
# ========== 10. 完成 ==========
echo "========================================"
echo "✅ REDCap部署完成!"
echo "========================================"
echo ""
echo "📝 下一步:"
echo "1. 访问:http://your-server-ip/install.php"
echo "2. 按照向导完成安装"
echo "3. 数据库配置:"
echo " Host: localhost"
echo " Database: redcap"
echo " Username: redcap_user"
echo " Password: ${REDCAP_DB_PASS}"
echo ""
echo "⚠️ 请务必保存数据库密码!"
手动部署的坑点
⚠️ 坑1: SELinux阻止(CentOS/RHEL)
症状: Permission denied错误
解决:
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
⚠️ 坑2: 文件上传失败
症状: edocs目录无写权限
解决:
chown -R www-data:www-data /var/www/html/redcap/edocs
chmod -R 777 /var/www/html/redcap/edocs
⚠️ 坑3: Cron任务不执行
症状: 计划任务、邮件不发送
解决:
# 检查cron日志
tail -f /var/log/syslog | grep CRON
# 手动测试cron
sudo -u www-data php /var/www/html/redcap/cron.php
⚠️ 坑4: 数据库连接失败
症状: Can't connect to MySQL
解决:
# 检查MySQL是否运行
systemctl status mysql
# 测试连接
mysql -uredcap_user -p redcap
⚠️ 坑5: 邮件发送失败
症状: 调查邀请无法发送
原因: 未配置SMTP
解决:
# 在REDCap控制中心配置SMTP
# 或使用SendGrid/Amazon SES
📈 部署复杂度评估
复杂度打分(1-5分)
| 环节 | 复杂度 | 时间 | 常见问题 | 难点 |
|---|---|---|---|---|
| 获取REDCap许可 | 🟡 2/5 | 1-4周 | 审批慢 | 法务流程 |
| 服务器准备 | 🟢 1/5 | 1小时 | 云厂商选择 | 无 |
| LAMP环境搭建 | 🟡 2/5 | 2-4小时 | PHP版本兼容 | 依赖安装 |
| REDCap安装 | 🟡 2/5 | 1-2小时 | 数据库配置 | 文件权限 |
| SMTP配置 | 🟡 3/5 | 1-3小时 | 邮件被拒 | 反垃圾邮件 |
| SSL证书 | 🟢 1/5 | 30分钟 | 域名解析 | 无 |
| 安全加固 | 🔴 4/5 | 1-2天 | 规则配置 | 防火墙/WAF |
| 性能优化 | 🔴 4/5 | 1-2天 | 慢查询 | MySQL调优 |
| 备份策略 | 🟡 2/5 | 2小时 | 存储空间 | 自动化 |
| 监控告警 | 🟡 3/5 | 4小时 | 指标选择 | 工具集成 |
总体评估
部署复杂度:3.5/5(中等偏高)
原因:
✅ 优势:
- REDCap安装向导友好(图形化界面)
- 官方文档详细
- 社区支持活跃
⚠️ 挑战:
- LAMP环境依赖多(10+个PHP扩展)
- 文件权限易出错
- SMTP配置繁琐
- 安全加固需要专业知识
对比:
- 比WordPress简单(依赖更少)
- 比Moodle复杂(配置更多)
- 比自研系统简单(现成软件)
🚀 快速开始:3种部署路径
路径1:Docker快速体验(1小时)
# 适用于:开发测试、External Module开发
# 1. 克隆配置仓库(假设你已创建)
git clone https://github.com/your-org/redcap-docker.git
cd redcap-docker
# 2. 放置REDCap源码
# 将redcap_v15.8.0.zip解压到当前目录
# 3. 一键启动
docker-compose up -d
# 4. 访问
http://localhost:8080/install.php
# 5. 完成安装向导
# 数据库配置:
# Host: redcap-db
# Database: redcap
# Username: redcap_user
# Password: redcap_pass_456
✅ 优势:快速、可重复、易销毁
❌ 劣势:不适合生产环境
路径2:云服务器标准部署(1天)
# 适用于:小型团队、私有化部署客户
# 1. 购买云服务器
阿里云ECS:2核8GB,Ubuntu 22.04
# 2. 执行自动化脚本
wget https://your-domain.com/redcap-install.sh
chmod +x redcap-install.sh
sudo ./redcap-install.sh
# 3. 访问
http://your-server-ip/install.php
# 4. 完成安装
# 5. 配置域名和SSL
certbot --apache -d redcap.yourdomain.com
✅ 优势:稳定、安全、可扩展
❌ 劣势:需要运维知识
路径3:托管服务(0天)
# 适用于:快速上手、无运维团队
# REDCap官方认证托管服务商:
1. Vanderbilt CTSA
https://redcap.vanderbilt.edu/consortium/pricing.php
价格:$5K-15K/年
2. Academic Health Center REDCap Hosting
https://ahcredcap.org/
价格:$3K-10K/年
3. 第三方托管(需验证合规性)
Veeva Vault EDC
Medidata Rave
✅ 优势:零运维、高可用、专业支持
❌ 劣势:费用高、定制受限
🔒 生产环境安全加固清单
必做项(P0)
# 1. 修改默认密码
# 安装完成后立即修改:
# - REDCap admin用户密码
# - MySQL root密码
# - 操作系统root密码
# 2. 启用HTTPS(强制)
certbot --apache -d redcap.yourdomain.com
# 在REDCap控制中心:System Configuration
# Force HTTPS: Yes
# 3. 配置防火墙
ufw enable
ufw allow 22/tcp # SSH(限制IP更佳)
ufw allow 80/tcp
ufw allow 443/tcp
ufw deny 3306/tcp # 禁止外部访问MySQL
# 4. 关闭不必要的服务
systemctl disable bluetooth
systemctl disable cups
# 5. 定期更新
apt update && apt upgrade -y
# 设置自动安全更新
apt install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
推荐项(P1)
# 6. 配置Web应用防火墙(WAF)
# ModSecurity + OWASP核心规则集
apt install libapache2-mod-security2
cd /etc/modsecurity
wget https://github.com/coreruleset/coreruleset/archive/v3.3.4.tar.gz
tar -xzvf v3.3.4.tar.gz
# 7. 启用审计日志
# 在REDCap控制中心启用:
# - Login auditing
# - Page view logging
# - Data export logging
# 8. 配置备份(每日自动)
cat > /etc/cron.daily/redcap-backup << 'EOF'
#!/bin/bash
# 数据库备份
mysqldump -uredcap_user -p'PASSWORD' redcap | gzip > /backup/redcap_$(date +\%Y\%m\%d).sql.gz
# 文件备份
tar -czf /backup/redcap_files_$(date +\%Y\%m\%d).tar.gz /var/www/html/redcap/edocs
# 删除30天前的备份
find /backup -type f -mtime +30 -delete
EOF
chmod +x /etc/cron.daily/redcap-backup
# 9. 配置fail2ban(防暴力破解)
apt install fail2ban
cat > /etc/fail2ban/jail.local << 'EOF'
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
[sshd]
enabled = true
[apache-auth]
enabled = true
EOF
systemctl restart fail2ban
# 10. 配置监控告警
# 推荐工具:
# - Uptime监控:UptimeRobot(免费)
# - 日志监控:Logtail(阿里云SLS)
# - APM监控:New Relic(付费)
💰 成本估算(全生命周期)
场景1:开发测试环境
初始成本:
- 服务器:$0(本地电脑)
- REDCap许可:$0(已获得)
- SSL证书:$0(自签名证书)
- 开发工具:$0(开源)
总计:$0
场景2:小型生产环境(50用户)
初始成本(一次性):
- REDCap许可获取:$0(联盟成员)
- 云服务器购买:$0(按月付费)
- SSL证书:$0(Let's Encrypt)
- 部署实施:$2K(1天人力)
年度运营成本:
- 云服务器:$600/年(阿里云2核8GB)
- 带宽流量:$240/年(10Mbps)
- 备份存储:$120/年(100GB OSS)
- SMTP服务:$0(SendGrid免费额度)
- 监控告警:$0(UptimeRobot免费)
- 运维人力:$10K/年(0.2 FTE)
5年总成本:$57K
场景3:企业级环境(500用户)
初始成本:
- 服务器集群:$5K(采购)
- 专业服务:$10K(架构设计+部署)
- 安全审计:$5K(第三方评估)
年度运营成本:
- 云服务器:$12K/年(4核16GB × 2)
- 数据库RDS:$8K/年(高可用版)
- 负载均衡:$3K/年
- 对象存储:$1K/年
- SMTP服务:$1K/年(SendGrid专业版)
- 监控APM:$2K/年(New Relic)
- 安全服务:$5K/年(WAF + DDoS)
- 运维人力:$50K/年(1 FTE DevOps)
- 年度审计:$10K/年(HIPAA合规)
5年总成本:$480K
🎯 对您项目的建议
当前阶段建议:先不急着部署REDCap
理由:
1. ✅ 您已有REDCap源代码(redcap15.8.0/)
2. ✅ 可以研究External Module开发(无需运行环境)
3. ✅ 可以阅读API文档、数据库Schema
4. ⏰ 等确定要对接时再部署(节省资源)
现阶段可以做:
- 研究REDCap代码结构
- 设计External Module架构
- 编写config.json和PHP代码(离线)
- 准备数据转换逻辑
- 设计API集成方案
何时部署REDCap测试环境?
时机:
- 需要测试External Module时
- 需要验证API调用时
- 需要测试数据同步时
- 准备给客户演示时
推荐方案:
Docker部署(1小时快速搭建)
命令:
cd AIclinicalresearch/
mkdir redcap-dev
cd redcap-dev
# 创建docker-compose.yml
docker-compose up -d
# 完成!
生产环境部署策略
方案A:客户自己部署(推荐)
- 你们只提供External Module
- 客户在自己的REDCap上安装
- 你们不承担运维责任
优势:
✅ 无需运维成本
✅ 数据在客户环境(合规)
✅ 商业模式清晰(插件销售)
方案B:你们提供托管服务
- 部署REDCap + 你们的External Module
- 按月收费(SaaS模式)
劣势:
❌ 运维成本高($50K+/年)
❌ 许可合规风险(需与范德堡确认)
❌ 数据合规责任(HIPAA)
建议:
🎯 优先推荐方案A(客户自己部署REDCap)
📚 部署参考资源
官方文档
1. REDCap安装指南
/redcap15.8.0/Installation_Instructions.txt
2. REDCap技术要求
https://projectredcap.org/software/requirements/
3. REDCap社区论坛
https://community.projectredcap.org/
4. External Module开发文档
/redcap_external_module_framework_docs_main/
第三方教程
1. GitHub REDCap Docker
https://github.com/123andy/redcap-docker-compose
2. DigitalOcean REDCap部署教程
https://www.digitalocean.com/community/tutorials/how-to-install-redcap
3. YouTube视频教程
搜索:"REDCap installation tutorial"
🎬 总结与行动建议
回答您的问题
Q1: 对接REDCap前需要部署吗? A: ✅ 是的,需要部署REDCap服务器才能开发和测试对接功能。
Q2: 部署复杂吗? A: 🟡 中等复杂度(3.5/5分)
- Docker方案:1-2小时(简单)
- 生产环境:1-2天(中等)
- 企业级:3-5天(复杂)
Q3: 需要什么条件? A:
- 🔑 REDCap许可(加入联盟)
- 💾 REDCap源代码(已有✅)
- 🖥️ 服务器(2核8GB起)
- 📧 SMTP邮件服务
Q4: 软硬件要求? A:
- CPU: 2核+
- 内存: 8GB+
- 硬盘: 100GB+ SSD
- 软件: LAMP栈(Linux + Apache + MySQL + PHP)
立即行动
Step 1: 决定部署方案
├─ Docker(开发测试) → 1小时完成
└─ 手动部署(生产环境) → 1天完成
Step 2: 准备环境
- 购买云服务器(如需)
- 安装Docker(如需)
- 确认REDCap许可状态
Step 3: 执行部署
- 按照本文档步骤操作
- 记录遇到的问题
- 完成安装向导
Step 4: 验证
- 创建测试项目
- 录入测试数据
- 测试API调用
Step 5: 开始External Module开发
- 创建模块目录
- 编写config.json
- 测试Hook功能
文档版本:v1.0
最后更新:2025-12-30
下次更新:部署完成后补充实际遇到的问题
🚀 需要我帮您创建Docker部署脚本吗?或者有其他部署相关的问题?