discord-bot/docker-compose.yml
loki5512344 4cbbb36159
fix(lavalink): drop spotify-tokener, lavasrc uses client credentials
- spotify URL resolution was broken (500 NPE): preferPartnerApi +
  customTokenEndpoint depended on dead spotify-tokener (-32000)
- remove tokener service from compose, remove dead SPOTIFY_* env from
  bot container (bot code never used them)
- spotify metadata now resolves via standard client credentials,
  playback is mirrored to SoundCloud via scsearch providers (ISRC/QUERY)
2026-08-30 00:29:13 +02:00

61 lines
1.9 KiB
YAML

services:
lavalink:
image: ghcr.io/lavalink-devs/lavalink:4-alpine
container_name: loki-lavalink
restart: unless-stopped
ports:
- "127.0.0.1:2333:2333"
volumes:
- ./lavalink/application.yml:/opt/Lavalink/application.yml:ro
- ./lavalink/plugins/:/opt/Lavalink/plugins/
- lavalink-data:/opt/Lavalink/data
environment:
JAVA_OPTS: "-Xmx1G -Xms256M"
SPOTIFY_CLIENT_ID: ${SPOTIFY_CLIENT_ID}
SPOTIFY_CLIENT_SECRET: ${SPOTIFY_CLIENT_SECRET}
healthcheck:
test: ["CMD-SHELL", "wget -q -O /dev/null --header=Authorization:Hch4HiVCxkKs9JPiSnrt4Q http://localhost:2333/v4/info || exit 1"]
interval: 30s
timeout: 5s
retries: 3
start_period: 20s
bot:
build: .
container_name: loki-bot
restart: unless-stopped
depends_on:
lavalink:
condition: service_healthy
mem_limit: 1g
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
R34_API_KEY: ${R34_API_KEY}
R34_USER_ID: ${R34_USER_ID}
DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY}
AI_CHANNEL_ID: ${AI_CHANNEL_ID}
AI_CONTEXT_MSGS: ${AI_CONTEXT_MSGS:-10}
AI_MSG_LENGTH: ${AI_MSG_LENGTH:-300}
AI_CONTEXT_CHARS: ${AI_CONTEXT_CHARS:-3000}
AI_DOSSIER_MSGS: ${AI_DOSSIER_MSGS:-30}
AI_DEBATE_CHANNEL_ID: ${AI_DEBATE_CHANNEL_ID}
volumes:
- bot-data:/app/data
- ./data/prompts:/app/prompts:ro
- ./data/knowledge:/app/knowledge:ro
volumes:
bot-data:
lavalink-data: