flowchart LR
classDef PROD fill:#0f172a,stroke:#334155,color:#e2e8f0;
classDef TEST fill:#111827,stroke:#22c55e,color:#dcfce7;
subgraph P["PROD"]
P_N8N["n8n :5678"]:::PROD
P_RC["Rocket.Chat :3100"]:::PROD
P_TW["Twenty :3000 / DB :5433"]:::PROD
P_QD["Qdrant :6333"]:::PROD
end
subgraph T["TEST (izolowane)"]
T_N8N["n8n :5680\n~/.n8n-test/db.sqlite"]:::TEST
T_RC["Rocket.Chat :3101\nvol:test-mongodb-data"]:::TEST
T_TW["Twenty :3001 / DB :5434\nvol:test-db-data"]:::TEST
T_QD["Qdrant :6335\nvol:test-qdrant-data"]:::TEST
end
P_N8N <-->|webhooks| P_RC
P_N8N <-->|API| P_TW
P_N8N <-->|memory| P_QD
T_N8N <-->|webhooks| T_RC
T_N8N <-->|API| T_TW
T_N8N <-->|memory| T_QD
| Usługa |
PROD |
TEST |
| n8n |
:5678 |
:5680 |
| Rocket.Chat |
:3100 |
:3101 |
| Twenty CRM |
:3000 |
:3001 |
| Twenty DB |
:5433 |
:5434 |
| Qdrant |
:6333 |
:6335 |
- PROD:
ops/twenty-crm/docker-compose.yml, ops/rocket-chat/docker-compose.yml, ops/qdrant/docker-compose.yml
- TEST:
ops/twenty-crm/docker-compose.test.yml, ops/rocket-chat/docker-compose.test.yml, ops/qdrant/docker-compose.test.yml
- Skrypty:
tools/test-env-start.sh, tools/test-env-stop.sh, tools/test-env-seed.sh