Files
AIclinicalresearch/docs/03-业务模块/Redcap/02-REDCap部署指南与环境要求.md
HaHafeng dac3cecf78 feat(iit): Complete IIT Manager Agent Day 1 - Environment initialization and WeChat integration
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
2026-01-01 14:32:58 +08:00

26 KiB
Raw Blame History

REDCap部署指南与环境要求详解

文档版本: v1.0
创建日期: 2025-12-30
文档目的: 详细说明REDCap的部署要求、复杂度、软硬件条件
阅读时间: 25分钟
重要性: 对接前必读


📋 执行摘要

核心结论

  • 是的对接REDCap前必须先部署REDCap服务器
  • 🟡 部署复杂度:中等3.5/5分
  • ⏱️ 部署时间
    • 测试环境Docker1-2小时
    • 生产环境手动1-2天
    • 生产环境含安全加固3-5天
  • 💰 成本
    • 测试环境:$0本地开发
    • 生产环境:$500-3000/月(云服务器)

关键前置条件

  1. 🔑 获得REDCap许可加入联盟签署EULA
  2. 💾 下载REDCap源代码redcap15.8.0.zip
  3. 🖥️ 准备服务器环境LAMP/LEMP栈
  4. 📧 配置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.large2核8GB ≈ ¥500/月
  AWS: t3.large2核8GB ≈ $70/月
  腾讯云: SA2.MEDIUM42核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.xlarge4核16GB ≈ ¥1200/月
  AWS: t3.xlarge4核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
  - 企业SMTPOffice 365、Gmail

# SSL证书HTTPS
必需:生产环境强制要求
选项:
  - Let's Encrypt免费
  - 商业证书GeoTrust、DigiCert
  - 企业内部CA

# LDAP/Active Directory单点登录
可选:企业环境推荐
  - OpenLDAP
  - Microsoft AD
  - Azure AD

# 防火墙/WAF
推荐:
  - UFW / firewalld主机防火墙
  - ModSecurityWeb应用防火墙
  - CloudflareCDN + DDoS防护

# 监控工具
推荐:
  - New Relic APM
  - Datadog
  - Prometheus + Grafana

🐳 部署方案对比

方案1Docker容器部署 推荐用于开发/测试)

优势

✅ 快速启动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种部署路径

路径1Docker快速体验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. 购买云服务器
阿里云ECS2核8GBUbuntu 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证书$0Let's Encrypt
- 部署实施:$2K1天人力

年度运营成本:
- 云服务器:$600/年阿里云2核8GB
- 带宽流量:$240/年10Mbps
- 备份存储:$120/年100GB OSS
- SMTP服务$0SendGrid免费额度
- 监控告警:$0UptimeRobot免费
- 运维人力:$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:

  1. 🔑 REDCap许可加入联盟
  2. 💾 REDCap源代码已有
  3. 🖥️ 服务器2核8GB起
  4. 📧 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部署脚本吗或者有其他部署相关的问题