-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
150 lines (145 loc) · 5.61 KB
/
docker-compose.yml
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
name: jwizard
services:
jwizard-vault:
container_name: jwizard-vault
image: milosz08/vault-dev:latest
ports:
- '${JWIZARD_VAULT_PORT}:8200'
environment:
VAULT_AUTO_INIT_ROOT_TOKEN: ${JWIZARD_VAULT_ROOT_TOKEN}
VAULT_AUTO_INIT_KV_ENGINE: jwizard
# KV storages
KV_STORAGE_0: common
KV_STORAGE_1: core
KV_STORAGE_2: api
KV_STORAGE_3: core-instance-0 # 1 instance
KV_STORAGE_4: core-instance-1 # 2 instance
# KV secrets
V_MYSQL_HOST_0: localhost:${JWIZARD_MYSQL_PORT}
V_MYSQL_DB_NAME_0: ${JWIZARD_MYSQL_DB_NAME}
V_MYSQL_USERNAME_0: ${JWIZARD_MYSQL_USERNAME}
V_MYSQL_PASSWORD_0: ${JWIZARD_MYSQL_PASSWORD}
V_LAVA_NODE_1_1: ${JWIZARD_LAVA_NODE_TOKEN}::ws://localhost:${JWIZARD_LAVA_NODE_1_PORT}
V_LAVA_NODE_2_1: ${JWIZARD_LAVA_NODE_TOKEN}::ws://localhost:${JWIZARD_LAVA_NODE_2_PORT}
V_OIDC_APP_ID_2: ${JWIZARD_OIDC_APP_ID}
V_OIDC_SECRET_2: ${JWIZARD_OIDC_SECRET}
V_JDA_SECRET_3: ${JWIZARD_JDA_SECRET_1_INSTANCE}
V_JDA_PRIMARY_COLOR_3: ${JWIZARD_JDA_PRIMARY_COLOR_1_INSTANCE}
V_JDA_INSTANCE_PREFIX_3: ${JWIZARD_JDA_PREFIX_1_INSTANCE}
V_SERVER_PORT_3: ${JWIZARD_CORE_INSTANCE_1_PORT}
V_JDA_SECRET_4: ${JWIZARD_JDA_SECRET_2_INSTANCE}
V_JDA_INSTANCE_PREFIX_4: ${JWIZARD_JDA_PREFIX_2_INSTANCE}
V_JDA_PRIMARY_COLOR_4: ${JWIZARD_JDA_PRIMARY_COLOR_2_INSTANCE}
V_SERVER_PORT_4: ${JWIZARD_CORE_INSTANCE_2_PORT}
cap_add:
- IPC_LOCK
networks:
- jwizard-network
jwizard-mysql-db:
container_name: jwizard-mysql-db
image: mysql:8.0.32
ports:
- '${JWIZARD_MYSQL_PORT}:3306'
environment:
MYSQL_ROOT_PASSWORD: ${JWIZARD_MYSQL_PASSWORD}
MYSQL_DATABASE: ${JWIZARD_MYSQL_DB_NAME}
volumes:
- ./.volumes/mysql/mysql-volume:/var/lib/mysql
- ./.volumes/mysql/init:/docker-entrypoint-initdb.d
healthcheck:
test: "mysqladmin ping -u root -p${JWIZARD_MYSQL_PASSWORD}"
networks:
- jwizard-network
jwizard-lava-node-1:
container_name: jwizard-lava-node-1
image: ghcr.io/lavalink-devs/lavalink:latest
user: root
ports:
- '${JWIZARD_LAVA_NODE_1_PORT}:${JWIZARD_LAVA_NODE_1_PORT}'
expose:
- ${JWIZARD_LAVA_NODE_1_PORT}
environment:
_JAVA_OPTIONS: -Xmx2G
SERVER_PORT: ${JWIZARD_LAVA_NODE_1_PORT}
# plugins
LAVALINK_PLUGINS_0_DEPENDENCY: dev.lavalink.youtube:youtube-plugin:${JWIZARD_LAVA_YT_SOURCE_VERSION}
# server
LAVALINK_SERVER_PASSWORD: ${JWIZARD_LAVA_NODE_TOKEN}
LAVALINK_SERVER_SOURCES_YOUTUBE: false
# filters
LAVALINK_SERVER_FILTERS_VOLUME: true
LAVALINK_SERVER_BUFFER_DURATION_MS: 400
LAVALINK_SERVER_FRAME_BUFFER_DURATION_MS: 5000
LAVALINK_SERVER_OPUS_ENCODING_QUALITY: 10
LAVALINK_SERVER_RESAMPLING_QUALITY: MEDIUM
LAVALINK_SERVER_TRACK_STUCK_THRESHOLD_MS: 10000
LAVALINK_SERVER_USE_SEEK_GHOSTING: true
# logging
LOGGING_REQUEST_ENABLED: true
LOGGING_REQUEST_INCLUDE_CLIENT_INFO: true
LOGGING_REQUEST_INCLUDE_HEADERS: false
LOGGING_REQUEST_INCLUDE_QUERY_STRING: true
LOGGING_REQUEST_INCLUDE_PAYLOAD: true
LOGGING_REQUEST_MAX_PAYLOAD_LENGTH: 10000
# yt plugin
PLUGINS_YOUTUBE_ENABLED: true
PLUGINS_YOUTUBE_OAUTH_ENABLED: true
PLUGINS_YOUTUBE_OAUTH_REFRESH_TOKEN: ${JWIZARD_LAVA_NODE_1_YT_REFRESH_TOKEN}
PLUGINS_YOUTUBE_ALLOW_SEARCH: true
PLUGINS_YOUTUBE_ALLOW_DIRECT_VIDEO_IDS: true
PLUGINS_YOUTUBE_ALLOW_DIRECT_PLAYLIST_IDS: true
PLUGINS_YOUTUBE_CLIENTS_0: MUSIC
PLUGINS_YOUTUBE_CLIENTS_1: ANDROID_TESTSUITE
PLUGINS_YOUTUBE_CLIENTS_2: WEB
PLUGINS_YOUTUBE_CLIENTS_3: TVHTML5EMBEDDED
volumes:
- ./.volumes/lavalink/lavalink-1-volume/plugins:/opt/Lavalink/plugins/
networks:
- jwizard-network
jwizard-lava-node-2:
container_name: jwizard-lava-node-2
image: ghcr.io/lavalink-devs/lavalink:latest
user: root
ports:
- '${JWIZARD_LAVA_NODE_2_PORT}:${JWIZARD_LAVA_NODE_2_PORT}'
environment:
_JAVA_OPTIONS: -Xmx2G
SERVER_PORT: ${JWIZARD_LAVA_NODE_2_PORT}
# plugins
LAVALINK_PLUGINS_0_DEPENDENCY: dev.lavalink.youtube:youtube-plugin:${JWIZARD_LAVA_YT_SOURCE_VERSION}
# server
LAVALINK_SERVER_PASSWORD: ${JWIZARD_LAVA_NODE_TOKEN}
LAVALINK_SERVER_SOURCES_YOUTUBE: false
# filters
LAVALINK_SERVER_FILTERS_VOLUME: true
LAVALINK_SERVER_BUFFER_DURATION_MS: 400
LAVALINK_SERVER_FRAME_BUFFER_DURATION_MS: 5000
LAVALINK_SERVER_OPUS_ENCODING_QUALITY: 10
LAVALINK_SERVER_RESAMPLING_QUALITY: MEDIUM
LAVALINK_SERVER_TRACK_STUCK_THRESHOLD_MS: 10000
LAVALINK_SERVER_USE_SEEK_GHOSTING: true
# logging
LOGGING_REQUEST_ENABLED: true
LOGGING_REQUEST_INCLUDE_CLIENT_INFO: true
LOGGING_REQUEST_INCLUDE_HEADERS: false
LOGGING_REQUEST_INCLUDE_QUERY_STRING: true
LOGGING_REQUEST_INCLUDE_PAYLOAD: true
LOGGING_REQUEST_MAX_PAYLOAD_LENGTH: 10000
# yt plugin
PLUGINS_YOUTUBE_ENABLED: true
PLUGINS_YOUTUBE_OAUTH_ENABLED: true
PLUGINS_YOUTUBE_OAUTH_REFRESH_TOKEN: ${JWIZARD_LAVA_NODE_2_YT_REFRESH_TOKEN}
PLUGINS_YOUTUBE_ALLOW_SEARCH: true
PLUGINS_YOUTUBE_ALLOW_DIRECT_VIDEO_IDS: true
PLUGINS_YOUTUBE_ALLOW_DIRECT_PLAYLIST_IDS: true
PLUGINS_YOUTUBE_CLIENTS_0: MUSIC
PLUGINS_YOUTUBE_CLIENTS_1: ANDROID_TESTSUITE
PLUGINS_YOUTUBE_CLIENTS_2: WEB
PLUGINS_YOUTUBE_CLIENTS_3: TVHTML5EMBEDDED
volumes:
- ./.volumes/lavalink/lavalink-2-volume/plugins:/opt/Lavalink/plugins/
networks:
- jwizard-network
networks:
jwizard-network:
driver: bridge