Major Changes: - Add StreamingService with OpenAI Compatible format - Upgrade Chat component V2 with Ant Design X integration - Implement AIA module with 12 intelligent agents - Update API routes to unified /api/v1 prefix - Update system documentation Backend (~1300 lines): - common/streaming: OpenAI Compatible adapter - modules/aia: 12 agents, conversation service, streaming integration - Update route versions (RVW, PKB to v1) Frontend (~3500 lines): - modules/aia: AgentHub + ChatWorkspace (100% prototype restoration) - shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook - Update API endpoints to v1 Documentation: - AIA module status guide - Universal capabilities catalog - System overview updates - All module documentation sync Tested: Stream response verified, authentication working Status: AIA V2.0 core completed (85%)
1155 lines
26 KiB
Markdown
1155 lines
26 KiB
Markdown
# REDCap<61>函蔡<E587BD><E894A1><EFBFBD>銝𡒊㴓憓<E3B493><E68693>瘙<EFBFBD>祕閫?
|
||
|
||
> **<2A><>﹝<EFBFBD><EFB99D>𧋦嚗?* v1.0
|
||
> **<2A>𥕦遣<F0A595A6>交<EFBFBD>嚗?* 2025-12-30
|
||
> **<2A><>﹝<EFBFBD>桃<EFBFBD>嚗?* 霂衣<E99C82>霂湔<E99C82>REDCap<61><70><EFBFBD>蝵脰<E89DB5>瘙<EFBFBD><E79899><EFBFBD><EFBFBD><EFBFBD><EFBFBD>漲<EFBFBD><E6BCB2>蔓蝖砌辣<E7A08C>∩辣
|
||
> **<2A><>粉<EFBFBD>園𡢿嚗?* 25<32><35><EFBFBD>
|
||
> **<2A>滩<EFBFBD><E6BBA9>改<EFBFBD>** 潃鐥<E6BD83>潃鐥<E6BD83>潃?**撖寞𦻖<E5AF9E>滚<EFBFBD>霂?*
|
||
|
||
---
|
||
|
||
## <20><> <20>扯<EFBFBD><E689AF>䁅<EFBFBD>
|
||
|
||
**<EFBFBD>詨<EFBFBD>蝏栞捏**嚗?
|
||
- <20>?**<2A>舐<EFBFBD>嚗<EFBFBD>笆<EFBFBD>充EDCap<61>滚<EFBFBD>憿餃<E686BF><E9A483>函蔡REDCap<61>滚𦛚<E6BB9A>?*
|
||
- <20>椬 **<EFBFBD>函蔡憭齿<EFBFBD>摨佗<EFBFBD>銝剔<EFBFBD>**嚗?.5/5<><35><EFBFBD>
|
||
- <20>梧<EFBFBD> **<EFBFBD>函蔡<EFBFBD>園𡢿**嚗?
|
||
- 瘚贝<E7989A><E8B49D>臬<EFBFBD>嚗㇄ocker嚗㚁<E59A97>1-2撠𤩺𧒄
|
||
- <20>煺漣<E785BA>臬<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>剁<EFBFBD>嚗?-2憭?
|
||
- <20>煺漣<E785BA>臬<EFBFBD>嚗<EFBFBD>鉄摰匧<E691B0><E58CA7>惩𤐄嚗㚁<E59A97>3-5憭?
|
||
- <20>兛 **<EFBFBD>鞉𧋦**嚗?
|
||
- 瘚贝<E7989A><E8B49D>臬<EFBFBD>嚗?0嚗<30>𧋦<EFBFBD>啣<EFBFBD><E595A3>𡢅<EFBFBD>
|
||
- <20>煺漣<E785BA>臬<EFBFBD>嚗?500-3000/<2F><><EFBFBD>鈭烐<E988AD><E78390>∪膥嚗?
|
||
|
||
**<EFBFBD>喲睸<EFBFBD>滨蔭<EFBFBD>∩辣**嚗?
|
||
1. <20><> **<EFBFBD>瑕<EFBFBD>REDCap霈詨虾**嚗<><E59A97><EFBFBD>亥<EFBFBD><E4BAA5><EFBFBD><EFBFBD>蝑曄蔡EULA嚗?
|
||
2. <20>𠒣 **銝贝蝸REDCap皞𣂷誨<F0A382B7>?*嚗ǐedcap15.8.0.zip嚗?
|
||
3. <20>棅儭?**<2A><><EFBFBD><EFBFBD>滚𦛚<E6BB9A>函㴓憓?*嚗𡿨AMP/LEMP<4D><50><EFBFBD>
|
||
4. <20>𩣪 **<EFBFBD>滨蔭SMTP<EFBFBD>桐辣<EFBFBD>滚𦛚**嚗<><E59A97><EFBFBD><EFBFBD>嚗?
|
||
|
||
---
|
||
|
||
## <20>㴓 <20>函蔡<E587BD>滚<EFBFBD>霂鳴<E99C82><E9B3B4>券<EFBFBD>閬<EFBFBD><E996AC>銋<EFBFBD><E98A8B>
|
||
|
||
### 1. REDCap霈詨虾銝擧<E98A9D>隞<EFBFBD><E99A9E><EFBFBD>瑕<EFBFBD>嚗<EFBFBD><E59A97>?<3F><><EFBFBD>喲睸嚗?
|
||
|
||
#### <20>瑕<EFBFBD>瘚<EFBFBD><E7989A>
|
||
|
||
```
|
||
Step 1: <20>唾窈<E594BE>惩<EFBFBD>REDCap<61>𠉛<EFBFBD>
|
||
<20>?
|
||
霈輸䔮嚗冴ttps://projectredcap.org/join/
|
||
<20>?
|
||
憛怠<EFBFBD><EFBFBD>箸<EFBFBD>靽⊥<EFBFBD>嚗<EFBFBD>龫<EFBFBD>?憭批郎/<2F>𠉛弦<F0A0899B>箸<EFBFBD>嚗?
|
||
<20>?
|
||
蝑匧<EFBFBD>摰⊥鸌嚗?-4<>剁<EFBFBD>
|
||
|
||
Step 2: 蝑曄蔡<E69B84><E894A1>蝏<EFBFBD>鍂<EFBFBD>瑁捂<E79181>臬<EFBFBD>霈殷<E99C88>EULA嚗?
|
||
<20>?
|
||
瘜訫<EFBFBD>摰⊥䰻嚗<EFBFBD><EFBFBD>甇W<EFBFBD>銝𡁶鍂<EFBFBD>䈑<EFBFBD>
|
||
<20>?
|
||
<EFBFBD>箸<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鈭箇倌摮?
|
||
|
||
Step 3: 銝贝蝸REDCap頧臭辣<E887AD>?
|
||
<20>?
|
||
<EFBFBD>餃<EFBFBD><EFBFBD>𠉛<EFBFBD><EFBFBD>𣂼<EFBFBD><EFBFBD>冽<EFBFBD>
|
||
<20>?
|
||
銝贝蝸嚗鬏edcap_vX.X.X.zip嚗<70>漲50-80MB嚗?
|
||
```
|
||
|
||
#### 霈詨虾<E8A9A8>𣂼<EFBFBD>嚗<EFBFBD><E59A97>儭?<3F>滩<EFBFBD>嚗?
|
||
|
||
```
|
||
<EFBFBD>?<3F><>捂嚗?
|
||
- <20>𧼮<EFBFBD>銝𡁶<E98A9D>蝛嗥鍂<E597A5>?
|
||
- <20>箸<EFBFBD><E7AEB8><EFBFBD><EFBFBD>雿輻鍂
|
||
- 撘<><E69298>䫿xternal Modules嚗<73><E59A97>皞𣂼<E79A9E>鈭恬<E988AD>
|
||
|
||
<EFBFBD>?蝳<>迫嚗?
|
||
- <20><><EFBFBD><EFBFBD>㚚<EFBFBD><E39A9A>?
|
||
- <20>芰<EFBFBD><E88AB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
- 靽格㺿<E6A0BC>詨<EFBFBD>隞<EFBFBD><E99A9E><EFBFBD>𡡞𡡒皞?
|
||
|
||
<EFBFBD>𩤃<EFBFBD> <20>啗𠧧<E59597>啣蒂嚗?
|
||
- <20>𣂷<EFBFBD>REDCap<61>条恣<E69DA1>滚𦛚嚗<F0A69B9A><E59A97><EFBFBD>刻砭<E588BB><E7A0AD>噸<EFBFBD>∪之摮佗<E691AE>
|
||
- <20>箔<EFBFBD>REDCap撘<70><E69298>穃<EFBFBD>銝帋漣<E5B88B><E6BCA3><EFBFBD>雿牐賑<E78990><E8B391><EFBFBD><EFBFBD>蛛<EFBFBD>
|
||
<20>?撱箄悅嚗𡁜倮霂X<E99C82>敺钅▽<E99285>殷<EFBFBD><E6AEB7>航<EFBFBD><E888AA><EFBFBD>閬<EFBFBD><E996AC>憭硋<E686AD>霈?
|
||
```
|
||
|
||
#### <20>函<EFBFBD><E587BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
```
|
||
憯寡<EFBFBD>敺芰<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝𡁏芋撘𧶏<EFBFBD>
|
||
- REDCap<61>?摰X<E691B0>撌脫<E6928C>"<22><>頂蝏?
|
||
- 雿牐賑<E78990>𣂷<EFBFBD><F0A382B7><EFBFBD>糓"AI憓𧼮<E68693>潭<EFBFBD><E6BDAD>?嚗㇄C/SSA璅∪<E79285>嚗?
|
||
- <20>朞<EFBFBD>External Module餈墧𦻖
|
||
|
||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>扯<EFBFBD>隡堆<EFBFBD>
|
||
<EFBFBD>?<3F>航<EFBFBD><E888AA><EFBFBD><EFBFBD>嚗<EFBFBD><E59A97>靘𥟇<E99D98>隞塚<E99A9E>銝漤<E98A9D><E6BCA4>娜EDCap<61>祈澈嚗?
|
||
<EFBFBD>𩤃<EFBFBD> <20><>蝖株恕嚗𡁏糓<F0A1818F>血葬摰X<E691B0><EFBCB8>函蔡REDCap嚗?
|
||
- 憒<><E68692><EFBFBD>芣糓撖寞𦻖摰X<E691B0><EFBCB8>唳<EFBFBD>REDCap <20>?<3F>?<3F><><EFBFBD>
|
||
- 憒<><E68692>雿牐賑<E78990>函蔡REDCap撟嗆𤣰韐?<3F>?<3F>𩤃<EFBFBD> <20>啗𠧧<E59597>啣蒂
|
||
|
||
撱箄悅嚗?
|
||
1. 銝舘<E98A9D>敺瑕嵗憭批郎蝖株恕<E6A0AA><E68195><EFBFBD><EFBFBD>券<EFBFBD>磰捂<E7A3B0>?
|
||
2. <20>𤥁<EFBFBD><F0A4A581><EFBFBD><EFBFBD>芸笆<E88AB8>亙恥<E4BA99>瑞緵<E7919E>厩<EFBFBD>REDCap嚗<70><E59A97><EFBFBD>𣂷<EFBFBD><F0A382B7>函蔡嚗?
|
||
```
|
||
|
||
---
|
||
|
||
## <20>棅儭?頧舐′隞嗉<E99A9E>瘙<EFBFBD>祕閫?
|
||
|
||
### <20>滚𦛚<E6BB9A>券<EFBFBD>蝵株<E89DB5>瘙?
|
||
|
||
#### 撘<><E69298>?瘚贝<E7989A><E8B49D>臬<EFBFBD>
|
||
|
||
```yaml
|
||
<EFBFBD>券<EFBFBD>? <20>砍𧑐撘<F0A79190><E69298>㻫<EFBFBD><E3BBAB><EFBFBD><EFBFBD>賣<EFBFBD>霂𨰻<E99C82><F0A8B0BB>xternal Module撘<65><E69298>?
|
||
|
||
<EFBFBD><EFBFBD>雿𡡞<EFBFBD>蝵?
|
||
CPU: 2<EFBFBD>?
|
||
<EFBFBD><EFBFBD><EFBFBD>: 4GB
|
||
蝖祉<EFBFBD>: 20GB SSD
|
||
蝟餌<EFBFBD>: Windows 10/11 <20>?macOS <20>?Linux
|
||
|
||
<EFBFBD>刻<EFBFBD><EFBFBD>滨蔭:
|
||
CPU: 4<EFBFBD>?
|
||
<EFBFBD><EFBFBD><EFBFBD>: 8GB
|
||
蝖祉<EFBFBD>: 50GB SSD
|
||
蝟餌<EFBFBD>: Ubuntu 22.04 LTS
|
||
|
||
<EFBFBD>鞉𧋦: $0嚗<30>蝙<EFBFBD>其葵鈭箇㩞<E7AE87>烐<EFBFBD>Mac嚗?
|
||
```
|
||
|
||
#### <20>煺漣<E785BA>臬<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>页<EFBFBD>
|
||
|
||
```yaml
|
||
<EFBFBD>券<EFBFBD>? 1-5銝芷★<E88AB7>殷<EFBFBD><1000<30>∟扇敶?
|
||
|
||
<EFBFBD><EFBFBD>雿𡡞<EFBFBD>蝵?
|
||
CPU: 2<EFBFBD>?@ 2.5GHz+
|
||
<EFBFBD><EFBFBD><EFBFBD>: 8GB
|
||
蝖祉<EFBFBD>: 100GB SSD
|
||
撣血捐: 10Mbps
|
||
蝟餌<EFBFBD>: Ubuntu 22.04 LTS / CentOS 8
|
||
|
||
<EFBFBD>唳旿摨?
|
||
MySQL: 5.7+ <20>?MariaDB 10.3+
|
||
摮睃<EFBFBD>: 20GB嚗<EFBFBD>𡠺蝡讠<EFBFBD><EFBFBD>矋<EFBFBD>
|
||
|
||
Web<EFBFBD>滚𦛚<EFBFBD>?
|
||
Apache 2.4+ <20>?Nginx 1.18+
|
||
PHP: 7.4 / 8.0 / 8.1 / 8.2
|
||
|
||
鈭烐<EFBFBD><EFBFBD>∪膥<EFBFBD><EFBFBD><EFBFBD>?
|
||
<EFBFBD>輸<EFBFBD>鈭? ecs.c6.large嚗?<3F>?GB嚗?<3F>?瞼500/<2F>?
|
||
AWS: t3.large嚗?<3F>?GB嚗?<3F>?$70/<2F>?
|
||
<EFBFBD>曇悖鈭? SA2.MEDIUM4嚗?<3F>?GB嚗?<3F>?瞼450/<2F>?
|
||
|
||
撟游漲<EFBFBD>鞉𧋦: $6K-8K
|
||
```
|
||
|
||
#### <20>煺漣<E785BA>臬<EFBFBD>嚗<EFBFBD>葉<EFBFBD>页<EFBFBD>
|
||
|
||
```yaml
|
||
<EFBFBD>券<EFBFBD>? 10-50銝芷★<E88AB7>殷<EFBFBD>10K-100K<30>∟扇敶?
|
||
|
||
<EFBFBD>刻<EFBFBD><EFBFBD>滨蔭:
|
||
CPU: 4<EFBFBD>?@ 3.0GHz+
|
||
<EFBFBD><EFBFBD><EFBFBD>: 16GB
|
||
蝖祉<EFBFBD>: 500GB SSD嚗<44><E59A97>SAN摮睃<E691AE>嚗?
|
||
撣血捐: 50Mbps
|
||
蝟餌<EFBFBD>: Ubuntu 22.04 LTS
|
||
|
||
<EFBFBD>唳旿摨?
|
||
MySQL: 8.0+ <20>?MariaDB 10.5+
|
||
摮睃<EFBFBD>: 200GB嚗<EFBFBD>𡠺蝡𧢲<EFBFBD><EFBFBD>∪膥嚗?
|
||
餈墧𦻖<EFBFBD>? <20><>憭?00
|
||
|
||
Web<EFBFBD>滚𦛚<EFBFBD>?
|
||
Apache 2.4+ <20>?Nginx 1.20+
|
||
PHP: 8.1+嚗<><E59A97>扯<EFBFBD><E689AF><EFBFBD>隡矋<E99AA1>
|
||
PHP-FPM餈𤤿<E9A488><F0A4A4BF>? 50-100
|
||
|
||
韐蠘蝸<EFBFBD><EFBFBD>﹛:
|
||
<EFBFBD>舫<EFBFBD>㚁<EFBFBD>憭阳eb<EFBFBD><EFBFBD><EFBFBD> + LB
|
||
|
||
鈭烐<EFBFBD><EFBFBD>∪膥<EFBFBD><EFBFBD><EFBFBD>?
|
||
<EFBFBD>輸<EFBFBD>鈭? ecs.c6.xlarge嚗?<3F>?6GB嚗?<3F>?瞼1200/<2F>?
|
||
AWS: t3.xlarge嚗?<3F>?6GB嚗?<3F>?$150/<2F>?
|
||
|
||
撟游漲<EFBFBD>鞉𧋦: $15K-20K
|
||
```
|
||
|
||
#### <20>煺漣<E785BA>臬<EFBFBD>嚗<EFBFBD>之<EFBFBD>?隡<><E99AA1>蝥改<E89DA5>
|
||
|
||
```yaml
|
||
<EFBFBD>券<EFBFBD>? 100+憿寧𤌍嚗?00銝?霈啣<E99C88>嚗<EFBFBD><E59A97><EFBFBD>箸<EFBFBD><E7AEB8>函蔡
|
||
|
||
<EFBFBD>嗆<EFBFBD>:
|
||
Web撅? 2-4<>訖eb<65>滚𦛚<E6BB9A>剁<EFBFBD>韐蠘蝸<E8A098><E89DB8>﹛嚗?
|
||
- 瘥誩蝱: 8<EFBFBD>?6GB
|
||
|
||
<EFBFBD>唳旿摨枏<EFBFBD>: 銝颱<EFBFBD><EFBFBD>嗆<EFBFBD>
|
||
- 銝餃<EFBFBD>: 16<EFBFBD>?2GB
|
||
- 隞𤾸<EFBFBD>: 16<EFBFBD>?2GB嚗<42>粉韐蠘蝸<E8A098><E89DB8><EFBFBD>嚗?
|
||
|
||
摮睃<EFBFBD>撅?
|
||
- <EFBFBD><EFBFBD>辣<EFBFBD>滚𦛚<EFBFBD>? NFS/撖寡情摮睃<E691AE>
|
||
- 摰寥<EFBFBD>: 2TB-5TB
|
||
|
||
蝻枏<EFBFBD>撅?
|
||
- Redis: 8<EFBFBD>?6GB
|
||
|
||
擃睃虾<EFBFBD>?
|
||
- <EFBFBD>唳旿摨㮖蜓隞𤾸<EFBFBD><EFBFBD>?
|
||
- Web<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頧祉宏
|
||
- 瘥𤩺𠯫憭<EFBFBD>遢+撘<>𧑐摰寧<E691B0>
|
||
|
||
<EFBFBD>烐綉:
|
||
- Prometheus + Grafana
|
||
- <EFBFBD>亙<EFBFBD><EFBFBD>𡁜<EFBFBD>嚗𠄌LK嚗?
|
||
- APM<EFBFBD>烐綉
|
||
|
||
鈭烐<EFBFBD><EFBFBD>∪膥<EFBFBD><EFBFBD><EFBFBD>?
|
||
<EFBFBD>餅<EFBFBD><EFBFBD>? 瞼15K-30K/<2F>?
|
||
|
||
撟游漲<EFBFBD>鞉𧋦: $50K-100K
|
||
```
|
||
|
||
### 頧臭辣靘肽<E99D98>皜<EFBFBD><E79A9C>
|
||
|
||
#### 敹<><E695B9>蝏<EFBFBD>辣
|
||
|
||
```bash
|
||
# <20>滢<EFBFBD>蝟餌<E89D9F>嚗<EFBFBD>遙<EFBFBD>匧<EFBFBD>銝<EFBFBD>嚗?
|
||
Ubuntu 22.04 LTS # <20>刻<EFBFBD>
|
||
CentOS 8 / Rocky Linux 8 # 隡<><E99AA1>蝥?
|
||
Debian 11
|
||
|
||
# Web<65>滚𦛚<E6BB9A>剁<EFBFBD>隞駁<E99A9E>匧<EFBFBD>銝<EFBFBD>嚗?
|
||
Apache 2.4+ # REDCap摰䀹䲮<E480B9>刻<EFBFBD>
|
||
- mod_rewrite enabled
|
||
- mod_ssl enabled
|
||
- mod_headers enabled
|
||
|
||
Nginx 1.18+ # <20>扯<EFBFBD><E689AF>游末嚗屸<E59A97>蝵桀<E89DB5><E6A180>?
|
||
|
||
# PHP嚗<50>綫<EFBFBD>?.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嚗<70><E59A97><EFBFBD><EFBFBD>LDAP霈方<E99C88>嚗?
|
||
- php-soap嚗<70><E59A97><EFBFBD><EFBFBD>Web Service<63><65><EFBFBD>嚗?
|
||
|
||
# <20>唳旿摨橒<E691A8>隞駁<E99A9E>匧<EFBFBD>銝<EFBFBD>嚗?
|
||
MySQL 5.7+ / 8.0+ # 銝餅<E98A9D><E9A485>㗇𥋘
|
||
MariaDB 10.3+ / 10.5+ # 撘<>皞鞉𤜯隞?
|
||
|
||
# PHP<48>滨蔭閬<E894AD><E996AC>
|
||
upload_max_filesize = 32M
|
||
post_max_size = 32M
|
||
max_execution_time = 300
|
||
memory_limit = 256M
|
||
```
|
||
|
||
#### <20>舫<EFBFBD>厩<EFBFBD>隞塚<E99A9E>憓𧼮撩<F0A7BCAE>蠘<EFBFBD>嚗?
|
||
|
||
```bash
|
||
# SMTP<54>滚𦛚<E6BB9A>剁<EFBFBD><E58981>桐辣<E6A190>𡁶䰻嚗?
|
||
敹<EFBFBD><EFBFBD>嚗𡁶鍂鈭𤾸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>仿<EFBFBD>霂瑯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵桃<EFBFBD>
|
||
<EFBFBD>厰★嚗?
|
||
- SendGrid嚗<64>綫<EFBFBD>琜<EFBFBD>鈭烐<E988AD><E78390>∴<EFBFBD>
|
||
- Amazon SES
|
||
- <20>芸遣Postfix
|
||
- 隡<><E99AA1>SMTP嚗㇉ffice 365<36><35>mail嚗?
|
||
|
||
# SSL霂<4C>髡嚗𠃍TTPS嚗?
|
||
敹<EFBFBD><EFBFBD>嚗𡁶<EFBFBD>鈭抒㴓憓<EFBFBD>撩<EFBFBD>嗉<EFBFBD>瘙?
|
||
<EFBFBD>厰★嚗?
|
||
- Let's Encrypt嚗<74><E59A97>韐對<E99F90>
|
||
- <20><><EFBFBD>霂<EFBFBD>髡嚗𠃑eoTrust<73><74>igiCert嚗?
|
||
- 隡<><E99AA1><EFBFBD><EFBFBD><EFBFBD>CA
|
||
|
||
# LDAP/Active Directory嚗<79><E59A97><EFBFBD>寧蒈敶𤏪<E695B6>
|
||
<EFBFBD>舫<EFBFBD>㚁<EFBFBD>隡<EFBFBD><EFBFBD><EFBFBD>臬<EFBFBD><EFBFBD>刻<EFBFBD>
|
||
- OpenLDAP
|
||
- Microsoft AD
|
||
- Azure AD
|
||
|
||
# <20>脩<EFBFBD>憓?WAF
|
||
<EFBFBD>刻<EFBFBD>嚗?
|
||
- UFW / firewalld嚗<64>蜓<EFBFBD>粹俈<E7B2B9>怠<EFBFBD>嚗?
|
||
- ModSecurity嚗Áeb摨𠉛鍂<F0A0899B>脩<EFBFBD>憓辷<E68693>
|
||
- Cloudflare嚗㇃DN + DDoS<6F>脫擪嚗?
|
||
|
||
# <20>烐綉撌亙<E6928C>
|
||
<EFBFBD>刻<EFBFBD>嚗?
|
||
- New Relic APM
|
||
- Datadog
|
||
- Prometheus + Grafana
|
||
```
|
||
|
||
---
|
||
|
||
## <20>閦 <20>函蔡<E587BD>寞<EFBFBD>撖寞<E69296>
|
||
|
||
### <20>寞<EFBFBD>1嚗鋽ocker摰孵膥<E5ADB5>函蔡嚗<E894A1><E59A97> <20>刻<EFBFBD><E588BB>其<EFBFBD>撘<EFBFBD><E69298>?瘚贝<E7989A>嚗?
|
||
|
||
#### 隡睃飵
|
||
|
||
```
|
||
<EFBFBD>?敹恍<E695B9>笔鍳<E7AC94>剁<EFBFBD>1撠𤩺𧒄<F0A4A9BA><F0A79284><EFBFBD><EFBFBD>琜<EFBFBD>
|
||
<EFBFBD>?<3F>臬<EFBFBD><E887AC>𠉛氖嚗<E6B096><E59A97>瘙⊥<E79899>銝餅㦤嚗?
|
||
<EFBFBD>?<3F>㮖<EFBFBD>餈<EFBFBD>宏嚗<E5AE8F>捆<EFBFBD>典虾蝘餅<E89D98>嚗?
|
||
<EFBFBD>?<3F><>𧋦蝞∠<E89D9E>嚗<EFBFBD><E59A97><EFBFBD>𤩺<EFBFBD>蝑橘<E89D91>
|
||
<EFBFBD>?<3F>㮖<EFBFBD><E3AE96><EFBFBD>瘥<EFBFBD><E798A5>撱綽<E692B1>瘚贝<E7989A><E8B49D><EFBFBD><EFBFBD>嚗?
|
||
```
|
||
|
||
#### 摰峕㟲Docker Compose<73>滨蔭
|
||
|
||
```yaml
|
||
# docker-compose.yml
|
||
version: '3.8'
|
||
|
||
services:
|
||
# MySQL<51>唳旿摨?
|
||
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嚗<6E>㺭<EFBFBD>桀<EFBFBD>蝞∠<E89D9E>嚗?
|
||
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皞𣂷誨<F0A382B7><E8AAA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>见𢆡閫<F0A286A1><E996AB><EFBFBD>唳迨<E594B3>桀<EFBFBD>嚗?
|
||
- ./redcap15.8.0:/var/www/html
|
||
# Apache<68>滨蔭
|
||
- ./apache/redcap.conf:/etc/apache2/sites-available/000-default.conf
|
||
# PHP<48>滨蔭
|
||
- ./php/php.ini:/usr/local/etc/php/php.ini
|
||
# 銝𠹺<E98A9D><F0A0B9BA><EFBFBD>辣摮睃<E691AE>
|
||
- 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
|
||
# 摰㕑<E691B0>PHP<48>拙<EFBFBD>
|
||
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:
|
||
```
|
||
|
||
#### <20>函蔡甇仿炊嚗㇄ocker<65>寞<EFBFBD>嚗?
|
||
|
||
```bash
|
||
# Step 1: <20>𥕦遣憿寧𤌍<E5AFA7>桀<EFBFBD>
|
||
mkdir redcap-docker && cd redcap-docker
|
||
|
||
# Step 2: 閫<><E996AB>REDCap皞鞟<E79A9E>
|
||
unzip redcap_v15.8.0.zip
|
||
# 敺堒<E695BA>: redcap15.8.0/ <20>桀<EFBFBD>
|
||
|
||
# Step 3: <20>𥕦遣docker-compose.yml
|
||
# 嚗<><E59A97>韐港<E99F90><E6B8AF>Y<EFBFBD><EFBCB9>滨蔭嚗?
|
||
|
||
# Step 4: <20>𥕦遣Apache<68>滨蔭
|
||
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: <20>𥕦遣PHP<48>滨蔭
|
||
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: <20>臬𢆡摰孵膥
|
||
docker-compose up -d
|
||
|
||
# Step 7: 璉<><E79289>亙捆<E4BA99>函𠶖<E587BD>?
|
||
docker-compose ps
|
||
# 摨磰砲<E7A3B0>见<EFBFBD>3銝芸捆<E88AB8>刻<EFBFBD>銵䔶葉
|
||
|
||
# Step 8: 霈輸䔮REDCap摰㕑<E691B0><E39591>穃紡
|
||
# <20>枏<EFBFBD>瘚讛<E7989A><E8AE9B>剁<EFBFBD>http://localhost:8080/install.php
|
||
|
||
# Step 9: <20>厩<EFBFBD><E58EA9>穃紡摰峕<E691B0>摰㕑<E691B0>
|
||
# - <20>唳旿摨㯄<E691A8>蝵殷<E89DB5>
|
||
# Host: redcap-db
|
||
# Database: redcap
|
||
# Username: redcap_user
|
||
# Password: redcap_pass_456
|
||
|
||
# Step 10: 摰㕑<E691B0>摰峕<E691B0><E5B395>𠬍<EFBFBD>霈輸䔮REDCap
|
||
# http://localhost:8080/
|
||
```
|
||
|
||
#### Docker<65>寞<EFBFBD><E5AF9E><EFBFBD><EFBFBD><EFBFBD>?
|
||
|
||
```
|
||
<EFBFBD>𩤃<EFBFBD> <20>?: <20><>辣<EFBFBD><E8BEA3><EFBFBD><EFBFBD>桅<EFBFBD>
|
||
<EFBFBD><EFBFBD>𠶖: 銝𠹺<E98A9D><F0A0B9BA><EFBFBD>辣憭梯揖嚗峕<E59A97>瘜訫<E7989C><E8A8AB>占docs<63>桀<EFBFBD>
|
||
閫<EFBFBD><EFBFBD>:
|
||
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
|
||
|
||
<EFBFBD>𩤃<EFBFBD> <20>?: <20>唳旿摨栞<E691A8><E6A09E>亙仃韐?
|
||
<EFBFBD><EFBFBD>𠶖: REDCap<61>䭾<EFBFBD>餈墧𦻖MySQL
|
||
<EFBFBD>笔<EFBFBD>: 摰孵膥蝵𤑳<E89DB5><F0A491B3>芸停蝏?
|
||
閫<EFBFBD><EFBFBD>:
|
||
# 蝑匧<E89D91>MySQL摰<4C><E691B0><EFBFBD>臬𢆡嚗?0蝘𡜐<E89D98>
|
||
docker-compose logs redcap-db
|
||
# <20>见<EFBFBD> "ready for connections" <20>𤾸<EFBFBD>霈輸䔮install.php
|
||
|
||
<EFBFBD>𩤃<EFBFBD> <20>?: PHP<48>拙<EFBFBD>蝻箏仃
|
||
<EFBFBD><EFBFBD>𠶖: <20>鞟內蝻箏<E89DBB>GD摨瓐<E691A8><E79390>IP摨?
|
||
閫<EFBFBD><EFBFBD>:
|
||
# 餈𥕦<E9A488>摰孵膥摰㕑<E691B0>
|
||
docker exec -it redcap-apache bash
|
||
docker-php-ext-install gd zip mysqli
|
||
service apache2 reload
|
||
|
||
<EFBFBD>𩤃<EFBFBD> <20>?: <20>扯<EFBFBD><E689AF>桅<EFBFBD>
|
||
<EFBFBD><EFBFBD>𠶖: 憿菟𢒰<E88F9F>㰘蝸<E3B098>g<EFBFBD>Docker on Windows/Mac嚗?
|
||
<EFBFBD>笔<EFBFBD>: <20><>辣I/O<>扯<EFBFBD>撌?
|
||
閫<EFBFBD><EFBFBD>:
|
||
# 雿輻鍂<E8BCBB>賢<EFBFBD><E8B3A2>瑁<EFBFBD>屸<EFBFBD>蝏穃<E89D8F><E7A983><EFBFBD>蝸
|
||
volumes:
|
||
- redcap-code:/var/www/html # <20>賢<EFBFBD><E8B3A2>瘀<EFBFBD>敹恬<E695B9>
|
||
# 銝滩<E98A9D>: - ./redcap:/var/www/html # 蝏穃<E89D8F><E7A983><EFBFBD>蝸嚗<E89DB8><E59A97>嚗?
|
||
```
|
||
|
||
---
|
||
|
||
### <20>寞<EFBFBD>2嚗𡁏<E59A97><F0A1818F>券<EFBFBD>蝵莎<E89DB5><E88E8E>煺漣<E785BA>臬<EFBFBD><E887AC>刻<EFBFBD>嚗?
|
||
|
||
#### Ubuntu 22.04 LTS<54>函蔡<E587BD>𡁏𧋦
|
||
|
||
```bash
|
||
#!/bin/bash
|
||
# REDCap<61>煺漣<E785BA>臬<EFBFBD><E887AC>芸𢆡<E88AB8>㚚<EFBFBD>蝵脰<E89DB5><E884B0>?
|
||
# <20><>鍂鈭𠬍<E988AD>Ubuntu 22.04 LTS
|
||
|
||
set -e # <20><><EFBFBD><EFBFBD>躰秤蝡见朖<E8A781><E69C96><EFBFBD>?
|
||
|
||
echo "========================================"
|
||
echo "REDCap 15.8.0 <20>芸𢆡<E88AB8>㚚<EFBFBD>蝵脰<E89DB5><E884B0>?
|
||
echo "========================================"
|
||
|
||
# ========== 1. 蝟餌<E89D9F><E9A48C>湔鰵 ==========
|
||
echo "[Step 1] <20>湔鰵蝟餌<E89D9F>..."
|
||
apt update && apt upgrade -y
|
||
|
||
# ========== 2. 摰㕑<E691B0>Apache ==========
|
||
echo "[Step 2] 摰㕑<E691B0>Apache 2.4..."
|
||
apt install -y apache2
|
||
a2enmod rewrite ssl headers
|
||
systemctl enable apache2
|
||
systemctl start apache2
|
||
|
||
# ========== 3. 摰㕑<E691B0>PHP 8.1 ==========
|
||
echo "[Step 3] 摰㕑<E691B0>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
|
||
|
||
# <20>滨蔭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. 摰㕑<E691B0>MySQL 8.0 ==========
|
||
echo "[Step 4] 摰㕑<E691B0>MySQL 8.0..."
|
||
apt install -y mysql-server mysql-client
|
||
|
||
# <20>臬𢆡MySQL
|
||
systemctl enable mysql
|
||
systemctl start mysql
|
||
|
||
# 摰匧<E691B0><E58CA7>惩𤐄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;"
|
||
|
||
# <20>𥕦遣REDCap<61>唳旿摨枏<E691A8><E69E8F>冽<EFBFBD>
|
||
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 "<EFBFBD>唳旿摨枏<EFBFBD><EFBFBD><EFBFBD><EFBFBD>霂瑚<EFBFBD>摮矋<EFBFBD>嚗?{REDCAP_DB_PASS}"
|
||
|
||
# ========== 5. <20>函蔡REDCap隞<70><E99A9E> ==========
|
||
echo "[Step 5] <20>函蔡REDCap隞<70><E99A9E>..."
|
||
|
||
# 銝𠹺<E98A9D>redcap15.8.0.zip<69>?/tmp/
|
||
# <20>见𢆡<E8A781>㚚<EFBFBD>朞<EFBFBD>SCP銝𠹺<E98A9D>
|
||
# 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
|
||
|
||
# <20>𥕦遣蝚血噡<E8A180>暹𦻖嚗<F0A6BB96>䲮靘輻<E99D98><E8BCBB>砍<EFBFBD><E7A08D>g<EFBFBD>
|
||
ln -s redcap_v15.8.0 redcap
|
||
|
||
# 霈曄蔭<E69B84><E894AD><EFBFBD>
|
||
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. <20>滨蔭Apache<68>𡁏<EFBFBD>銝餅㦤 ==========
|
||
echo "[Step 6] <20>滨蔭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>
|
||
|
||
# 摰匧<E691B0>憭?
|
||
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
|
||
|
||
# <20>舐鍂蝡嗵<E89DA1>
|
||
a2ensite redcap.conf
|
||
a2dissite 000-default.conf
|
||
systemctl reload apache2
|
||
|
||
# ========== 7. <20>滨蔭<E6BBA8>脩<EFBFBD>憓?==========
|
||
echo "[Step 7] <20>滨蔭<E6BBA8>脩<EFBFBD>憓?.."
|
||
ufw allow 22/tcp # SSH
|
||
ufw allow 80/tcp # HTTP
|
||
ufw allow 443/tcp # HTTPS
|
||
ufw --force enable
|
||
|
||
# ========== 8. 摰㕑<E691B0>Let's Encrypt SSL霂<4C>髡 ==========
|
||
echo "[Step 8] 摰㕑<E691B0>SSL霂<4C>髡..."
|
||
apt install -y certbot python3-certbot-apache
|
||
|
||
# <20>芸𢆡<E88AB8>瑕<EFBFBD>霂<EFBFBD>髡嚗<E9ABA1><E59A97>閬<EFBFBD><E996AC><EFBFBD>滚歇閫<E6AD87><E996AB><EFBFBD>唳迨<E594B3>滚𦛚<E6BB9A>剁<EFBFBD>
|
||
# certbot --apache -d redcap.yourdomain.com --non-interactive --agree-tos --email admin@yourdomain.com
|
||
|
||
# ========== 9. <20>滨蔭Cron隞餃𦛚 ==========
|
||
echo "[Step 9] <20>滨蔭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. 摰峕<E691B0> ==========
|
||
echo "========================================"
|
||
echo "<EFBFBD>?REDCap<61>函蔡摰峕<E691B0>嚗?
|
||
echo "========================================"
|
||
echo ""
|
||
echo "<22><> 銝衤<E98A9D>甇伐<E79487>"
|
||
echo "1. 霈輸䔮嚗冴ttp://your-server-ip/install.php"
|
||
echo "2. <20>厩<EFBFBD><E58EA9>穃紡摰峕<E691B0>摰㕑<E691B0>"
|
||
echo "3. <20>唳旿摨㯄<E691A8>蝵殷<E89DB5>"
|
||
echo " Host: localhost"
|
||
echo " Database: redcap"
|
||
echo " Username: redcap_user"
|
||
echo " Password: ${REDCAP_DB_PASS}"
|
||
echo ""
|
||
echo "<EFBFBD>𩤃<EFBFBD> 霂瑕𦛚敹<F0A69B9A><E695B9>摮䀹㺭<E480B9>桀<EFBFBD>撖<EFBFBD><E69296>嚗?
|
||
```
|
||
|
||
#### <20>见𢆡<E8A781>函蔡<E587BD><E894A1><EFBFBD><EFBFBD>?
|
||
|
||
```
|
||
<EFBFBD>𩤃<EFBFBD> <20>?: SELinux<75>餅迫嚗㇃entOS/RHEL嚗?
|
||
<EFBFBD><EFBFBD>𠶖: Permission denied<65>躰秤
|
||
閫<EFBFBD><EFBFBD>:
|
||
setenforce 0
|
||
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
|
||
|
||
<EFBFBD>𩤃<EFBFBD> <20>?: <20><>辣銝𠹺<E98A9D>憭梯揖
|
||
<EFBFBD><EFBFBD>𠶖: edocs<63>桀<EFBFBD><E6A180>惩<EFBFBD><E683A9><EFBFBD><EFBFBD>
|
||
閫<EFBFBD><EFBFBD>:
|
||
chown -R www-data:www-data /var/www/html/redcap/edocs
|
||
chmod -R 777 /var/www/html/redcap/edocs
|
||
|
||
<EFBFBD>𩤃<EFBFBD> <20>?: Cron隞餃𦛚銝齿<E98A9D>銵?
|
||
<EFBFBD><EFBFBD>𠶖: 霈∪<E99C88>隞餃𦛚<E9A483><F0A69B9A><EFBFBD>隞嗡<E99A9E><E597A1>煾<EFBFBD>?
|
||
閫<EFBFBD><EFBFBD>:
|
||
# 璉<><E79289>卉ron<6F>亙<EFBFBD>
|
||
tail -f /var/log/syslog | grep CRON
|
||
# <20>见𢆡瘚贝<E7989A>cron
|
||
sudo -u www-data php /var/www/html/redcap/cron.php
|
||
|
||
<EFBFBD>𩤃<EFBFBD> <20>?: <20>唳旿摨栞<E691A8><E6A09E>亙仃韐?
|
||
<EFBFBD><EFBFBD>𠶖: Can't connect to MySQL
|
||
閫<EFBFBD><EFBFBD>:
|
||
# 璉<><E79289>仗ySQL<51>臬炏餈鞱<E9A488>
|
||
systemctl status mysql
|
||
# 瘚贝<E7989A>餈墧𦻖
|
||
mysql -uredcap_user -p redcap
|
||
|
||
<EFBFBD>𩤃<EFBFBD> <20>?: <20>桐辣<E6A190>煾<EFBFBD><E785BE>仃韐?
|
||
<EFBFBD><EFBFBD>𠶖: 靚<>䰻<EFBFBD><E4B0BB>霂瑟<E99C82>瘜訫<E7989C><E8A8AB>?
|
||
<EFBFBD>笔<EFBFBD>: <20>芷<EFBFBD>蝵娟MTP
|
||
閫<EFBFBD><EFBFBD>:
|
||
# <20>沖EDCap<61>批<EFBFBD>銝剖<E98A9D><E58996>滨蔭SMTP
|
||
# <20>碶蝙<E7A2B6>沒endGrid/Amazon SES
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> <20>函蔡憭齿<E686AD>摨西<E691A8>隡?
|
||
|
||
### 憭齿<E686AD>摨行<E691A8><E8A18C><EFBFBD><EFBFBD>1-5<><35><EFBFBD>
|
||
|
||
| <20>航<EFBFBD> | 憭齿<E686AD>摨?| <20>園𡢿 | 撣貉<E692A3><E8B289>桅<EFBFBD> | <20>曄<EFBFBD> |
|
||
|------|--------|------|----------|------|
|
||
| **<EFBFBD>瑕<EFBFBD>REDCap霈詨虾** | <20>椬 2/5 | 1-4<>?| 摰⊥鸌<E28AA5>?| 瘜訫𦛚瘚<F0A69B9A><E7989A> |
|
||
| **<EFBFBD>滚𦛚<EFBFBD>典<EFBFBD>憭?* | <20>叚 1/5 | 1撠𤩺𧒄 | 鈭穃<E988AD><E7A983><EFBFBD><EFBFBD>㗇𥋘 | <20>?|
|
||
| **LAMP<4D>臬<EFBFBD><E887AC>剖遣** | <20>椬 2/5 | 2-4撠𤩺𧒄 | PHP<48><50>𧋦<EFBFBD>澆捆 | 靘肽<E99D98>摰㕑<E691B0> |
|
||
| **REDCap摰㕑<E691B0>** | <20>椬 2/5 | 1-2撠𤩺𧒄 | <20>唳旿摨㯄<E691A8>蝵?| <20><>辣<EFBFBD><E8BEA3><EFBFBD> |
|
||
| **SMTP<54>滨蔭** | <20>椬 3/5 | 1-3撠𤩺𧒄 | <20>桐辣鋡急<E98BA1> | <20>滚<EFBFBD><E6BB9A>暸<EFBFBD>隞?|
|
||
| **SSL霂<4C>髡** | <20>叚 1/5 | 30<33><30><EFBFBD> | <20>笔<EFBFBD>閫<EFBFBD><E996AB> | <20>?|
|
||
| **摰匧<E691B0><E58CA7>惩𤐄** | <20>𣞁 4/5 | 1-2憭?| 閫<><E996AB><EFBFBD>滨蔭 | <20>脩<EFBFBD>憓?WAF |
|
||
| **<EFBFBD>扯<EFBFBD>隡睃<EFBFBD>** | <20>𣞁 4/5 | 1-2憭?| <20>X䰻霂?| MySQL靚<4C><E99D9A> |
|
||
| **憭<>遢蝑𣇉裦** | <20>椬 2/5 | 2撠𤩺𧒄 | 摮睃<E691AE>蝛粹𡢿 | <20>芸𢆡<E88AB8>?|
|
||
| **<EFBFBD>烐綉<EFBFBD>𡃏郎** | <20>椬 3/5 | 4撠𤩺𧒄 | <20><><EFBFBD><EFBFBD>㗇𥋘 | 撌亙<E6928C><E4BA99><EFBFBD><EFBFBD> |
|
||
|
||
### <20>颱<EFBFBD>霂<EFBFBD>摯
|
||
|
||
```
|
||
<EFBFBD>函蔡憭齿<EFBFBD>摨佗<EFBFBD>3.5/5嚗<35>葉蝑匧<E89D91>擃矋<E69383>
|
||
|
||
<EFBFBD>笔<EFBFBD>嚗?
|
||
<EFBFBD>?隡睃飵嚗?
|
||
- REDCap摰㕑<E691B0><E39591>穃紡<E7A983>见末嚗<E69CAB>㦛敶W<E695B6><EFBCB7>屸𢒰嚗?
|
||
- 摰䀹䲮<E480B9><E4B2AE>﹝霂衣<E99C82>
|
||
- 蝷曉躹<E69B89>舀<EFBFBD>瘣餉<E798A3>
|
||
|
||
<EFBFBD>𩤃<EFBFBD> <20>烐<EFBFBD>嚗?
|
||
- LAMP<4D>臬<EFBFBD>靘肽<E99D98>憭𡄯<E686AD>10+銝枉HP<48>拙<EFBFBD>嚗?
|
||
- <20><>辣<EFBFBD><E8BEA3><EFBFBD><EFBFBD>枏枂<E69E8F>?
|
||
- SMTP<54>滨蔭蝜<E894AD><E89D9C>
|
||
- 摰匧<E691B0><E58CA7>惩𤐄<E683A9><F0A49084>閬<EFBFBD><E996AC>銝𡁶䰻霂?
|
||
|
||
撖寞<EFBFBD>嚗?
|
||
- 瘥犔ordPress蝞<73><E89D9E>𤏪<EFBFBD>靘肽<E99D98><E882BD>游<EFBFBD>嚗?
|
||
- 瘥渊oodle憭齿<E686AD>嚗<EFBFBD><E59A97>蝵格凒憭𡄯<E686AD>
|
||
- 瘥磰䌊<E7A3B0>𠉛頂蝏毺<E89D8F><E6AFBA>𤏪<EFBFBD><F0A48FAA>唳<EFBFBD>頧臭辣嚗?
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> 敹恍<E695B9>笔<EFBFBD>憪页<E686AA>3蝘漤<E89D98>蝵脰楝敺?
|
||
|
||
### 頝臬<E9A09D>1嚗鋽ocker敹恍<E695B9>煺<EFBFBD>撉䕘<E69289>1撠𤩺𧒄嚗?
|
||
|
||
```bash
|
||
# <20><>鍂鈭𠬍<E988AD>撘<EFBFBD><E69298>烐<EFBFBD>霂𨰻<E99C82><F0A8B0BB>xternal Module撘<65><E69298>?
|
||
|
||
# 1. <20>钅<EFBFBD><E99285>滨蔭隞枏<E99A9E>嚗<EFBFBD><E59A97>霈曆<E99C88>撌脣<E6928C>撱綽<E692B1>
|
||
git clone https://github.com/your-org/redcap-docker.git
|
||
cd redcap-docker
|
||
|
||
# 2. <20>曄蔭REDCap皞鞟<E79A9E>
|
||
# 撠<>edcap_v15.8.0.zip閫<70><E996AB><EFBFBD>啣<EFBFBD><E595A3>滨𤌍敶?
|
||
|
||
# 3. 銝<><E98A9D>桀鍳<E6A180>?
|
||
docker-compose up -d
|
||
|
||
# 4. 霈輸䔮
|
||
http://localhost:8080/install.php
|
||
|
||
# 5. 摰峕<E691B0>摰㕑<E691B0><E39591>穃紡
|
||
# <20>唳旿摨㯄<E691A8>蝵殷<E89DB5>
|
||
# Host: redcap-db
|
||
# Database: redcap
|
||
# Username: redcap_user
|
||
# Password: redcap_pass_456
|
||
|
||
<EFBFBD>?隡睃飵嚗𡁜翰<F0A1819C>麄<EFBFBD><E9BA84>虾<EFBFBD>滚<EFBFBD><E6BB9A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瘥?
|
||
<EFBFBD>?<3F><>飵嚗帋<E59A97><E5B88B><EFBFBD><EFBFBD><EFBFBD>煺漣<E785BA>臬<EFBFBD>
|
||
```
|
||
|
||
### 頝臬<E9A09D>2嚗帋<E59A97><E5B88B>滚𦛚<E6BB9A>冽<EFBFBD><E586BD><EFBFBD><EFBFBD>蝵莎<E89DB5>1憭抬<E686AD>
|
||
|
||
```bash
|
||
# <20><>鍂鈭𠬍<E988AD>撠誩<E692A0><E8AAA9>a<EFBFBD><EFBD81><EFBFBD><EFBFBD><EFBFBD>匧<EFBFBD><E58CA7>函蔡摰X<E691B0>
|
||
|
||
# 1. 韐凋僭鈭烐<E988AD><E78390>∪膥
|
||
<EFBFBD>輸<EFBFBD>鈭䫿CS嚗?<3F>?GB嚗𪄇buntu 22.04
|
||
|
||
# 2. <20>扯<EFBFBD><E689AF>芸𢆡<E88AB8>𤥁<EFBFBD><F0A4A581>?
|
||
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. 摰峕<E691B0>摰㕑<E691B0>
|
||
|
||
# 5. <20>滨蔭<E6BBA8>笔<EFBFBD><E7AC94>玺SL
|
||
certbot --apache -d redcap.yourdomain.com
|
||
|
||
<EFBFBD>?隡睃飵嚗𡁶迅摰𠾼<E691B0><F0A0BEBC><EFBFBD><EFBFBD>具<EFBFBD><E585B7>虾<EFBFBD>拙<EFBFBD>
|
||
<EFBFBD>?<3F><>飵嚗𡁻<E59A97>閬<EFBFBD><E996AC>蝏渡䰻霂?
|
||
```
|
||
|
||
### 頝臬<E9A09D>3嚗𡁏<E59A97>蝞⊥<E89D9E><E28AA5>∴<EFBFBD>0憭抬<E686AD>
|
||
|
||
```bash
|
||
# <20><>鍂鈭𠬍<E988AD>敹恍<E695B9>煺<EFBFBD><E785BA>卝<EFBFBD><E58D9D><EFBFBD>餈鞟輕<E99E9F>a<EFBFBD>
|
||
|
||
# REDCap摰䀹䲮霈方<E99C88><E696B9>条恣<E69DA1>滚𦛚<E6BB9A><F0A69B9A><EFBFBD>
|
||
1. Vanderbilt CTSA
|
||
https://redcap.vanderbilt.edu/consortium/pricing.php
|
||
隞瑟聢嚗?5K-15K/撟?
|
||
|
||
2. Academic Health Center REDCap Hosting
|
||
https://ahcredcap.org/
|
||
隞瑟聢嚗?3K-10K/撟?
|
||
|
||
3. 蝚砌<E89D9A><E7A08C>寞<EFBFBD>蝞∴<E89D9E><E288B4><EFBFBD>撉諹<E69289><E8ABB9><EFBFBD><EFBFBD><EFBFBD>改<EFBFBD>
|
||
Veeva Vault EDC
|
||
Medidata Rave
|
||
|
||
<EFBFBD>?隡睃飵嚗𡁻妟餈鞟輕<E99E9F><E8BC95><EFBFBD><EFBFBD>舐鍂<E88890><E98D82><EFBFBD>銝𡁏𣈲<F0A1818F>?
|
||
<EFBFBD>?<3F><>飵嚗朞晶<E69C9E>券<EFBFBD><E588B8><EFBFBD><EFBFBD><EFBFBD>嗅<EFBFBD><E59785>?
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> <20>煺漣<E785BA>臬<EFBFBD>摰匧<E691B0><E58CA7>惩𤐄皜<F0A49084><E79A9C>
|
||
|
||
### 敹<><E695B9>憿對<E686BF>P0嚗?
|
||
|
||
```bash
|
||
# 1. 靽格㺿暺䁅恕撖<E68195><E69296>
|
||
# 摰㕑<E691B0>摰峕<E691B0><E5B395>𡒊<EFBFBD><F0A1928A>喃耨<E59683>對<EFBFBD>
|
||
# - REDCap admin<69>冽<EFBFBD>撖<EFBFBD><E69296>
|
||
# - MySQL root撖<74><E69296>
|
||
# - <20>滢<EFBFBD>蝟餌<E89D9F>root撖<74><E69296>
|
||
|
||
# 2. <20>舐鍂HTTPS嚗<53>撩<EFBFBD>塚<EFBFBD>
|
||
certbot --apache -d redcap.yourdomain.com
|
||
# <20>沖EDCap<61>批<EFBFBD>銝剖<E98A9D>嚗锭ystem Configuration
|
||
# Force HTTPS: Yes
|
||
|
||
# 3. <20>滨蔭<E6BBA8>脩<EFBFBD>憓?
|
||
ufw enable
|
||
ufw allow 22/tcp # SSH嚗<48><E59A97><EFBFBD>貂P<E8B282>港蔔嚗?
|
||
ufw allow 80/tcp
|
||
ufw allow 443/tcp
|
||
ufw deny 3306/tcp # 蝳<>迫憭㚚<E686AD>霈輸䔮MySQL
|
||
|
||
# 4. <20>喲𡡒銝滚<E98A9D>閬<EFBFBD><E996AC><EFBFBD>滚𦛚
|
||
systemctl disable bluetooth
|
||
systemctl disable cups
|
||
|
||
# 5. 摰𡁏<E691B0><F0A1818F>湔鰵
|
||
apt update && apt upgrade -y
|
||
# 霈曄蔭<E69B84>芸𢆡摰匧<E691B0><E58CA7>湔鰵
|
||
apt install unattended-upgrades
|
||
dpkg-reconfigure -plow unattended-upgrades
|
||
```
|
||
|
||
### <20>刻<EFBFBD>憿對<E686BF>P1嚗?
|
||
|
||
```bash
|
||
# 6. <20>滨蔭Web摨𠉛鍂<F0A0899B>脩<EFBFBD>憓辷<E68693>WAF嚗?
|
||
# ModSecurity + OWASP<53>詨<EFBFBD>閫<EFBFBD><E996AB><EFBFBD>?
|
||
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. <20>舐鍂摰∟恣<E2889F>亙<EFBFBD>
|
||
# <20>沖EDCap<61>批<EFBFBD>銝剖<E98A9D><E58996>舐鍂嚗?
|
||
# - Login auditing
|
||
# - Page view logging
|
||
# - Data export logging
|
||
|
||
# 8. <20>滨蔭憭<E894AD>遢嚗<E981A2><E59A97><EFBFBD>亥䌊<E4BAA5>剁<EFBFBD>
|
||
cat > /etc/cron.daily/redcap-backup << 'EOF'
|
||
#!/bin/bash
|
||
# <20>唳旿摨枏<E691A8>隞?
|
||
mysqldump -uredcap_user -p'PASSWORD' redcap | gzip > /backup/redcap_$(date +\%Y\%m\%d).sql.gz
|
||
|
||
# <20><>辣憭<E8BEA3>遢
|
||
tar -czf /backup/redcap_files_$(date +\%Y\%m\%d).tar.gz /var/www/html/redcap/edocs
|
||
|
||
# <20>𣳇膄30憭拙<E686AD><E68B99><EFBFBD><EFBFBD>隞?
|
||
find /backup -type f -mtime +30 -delete
|
||
EOF
|
||
chmod +x /etc/cron.daily/redcap-backup
|
||
|
||
# 9. <20>滨蔭fail2ban嚗<6E>俈<EFBFBD>游<EFBFBD><E6B8B8>渲圾嚗?
|
||
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. <20>滨蔭<E6BBA8>烐綉<E78390>𡃏郎
|
||
# <20>刻<EFBFBD>撌亙<E6928C>嚗?
|
||
# - Uptime<6D>烐綉嚗䦧ptimeRobot嚗<74><E59A97>韐對<E99F90>
|
||
# - <20>亙<EFBFBD><E4BA99>烐綉嚗匁ogtail嚗<6C>燵<EFBFBD>䔶<EFBFBD>SLS嚗?
|
||
# - APM<50>烐綉嚗鐭ew Relic嚗<63><E59A97>韐對<E99F90>
|
||
```
|
||
|
||
---
|
||
|
||
## <20>兛 <20>鞉𧋦隡啁<E99AA1>嚗<EFBFBD><E59A97><EFBFBD>笔𦶢<E7AC94>冽<EFBFBD>嚗?
|
||
|
||
### <20>箸艶1嚗𡁜<E59A97><F0A1819C>烐<EFBFBD>霂閧㴓憓?
|
||
|
||
```
|
||
<EFBFBD>嘥<EFBFBD><EFBFBD>鞉𧋦嚗?
|
||
- <20>滚𦛚<E6BB9A>剁<EFBFBD>$0嚗<30>𧋦<EFBFBD>啁㩞<E59581>𡢅<EFBFBD>
|
||
- REDCap霈詨虾嚗?0嚗<30>歇<EFBFBD>瑕<EFBFBD>嚗?
|
||
- SSL霂<4C>髡嚗?0嚗<30>䌊蝑曉<E89D91>霂<EFBFBD>髡嚗?
|
||
- 撘<><E69298>穃極<E7A983>瘀<EFBFBD>$0嚗<30><E59A97>皞琜<E79A9E>
|
||
|
||
<EFBFBD>餉恣嚗?0
|
||
```
|
||
|
||
### <20>箸艶2嚗𡁜<E59A97><F0A1819C>讠<EFBFBD>鈭抒㴓憓<E3B493><E68693>50<35>冽<EFBFBD>嚗?
|
||
|
||
```
|
||
<EFBFBD>嘥<EFBFBD><EFBFBD>鞉𧋦嚗<EFBFBD><EFBFBD>甈⊥<EFBFBD>改<EFBFBD>嚗?
|
||
- REDCap霈詨虾<E8A9A8>瑕<EFBFBD>嚗?0嚗<30><E59A97><EFBFBD><EFBFBD><EFBFBD><EFBFBD>矋<EFBFBD>
|
||
- 鈭烐<E988AD><E78390>∪膥韐凋僭嚗?0嚗<30><E59A97><EFBFBD><EFBFBD><EFBFBD>韐對<E99F90>
|
||
- SSL霂<4C>髡嚗?0嚗𡿨et's Encrypt嚗?
|
||
- <20>函蔡摰墧鴌嚗?2K嚗?憭拐犖<E68B90>𨥈<EFBFBD>
|
||
|
||
撟游漲餈鞱𨯫<EFBFBD>鞉𧋦嚗?
|
||
- 鈭烐<E988AD><E78390>∪膥嚗?600/撟湛<E6929F><E6B99B>輸<EFBFBD>鈭?<3F>?GB嚗?
|
||
- 撣血捐瘚<E68D90><E7989A>嚗?240/撟湛<E6929F>10Mbps嚗?
|
||
- 憭<>遢摮睃<E691AE>嚗?120/撟湛<E6929F>100GB OSS嚗?
|
||
- SMTP<54>滚𦛚嚗?0嚗𠄎endGrid<69>滩晶憸嘥漲嚗?
|
||
- <20>烐綉<E78390>𡃏郎嚗?0嚗㇎ptimeRobot<6F>滩晶嚗?
|
||
- 餈鞟輕鈭箏<E988AD>嚗?10K/撟湛<E6929F>0.2 FTE嚗?
|
||
|
||
5撟湔<EFBFBD>餅<EFBFBD><EFBFBD>穿<EFBFBD>$57K
|
||
```
|
||
|
||
### <20>箸艶3嚗帋<E59A97>銝𡁶漣<F0A181B6>臬<EFBFBD>嚗?00<30>冽<EFBFBD>嚗?
|
||
|
||
```
|
||
<EFBFBD>嘥<EFBFBD><EFBFBD>鞉𧋦嚗?
|
||
- <20>滚𦛚<E6BB9A>券<EFBFBD>蝢歹<E89DA2>$5K嚗<4B><E59A97>韐哨<E99F90>
|
||
- 銝㮖<E98A9D><E3AE96>滚𦛚嚗?10K嚗<4B>沲<EFBFBD><E6B2B2>挽霈?<3F>函蔡嚗?
|
||
- 摰匧<E691B0>摰∟恣嚗?5K嚗<4B>洵銝㗇䲮霂<E4B2AE>摯嚗?
|
||
|
||
撟游漲餈鞱𨯫<EFBFBD>鞉𧋦嚗?
|
||
- 鈭烐<E988AD><E78390>∪膥嚗?12K/撟湛<E6929F>4<EFBFBD>?6GB <20> 2嚗?
|
||
- <20>唳旿摨𣫮DS嚗?8K/撟湛<E6929F>擃睃虾<E79D83>函<EFBFBD>嚗?
|
||
- 韐蠘蝸<E8A098><E89DB8>﹛嚗?3K/撟?
|
||
- 撖寡情摮睃<E691AE>嚗?1K/撟?
|
||
- SMTP<54>滚𦛚嚗?1K/撟湛<E6929F>SendGrid銝㮖<E98A9D><E3AE96><EFBFBD><EFBFBD>
|
||
- <20>烐綉APM嚗?2K/撟湛<E6929F>New Relic嚗?
|
||
- 摰匧<E691B0><E58CA7>滚𦛚嚗?5K/撟湛<E6929F>WAF + DDoS嚗?
|
||
- 餈鞟輕鈭箏<E988AD>嚗?50K/撟湛<E6929F>1 FTE DevOps嚗?
|
||
- 撟游漲摰∟恣嚗?10K/撟湛<E6929F>HIPAA<41><41><EFBFBD>嚗?
|
||
|
||
5撟湔<EFBFBD>餅<EFBFBD><EFBFBD>穿<EFBFBD>$480K
|
||
```
|
||
|
||
---
|
||
|
||
## <20>㴓 撖寞<E69296>憿寧𤌍<E5AFA7><F0A48C8D>遣霈?
|
||
|
||
### 敶枏<E695B6><E69E8F>嗆挾撱箄悅嚗𡁜<E59A97>銝齿<E98A9D>亦<EFBFBD><E4BAA6>函蔡REDCap
|
||
|
||
```
|
||
<EFBFBD><EFBFBD>眏嚗?
|
||
1. <20>?<3F>典歇<E585B8>兴EDCap皞𣂷誨<F0A382B7><E8AAA8><EFBFBD>redcap15.8.0/嚗?
|
||
2. <20>?<3F>臭誑<E887AD>𠉛弦External Module撘<65><E69298>𡢅<EFBFBD><F0A1A285>𣳇<EFBFBD>餈鞱<E9A488><E99EB1>臬<EFBFBD>嚗?
|
||
3. <20>?<3F>臭誑<E887AD><E8AA91>粉API<50><49>﹝<EFBFBD><EFB99D>㺭<EFBFBD>桀<EFBFBD>Schema
|
||
4. <20>?蝑厩&摰朞<E691B0>撖寞𦻖<E5AF9E>嗅<EFBFBD><E59785>函蔡嚗<E894A1><E59A97><EFBFBD><EFBFBD><EFBFBD>皞琜<E79A9E>
|
||
|
||
<EFBFBD>圈𧫴畾萄虾隞亙<EFBFBD>嚗?
|
||
- <20>𠉛弦REDCap隞<70><E99A9E>蝏𤘪<E89D8F>
|
||
- 霈曇恣External Module<6C>嗆<EFBFBD>
|
||
- 蝻硋<E89DBB>config.json<6F>釶HP隞<50><E99A9E>嚗<EFBFBD>氖蝥選<E89DA5>
|
||
- <20><><EFBFBD><EFBFBD>唳旿頧祆揢<E7A586>餉<EFBFBD>
|
||
- 霈曇恣API<50><49><EFBFBD><EFBFBD>寞<EFBFBD>
|
||
```
|
||
|
||
### 雿閙𧒄<E99699>函蔡REDCap瘚贝<E7989A><E8B49D>臬<EFBFBD>嚗?
|
||
|
||
```
|
||
<EFBFBD>嗆㦤嚗?
|
||
- <20><>閬<EFBFBD><E996AC>霂𦭵xternal Module<6C>?
|
||
- <20><>閬<EFBFBD><E996AC>霂<EFBFBD>PI靚<49>鍂<EFBFBD>?
|
||
- <20><>閬<EFBFBD><E996AC>霂閙㺭<E99699>桀<EFBFBD>甇交𧒄
|
||
- <20><><EFBFBD>蝏坔恥<E59D94>瑟<EFBFBD>蝷箸𧒄
|
||
|
||
<EFBFBD>刻<EFBFBD><EFBFBD>寞<EFBFBD>嚗?
|
||
Docker<EFBFBD>函蔡嚗?撠𤩺𧒄敹恍<E695B9><E6818D>𨰹撱綽<E692B1>
|
||
|
||
<EFBFBD>賭誘嚗?
|
||
cd AIclinicalresearch/
|
||
mkdir redcap-dev
|
||
cd redcap-dev
|
||
# <20>𥕦遣docker-compose.yml
|
||
docker-compose up -d
|
||
# 摰峕<E691B0>嚗?
|
||
```
|
||
|
||
### <20>煺漣<E785BA>臬<EFBFBD><E887AC>函蔡蝑𣇉裦
|
||
|
||
```
|
||
<EFBFBD>寞<EFBFBD>A嚗𡁜恥<EFBFBD>瑁䌊撌梢<EFBFBD>蝵莎<EFBFBD><EFBFBD>刻<EFBFBD>嚗?
|
||
- 雿牐賑<E78990>芣<EFBFBD>靘𡻈xternal Module
|
||
- 摰X<E691B0><EFBCB8>刻䌊撌梁<E6928C>REDCap銝𠰴<E98A9D>鋆?
|
||
- 雿牐賑銝齿㗁<E9BDBF><E39781><EFBFBD>蝏渲提隞?
|
||
|
||
隡睃飵嚗?
|
||
<EFBFBD>?<3F>𣳇<EFBFBD>餈鞟輕<E99E9F>鞉𧋦
|
||
<EFBFBD>?<3F>唳旿<E594B3>典恥<E585B8>瑞㴓憓<E3B493><E68693><EFBFBD><EFBFBD><EFBFBD>嚗?
|
||
<EFBFBD>?<3F><><EFBFBD>璅∪<E79285>皜<EFBFBD>苊嚗<E88B8A><E59A97>隞園<E99A9E><E59C92>殷<EFBFBD>
|
||
|
||
<EFBFBD>寞<EFBFBD>B嚗帋<EFBFBD>隞祆<EFBFBD>靘𥟇<EFBFBD>蝞⊥<EFBFBD><EFBFBD>?
|
||
- <20>函蔡REDCap + 雿牐賑<E78990><E8B391>xternal Module
|
||
- <20>㗇<EFBFBD><E39787>嗉晶嚗𠄎aaS璅∪<E79285>嚗?
|
||
|
||
<EFBFBD><EFBFBD>飵嚗?
|
||
<EFBFBD>?餈鞟輕<E99E9F>鞉𧋦擃矋<E69383>$50K+/撟湛<E6929F>
|
||
<EFBFBD>?霈詨虾<E8A9A8><E899BE><EFBFBD>憌𡡞埯嚗<E59FAF><E59A97>銝舘<E98A9D>敺瑕嵗蝖株恕嚗?
|
||
<EFBFBD>?<3F>唳旿<E594B3><E697BF><EFBFBD>韐<EFBFBD>遙嚗𠃍IPAA嚗?
|
||
|
||
撱箄悅嚗?
|
||
<EFBFBD>㴓 隡睃<E99AA1><E79D83>刻<EFBFBD><E588BB>寞<EFBFBD>A嚗<41>恥<EFBFBD>瑁䌊撌梢<E6928C>蝵涮EDCap嚗?
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> <20>函蔡<E587BD><E894A1><EFBFBD><EFBFBD><EFBFBD>皞?
|
||
|
||
### 摰䀹䲮<E480B9><E4B2AE>﹝
|
||
|
||
```
|
||
1. REDCap摰㕑<E691B0><E39591><EFBFBD><EFBFBD>
|
||
/redcap15.8.0/Installation_Instructions.txt
|
||
|
||
2. REDCap<61><70><EFBFBD>航<EFBFBD>瘙?
|
||
https://projectredcap.org/software/requirements/
|
||
|
||
3. REDCap蝷曉躹霈箏<E99C88>
|
||
https://community.projectredcap.org/
|
||
|
||
4. External Module撘<65><E69298>烐<EFBFBD>獢?
|
||
/redcap_external_module_framework_docs_main/
|
||
```
|
||
|
||
### 蝚砌<E89D9A><E7A08C>寞<EFBFBD>蝔?
|
||
|
||
```
|
||
1. GitHub REDCap Docker
|
||
https://github.com/123andy/redcap-docker-compose
|
||
|
||
2. DigitalOcean REDCap<61>函蔡<E587BD>嗵<EFBFBD>
|
||
https://www.digitalocean.com/community/tutorials/how-to-install-redcap
|
||
|
||
3. YouTube閫<65><E996AB><EFBFBD>嗵<EFBFBD>
|
||
<20>𦦵揣嚗?REDCap installation tutorial"
|
||
```
|
||
|
||
---
|
||
|
||
## <20>𤁗 <20>餌<EFBFBD>銝舘<E98A9D><E88898>典遣霈?
|
||
|
||
### <20>䂿<EFBFBD><E482BF>函<EFBFBD><E587BD>桅<EFBFBD>
|
||
|
||
**Q1: 撖寞𦻖REDCap<61>漤<EFBFBD>閬<EFBFBD><E996AC>蝵脣<E89DB5>嚗?*
|
||
A: <20>?**<2A>舐<EFBFBD>**嚗屸<E59A97>閬<EFBFBD><E996AC>蝵涮EDCap<61>滚𦛚<E6BB9A>冽<EFBFBD><E586BD>賢<EFBFBD><E8B3A2>穃<EFBFBD>瘚贝<E7989A>撖寞𦻖<E5AF9E>蠘<EFBFBD><E8A098>?
|
||
|
||
**Q2: <20>函蔡憭齿<E686AD><E9BDBF>梹<EFBFBD>**
|
||
A: <20>椬 **銝剔<E98A9D>憭齿<E686AD>摨?*嚗?.5/5<><35><EFBFBD>
|
||
- Docker<65>寞<EFBFBD>嚗?-2撠𤩺𧒄嚗<F0A79284><E59A97><EFBFBD>𤏪<EFBFBD>
|
||
- <20>煺漣<E785BA>臬<EFBFBD>嚗?-2憭抬<E686AD>銝剔<E98A9D>嚗?
|
||
- 隡<><E99AA1>蝥改<E89DA5>3-5憭抬<E686AD>憭齿<E686AD>嚗?
|
||
|
||
**Q3: <20><>閬<EFBFBD><E996AC>銋<EFBFBD>辺隞塚<E99A9E>**
|
||
A:
|
||
1. <20><> REDCap霈詨虾嚗<E899BE><E59A97><EFBFBD>亥<EFBFBD><E4BAA5><EFBFBD><EFBFBD>
|
||
2. <20>𠒣 REDCap皞𣂷誨<F0A382B7><E8AAA8><EFBFBD>撌脫<E6928C><E884AB><EFBFBD><EFBFBD>
|
||
3. <20>棅儭?<3F>滚𦛚<E6BB9A>剁<EFBFBD>2<EFBFBD>?GB韏瘀<E99F8F>
|
||
4. <20>𩣪 SMTP<54>桐辣<E6A190>滚𦛚
|
||
|
||
**Q4: 頧舐′隞嗉<E99A9E>瘙<EFBFBD><E79899>**
|
||
A:
|
||
- CPU: 2<>?
|
||
- <20><><EFBFBD>: 8GB+
|
||
- 蝖祉<E89D96>: 100GB+ SSD
|
||
- 頧臭辣: LAMP<4D><50><EFBFBD>Linux + Apache + MySQL + PHP嚗?
|
||
|
||
### 蝡见朖銵<E69C96>𢆡
|
||
|
||
```
|
||
Step 1: <20>喳<EFBFBD><E596B3>函蔡<E587BD>寞<EFBFBD>
|
||
<20>鎿<EFBFBD> Docker嚗<72><E59A97><EFBFBD>烐<EFBFBD>霂𤏪<E99C82> <20>?1撠𤩺𧒄摰峕<E691B0>
|
||
<20>婙<EFBFBD> <20>见𢆡<E8A781>函蔡嚗<E894A1><E59A97>鈭抒㴓憓<E3B493><E68693> <20>?1憭拙<E686AD><E68B99>?
|
||
|
||
Step 2: <20><><EFBFBD><EFBFBD>臬<EFBFBD>
|
||
- 韐凋僭鈭烐<E988AD><E78390>∪膥嚗<E886A5><E59A97><EFBFBD><EFBFBD>嚗?
|
||
- 摰㕑<E691B0>Docker嚗<72><E59A97><EFBFBD><EFBFBD>嚗?
|
||
- 蝖株恕REDCap霈詨虾<E8A9A8>嗆<EFBFBD>?
|
||
|
||
Step 3: <20>扯<EFBFBD><E689AF>函蔡
|
||
- <20>厩<EFBFBD><E58EA9>祆<EFBFBD>獢<EFBFBD>郊撉斗<E69289>雿?
|
||
- 霈啣<E99C88><E595A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䔮憸?
|
||
- 摰峕<E691B0>摰㕑<E691B0><E39591>穃紡
|
||
|
||
Step 4: 撉諹<E69289>
|
||
- <20>𥕦遣瘚贝<E7989A>憿寧𤌍
|
||
- 敶訫<E695B6>瘚贝<E7989A><E8B49D>唳旿
|
||
- 瘚贝<E7989A>API靚<49>鍂
|
||
|
||
Step 5: 撘<>憪𢱑xternal Module撘<65><E69298>?
|
||
- <20>𥕦遣璅∪<E79285><E288AA>桀<EFBFBD>
|
||
- 蝻硋<E89DBB>config.json
|
||
- 瘚贝<E7989A>Hook<6F>蠘<EFBFBD>
|
||
```
|
||
|
||
---
|
||
|
||
**<EFBFBD><EFBFBD>﹝<EFBFBD><EFBFBD>𧋦**嚗鯝1.0
|
||
**<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD>?*嚗?025-12-30
|
||
**銝𧢲活<F0A7A2B2>湔鰵**嚗𡁻<E59A97>蝵脣<E89DB5><E884A3>𣂼<EFBFBD>銵亙<E98AB5>摰鮋<E691B0><E9AE8B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䔮憸?
|
||
|
||
---
|
||
|
||
**<EFBFBD><EFBFBD> <20><>閬<EFBFBD><E996AC>撣格<E692A3><E6A0BC>𥕦遣Docker<65>函蔡<E587BD>𡁏𧋦<F0A1818F>梹<EFBFBD><E6A2B9>𤥁<EFBFBD><F0A4A581><EFBFBD><EFBFBD>嗡<EFBFBD><E597A1>函蔡<E587BD>詨<EFBFBD><E8A9A8><EFBFBD>䔮憸矋<E686B8>**
|
||
|
||
|
||
|
||
|
||
|