main
yml 149 lines 5.48 KB
Raw
1 version: "2"
2
3 services:
4 copilot-backend:
5 image: ghcr.io/socfortress/copilot-backend:latest
6 # Expose the Ports for Graylog Alerting and Docs
7 ports:
8 - "5000:5000"
9 volumes:
10 - ./data/copilot-backend-data/logs:/opt/logs
11 # Mount the copilot.db file to persist the database
12 - ./data/data:/opt/copilot/backend/data
13 env_file: .env
14 depends_on:
15 - copilot-mysql
16 restart: always
17
18 copilot-frontend:
19 image: ghcr.io/socfortress/copilot-frontend:latest
20 environment:
21 - SERVER_HOST=${SERVER_HOST:-localhost} # Set the domain name of your server
22 ports:
23 - "80:80"
24 - "443:443"
25 restart: always
26
27 # ! Optional Customer Portal Service ! #
28 # copilot-customer-portal:
29 # image: ghcr.io/socfortress/copilot-customer-portal:latest
30 # environment:
31 # - SERVER_HOST=${SERVER_HOST:-localhost} # Set the domain name of your server
32 # ports:
33 # - "8443:443"
34 # restart: always
35
36 copilot-mysql:
37 image: mysql:8.0.46-debian
38 environment:
39 MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
40 MYSQL_DATABASE: copilot
41 MYSQL_USER: ${MYSQL_USER}
42 MYSQL_PASSWORD: ${MYSQL_PASSWORD}
43 ports:
44 - "3306:3306"
45 volumes:
46 - mysql-data:/var/lib/mysql
47 restart: always
48
49 copilot-minio:
50 image: ghcr.io/socfortress/minio:release.2024-09-13t20-26-02z
51 environment:
52 MINIO_ROOT_USER: ${MINIO_ROOT_USER}
53 MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
54 ports:
55 - "9000:9000"
56 volumes:
57 - ./data/data/minio-data:/data
58 command: server /data --console-address ":9001"
59 restart: always
60
61 copilot-nuclei-module:
62 image: ghcr.io/socfortress/copilot-nuclei-module:latest
63 restart: always
64
65 copilot-mcp:
66 image: ghcr.io/socfortress/copilot-mcp:latest
67 volumes:
68 # Mount the Velociraptor config file from host into container
69 - ./data/copilot-mcp/api.config.yaml:/app/velociraptor-config.yaml:ro
70 environment:
71 # Core OpenAI Configuration
72 - OPENAI_API_KEY=${OPENAI_API_KEY}
73 - OPENAI_MODEL=${OPENAI_MODEL:-gpt-4o}
74
75 # Application Configuration
76 - APP_HOST=0.0.0.0
77 - APP_PORT=80
78 - LOG_LEVEL=${LOG_LEVEL:-INFO}
79
80 # MCP Server Process Management
81 - MCP_SERVER_ENABLED=${MCP_SERVER_ENABLED:-true}
82 - MCP_SERVER_HOST=0.0.0.0
83 - MCP_SERVER_PORT=9900
84
85 # External OpenSearch Configuration
86 - OPENSEARCH_URL=${OPENSEARCH_URL:-${WAZUH_INDEXER_URL}}
87 - OPENSEARCH_USERNAME=${OPENSEARCH_USERNAME:-${WAZUH_INDEXER_USERNAME}}
88 - OPENSEARCH_PASSWORD=${OPENSEARCH_PASSWORD:-${WAZUH_INDEXER_PASSWORD}}
89 - OPENSEARCH_SSL_VERIFY=${OPENSEARCH_SSL_VERIFY:-false}
90 - OPENSEARCH_SSL_SHOW_WARN=${OPENSEARCH_SSL_SHOW_WARN:-false}
91
92 # OpenSearch MCP Server Configuration
93 - MCP_OPENSEARCH_URL=http://copilot-mcp:9900/sse
94 - MCP_OPENSEARCH_AUTH_TOKEN=${MCP_OPENSEARCH_AUTH_TOKEN:-secret-token}
95
96 # External MySQL Configuration
97 - MYSQL_ENABLED=${MYSQL_ENABLED:-true}
98 - MYSQL_HOST=${MYSQL_HOST:-copilot-mysql}
99 - MYSQL_PORT=${MYSQL_PORT:-3306}
100 - MYSQL_USER=${MYSQL_USER}
101 - MYSQL_PASSWORD=${MYSQL_PASSWORD}
102 - MYSQL_DATABASE=${MYSQL_DATABASE:-copilot}
103
104 # MySQL MCP Server Configuration
105 - MCP_MYSQL_URL=http://copilot-mcp:9901/sse
106 - MCP_MYSQL_AUTH_TOKEN=${MCP_MYSQL_AUTH_TOKEN:-mysql-token}
107 - MCP_MYSQL_SERVER_ENABLED=${MCP_MYSQL_SERVER_ENABLED:-true}
108 - MCP_MYSQL_SERVER_HOST=0.0.0.0
109 - MCP_MYSQL_SERVER_PORT=9901
110
111 # External Wazuh Configuration
112 - WAZUH_PROD_URL=${WAZUH_PROD_URL:-${WAZUH_MANAGER_URL}}
113 - WAZUH_PROD_USERNAME=${WAZUH_PROD_USERNAME:-${WAZUH_MANAGER_USERNAME}}
114 - WAZUH_PROD_PASSWORD=${WAZUH_PROD_PASSWORD:-${WAZUH_MANAGER_PASSWORD}}
115 - WAZUH_PROD_SSL_VERIFY=${WAZUH_PROD_SSL_VERIFY:-false}
116 - WAZUH_PROD_TIMEOUT=${WAZUH_PROD_TIMEOUT:-30}
117
118 # Wazuh MCP Server Configuration
119 - MCP_WAZUH_URL=http://copilot-mcp:8000/sse
120 - MCP_WAZUH_AUTH_TOKEN=${MCP_WAZUH_AUTH_TOKEN:-wazuh-token}
121 - MCP_WAZUH_SERVER_ENABLED=${MCP_WAZUH_SERVER_ENABLED:-true}
122 - MCP_WAZUH_HOST=0.0.0.0
123 - MCP_WAZUH_PORT=8000
124
125 # External Velociraptor Configuration
126 - VELOCIRAPTOR_API_KEY=/app/velociraptor-config.yaml
127 - VELOCIRAPTOR_SSL_VERIFY=${VELOCIRAPTOR_SSL_VERIFY:-false}
128 - VELOCIRAPTOR_TIMEOUT=${VELOCIRAPTOR_TIMEOUT:-30}
129
130 # Velociraptor MCP Server Configuration
131 - MCP_VELOCIRAPTOR_URL=http://copilot-mcp:8001/sse
132 - MCP_VELOCIRAPTOR_AUTH_TOKEN=${MCP_VELOCIRAPTOR_AUTH_TOKEN:-velociraptor-token}
133 - MCP_VELOCIRAPTOR_SERVER_ENABLED=${MCP_VELOCIRAPTOR_SERVER_ENABLED:-true}
134 - MCP_VELOCIRAPTOR_HOST=0.0.0.0
135 - MCP_VELOCIRAPTOR_PORT=8001
136
137 depends_on:
138 - copilot-mysql
139 restart: always
140
141 volumes:
142 mysql-data:
143
144 networks:
145 default:
146 driver: bridge
147 # In case you need to set the MTU
148 #driver_opts:
149 # com.docker.network.driver.mtu: "1450"