- Full refactoring: max 200 lines/file, max 3 files/dir, KISS/DRY/SOLID - Lavalink client 3.4.0 + LavaSrc plugin (Spotify, Apple Music, Deezer) - 3-bot architecture: main (!), music (q!), radio (r!) - Filters: bassboost, nightcore, vaporwave, equalizer - Slash commands for music (/play, /skip, etc.) - Persistent queue in SQLite, auto-leave timer - Radio manager with auto-reconnect - Custom welcome GIF greetings via nekos.life - JDA 5.6.1, gson 2.14, hikaricp 6.3, all deps updated - Fixed YouTube playback via ytmsearch (LavaSrc) - CI/CD: Docker publish + release workflows - SpotBugs: all real bugs fixed, ignoreFailures=false - Checkstyle: Google Style (adapted), 0 violations
44 lines
1.3 KiB
YAML
44 lines
1.3 KiB
YAML
services:
|
|
lavalink:
|
|
image: ghcr.io/lavalink-devs/lavalink:4-alpine
|
|
container_name: loki-lavalink
|
|
restart: unless-stopped
|
|
ports:
|
|
- "2333:2333"
|
|
volumes:
|
|
- ./lavalink/application.yml:/opt/Lavalink/application.yml:ro
|
|
- ./lavalink/plugins/:/opt/Lavalink/plugins/
|
|
- lavalink-data:/opt/Lavalink/data
|
|
environment:
|
|
JAVA_OPTS: "-Xmx256M -Xms64M"
|
|
SPOTIFY_CLIENT_ID: ${SPOTIFY_CLIENT_ID}
|
|
SPOTIFY_CLIENT_SECRET: ${SPOTIFY_CLIENT_SECRET}
|
|
|
|
bot:
|
|
build: .
|
|
container_name: loki-bot
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- lavalink
|
|
ports:
|
|
- "8712:8712"
|
|
environment:
|
|
DISCORD_BOT_TOKEN: ${DISCORD_BOT_TOKEN}
|
|
DISCORD_BOT_TOKEN_MUSIC: ${DISCORD_BOT_TOKEN_MUSIC}
|
|
DISCORD_BOT_TOKEN_RADIO: ${DISCORD_BOT_TOKEN_RADIO}
|
|
BOT_PREFIX: ${BOT_PREFIX:-!}
|
|
BOT_ACTIVITY: ${BOT_ACTIVITY:-Используй !help}
|
|
HEALTH_HTTP_PORT: ${HEALTH_HTTP_PORT:-8712}
|
|
SUPER_ADMIN_ID: ${SUPER_ADMIN_ID}
|
|
DB_PATH: /app/data/bot.db
|
|
LAVALINK_HOST: lavalink
|
|
LAVALINK_PORT: "2333"
|
|
LAVALINK_PASSWORD: Hch4HiVCxkKs9JPiSnrt4Q
|
|
SPOTIFY_CLIENT_ID: ${SPOTIFY_CLIENT_ID}
|
|
SPOTIFY_CLIENT_SECRET: ${SPOTIFY_CLIENT_SECRET}
|
|
volumes:
|
|
- bot-data:/app/data
|
|
|
|
volumes:
|
|
bot-data:
|
|
lavalink-data:
|