-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
162 lines (150 loc) · 4.21 KB
/
docker-compose.yml
File metadata and controls
162 lines (150 loc) · 4.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# TODO: use merge, include, and override options https://docs.docker.com/compose/compose-file/13-merge/?
x-settings: &settings
# HIVE
CRYTON_HIVE_RABBIT_HOST: cryton-rabbit
CRYTON_HIVE_RABBIT_USERNAME: cryton
CRYTON_HIVE_RABBIT_PASSWORD: cryton
CRYTON_HIVE_DATABASE_HOST: cryton-pgbouncer
CRYTON_HIVE_DATABASE_NAME: cryton
CRYTON_HIVE_DATABASE_USERNAME: cryton
CRYTON_HIVE_DATABASE_PASSWORD: cryton
# WORKER / EMPIRE
CRYTON_WORKER_NAME: worker
CRYTON_WORKER_EMPIRE_USERNAME: cryton
CRYTON_WORKER_EMPIRE_PASSWORD: cryton
# DATABASE
POSTGRES_PASSWORD: cryton
POSTGRES_USER: cryton
POSTGRES_DB: cryton
POSTGRES_HOST_AUTH_METHOD: md5
# PGBOUNCER
POSTGRESQL_HOST: cryton-db
POSTGRESQL_USERNAME: cryton
POSTGRESQL_DATABASE: cryton
POSTGRESQL_PASSWORD: cryton
PGBOUNCER_DATABASE: cryton
PGBOUNCER_PORT: 5432
PGBOUNCER_MAX_CLIENT_CONN: 1000
PGBOUNCER_MIN_POOL_SIZE: 8
PGBOUNCER_POOL_MODE: transaction
# RABBIT
RABBITMQ_DEFAULT_USER: cryton
RABBITMQ_DEFAULT_PASS: cryton
# METASPLOIT
METASPLOIT_RPC_USERNAME: cryton
METASPLOIT_RPC_PASSWORD: cryton
METASPLOIT_DB_HOST: cryton-pgbouncer
METASPLOIT_DB_PORT: 5432
METASPLOIT_DB_NAME: cryton
METASPLOIT_DB_USERNAME: cryton
METASPLOIT_DB_PASSWORD: cryton
METASPLOIT_DB_PREPARED_STATEMENTS: false
METASPLOIT_DB_ADVISORY_LOCKS: false
services:
cryton_cli:
restart: always
image: registry.gitlab.ics.muni.cz:443/cryton/cryton/cli:3
container_name: cryton-cli
environment:
<<: *settings
network_mode: host
tty: true
cryton_worker:
restart: always
image: registry.gitlab.ics.muni.cz:443/cryton/cryton/worker:3
container_name: cryton-worker
environment:
<<: *settings
network_mode: host
cryton_hive:
restart: always
image: registry.gitlab.ics.muni.cz:443/cryton/cryton/hive:3
container_name: cryton-hive
environment:
<<: *settings
ports:
- "127.0.0.1:8000:80"
depends_on:
cryton_pgbouncer:
condition: service_started
cryton_rabbit:
condition: service_healthy
cryton_frontend:
restart: always
image: registry.gitlab.ics.muni.cz:443/cryton/cryton-frontend:3
container_name: cryton-frontend
ports:
- "127.0.0.1:8080:80"
cryton_api_proxy:
restart: always
image: registry.gitlab.ics.muni.cz:443/cryton/cryton/api-proxy:3
container_name: cryton-api-proxy
environment:
<<: *settings
network_mode: service:cryton_hive
depends_on:
cryton_hive:
condition: service_started
cryton_db:
restart: always
image: postgres:17
container_name: cryton-db
environment:
<<: *settings
volumes:
- cryton_db_data:/var/lib/postgresql/data
healthcheck:
test: /usr/bin/pg_isready -U $$POSTGRES_USER
interval: 20s
timeout: 10s
retries: 5
cryton_pgbouncer:
restart: always
image: bitnami/pgbouncer:1.24.0
container_name: cryton-pgbouncer
depends_on:
cryton_db:
condition: service_healthy
environment:
<<: *settings
cryton_rabbit:
restart: always
image: rabbitmq:4.0-management
container_name: cryton-rabbit
environment:
<<: *settings
ports:
- "5672:5672"
healthcheck:
test: rabbitmqctl eval '
{ true, rabbit_app_booted_and_running } = { rabbit:is_booted(node()), rabbit_app_booted_and_running },
{ [], no_alarms } = { rabbit:alarms(), no_alarms },
[] /= rabbit_networking:active_listeners(),
rabbitmq_node_is_healthy.
' || exit 1
interval: 20s
timeout: 10s
retries: 5
cryton_empire:
restart: always
image: bcsecurity/empire:v4.10.0
container_name: cryton-empire
environment:
<<: *settings
network_mode: host
stdin_open: true
entrypoint: []
command: bash -c 'sudo -E poetry run python empire.py server --username $$CRYTON_WORKER_EMPIRE_USERNAME --password $$CRYTON_WORKER_EMPIRE_PASSWORD'
cryton_msf:
restart: always
image: sadparad1se/metasploit-framework:rpc-6
container_name: cryton-msf
environment:
<<: *settings
network_mode: host
tty: true
depends_on:
cryton_pgbouncer:
condition: service_started
volumes:
cryton_db_data: