-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathdocker-compose.yaml
233 lines (209 loc) · 7.76 KB
/
docker-compose.yaml
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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
services:
# This docker-compose file is provided as an example to run most elementary services
# You can add more services as you need them. For example, if you want to run a reverse proxy
# you can add it here and point it to the services you want to expose to the internet
# Main database to handle everything
# Container default port is 3306 if you need to expose it (you shouldn't)
# environment section is only needed on first ever start. After that it can
# be safely removed as the database already exists. Same applies to the first
# entry in the volumes section. It is only needed on first ever start to create the databases and
# grant the default user access to them.
database:
image: mariadb:latest
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password --binlog-expire-logs-seconds=86400
container_name: database
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: golbat
MYSQL_USER: dbuser
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
volumes:
- ./init:/docker-entrypoint-initdb.d
- ./mysql_data/mariadb.cnf:/etc/mysql/mariadb.cnf
- ./mysql_data:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro
# Reactmap - Map fronted
# Default container port 8080. We expose it through port 6001 but with a
# reverse proxy you can remove the ports section and give access to the
# internet through the reverse proxy (pointing directly to the container port)
reactmap:
image: ghcr.io/watwowmap/reactmap:latest
container_name: reactmap
command: sh -c "yarn start"
restart: unless-stopped
depends_on:
- database
volumes:
- ./reactmap/local.json:/home/node/server/src/configs/local.json
- ./reactmap/env:/home/node/.env
ports:
- 6001:8080
# Dragonite Scanner
# Default container port is 7272 which is not exposed. It is only used
# internally by other containers
dragonite:
image: ghcr.io/unownhash/dragonite-public:latest
#image: ghcr.io/unownhash/dragonite-public:testing
container_name: dragonite
restart: unless-stopped
depends_on:
- golbat
volumes:
- ./unown/dragonite_config.toml:/dragonite/config.toml
- ./unown/logs:/dragonite/logs
# Dragonite Admin UX
# Default container port is 7273 which can be exposed to 6002 (or not if
# you use a reverse proxy).
admin:
image: ghcr.io/unownhash/dragonite-public-admin:latest
container_name: admin
restart: unless-stopped
depends_on:
- dragonite
environment:
ADMIN_GENERAL_HOST: 0.0.0.0
ADMIN_GENERAL_PORT: 7273
ADMIN_GENERAL_USERNAME: admin
ADMIN_GENERAL_PASSWORD: ${DRAGONITE_PASSWORD}
ADMIN_DRAGONITE_API_ENDPOINT: http://dragonite:7272
ADMIN_DRAGONITE_API_SECRET: ${DRAGONITE_API_SECRET}
ADMIN_GOLBAT_API_ENDPOINT: http://golbat:9001
ADMIN_GOLBAT_API_SECRET: ${GOLBAT_API_SECRET}
ports:
- 6002:7273
# Golbat Data Parser
# Default ports are 9001 and 50001. There's no need to expose them
# as they are only used internally by other containers
golbat:
image: ghcr.io/unownhash/golbat:main
container_name: golbat
restart: unless-stopped
depends_on:
- database
volumes:
- ./unown/golbat_config.toml:/golbat/config.toml
- ./unown/golbat_cache:/golbat/cache
- ./unown/logs:/golbat/logs
# Rotom Device Manager
# Default container ports are 7070,7071,7072. We will only expose
# 7070 so aegis devices can connect to it and 7072 (port 6003) for the web interface if
# you want to access it directly. If you use a reverse proxy you can remove
# the second port.
rotom:
image: ghcr.io/unownhash/rotom:main
#image: ghcr.io/the-pokemod-group/rotom:main
container_name: rotom
restart: unless-stopped
volumes:
- ./unown/rotom_config.json:/rotom/config/local.json
- ./unown/logs:/rotom/logs
- ./unown/rotom_jobs:/rotom/jobs
ports:
- 7070:7070
- 6003:7072
# Koji Geofence and Map Management service
# Default container port 8080. As above services, remove the port section if you will
# use a reverse proxy. Exposed port is 6004
koji:
image: ghcr.io/turtiesocks/koji:main
container_name: koji
command: "koji"
restart: unless-stopped
depends_on:
- database
environment:
SCANNER_DB_URL: "mysql://dbuser:${MYSQL_PASSWORD}@database:3306/golbat"
KOJI_DB_URL: "mysql://dbuser:${MYSQL_PASSWORD}@database:3306/koji"
CONTROLLER_DB_URL: "mysql://dbuser:${MYSQL_PASSWORD}@database:3306/dragonite"
KOJI_SECRET: ${KOJI_SECRET}
ports:
- 6004:8080
# PhpMyAdmin to access all our databases through a web interface
# Default container port is 80. By default we expose it to 6005
# however, if you use a reverse proxy and want external access, you
# can remove the ports section to give access to the internet through
# the reverse proxy
pma:
image: phpmyadmin:latest
container_name: pma
restart: unless-stopped
depends_on:
- database
environment:
PMA_HOST: database
UPLOAD_LIMIT: 600M
ports:
- 6005:80
# VictoriaMetrics Agent to scrape data from all services and send them to victoria metrics
# default container port is 8429 but we don't need to expose it at all for a local setup
vmagent:
image: victoriametrics/vmagent
container_name: vmagent
restart: unless-stopped
working_dir: /vmagentdata
depends_on:
- victoriametrics
volumes:
- ./vmagent/data:/vmagentdata
- ./vmagent/prometheus.yml:/etc/prometheus/prometheus.yml
command:
- "--promscrape.config=/etc/prometheus/prometheus.yml"
- "--remoteWrite.url=http://victoriametrics:8428/api/v1/write"
# VictoriaMetrics package to store all statistical data that we collect and to be used as a source for Grafana
# default port is 8428 but we don't need to expose it.
victoriametrics:
image: victoriametrics/victoria-metrics
container_name: victoriametrics
restart: unless-stopped
depends_on:
- dragonite
- rotom
- golbat
volumes:
- ./victoriametrics/data:/storage
command:
- "--storageDataPath=/storage"
- "--httpListenAddr=:8428"
- "--maxLabelsPerTimeseries=30"
# Grafana Package for beautiful stats
# Default port of the container is 3000. We will expose it through port 6006 but it should be removed if you use a reverse proxy
# The default user and password are admin/admin. You should change them as soon as you log in.
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
user: "$UID:$GID"
depends_on:
- victoriametrics
volumes:
- ./grafana:/var/lib/grafana
- /etc/localtime:/etc/localtime:ro
ports:
- 6006:3000
# Xilriws Anti-Bot Bypass by the Unown Team.
# This Requires you enable `remote_auth_url` under [general] section in your `dragonite_config.toml`.
xilriws-load-balancer:
image: traefik:v2.11
container_name: xilriws
command: --api.insecure=true --providers.docker --providers.docker.exposedbydefault=false --entrypoints.def.address=:5090
ports:
- "5090:5090"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
xilriws-worker:
image: ghcr.io/unownhash/xilriws-public:main
restart: unless-stopped
expose:
- "5090"
volumes:
- ./unown/proxies.txt:/xilriws/proxies.txt
labels:
- traefik.http.routers.xilriws.rule=HostRegexp(`{catchall:.*}`)
- traefik.enable=true
deploy:
# You will need to increase this if you just starting using Unown stack and dragonite and have no refresh tokens. Read readme.
replicas: 1
networks:
mapping_network:
driver: bridge