No description
- Kotlin 99%
- Dockerfile 1%
| gradle/wrapper | ||
| src/main | ||
| .dockerignore | ||
| .gitignore | ||
| application.yml | ||
| build.gradle.kts | ||
| docker-compose.dev.yml | ||
| Dockerfile | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| README.md | ||
| settings.gradle.kts | ||
ANTHONUS-bot
Discord bot using Kotlin and Kord for a friend's Discord server.
Prerequisites
- Java 25
- Gradle
Installation and Startup
Development
ENV variables you'll have to set up :
token: Your discord bot token ENV variables you can set up but optional :lavakord_urllavakord_portlavakord_password
Default configuration for Lavalink is present in the application.yml file
Docker compose file for launching an instance of the bot and lavalink is in docker-compose.dev.yml
Production with Docker Compose
Docker compose file:
services:
tengoku-bot:
image: git.anthonus.fr/anthonus/tengoku-bot:latest
container_name: tengoku-bot
restart: unless-stopped
depends_on:
- lavalink
environment:
- token=<your_discord_bot_token>
- lavakord_url=lavalink
- lavakord_port=2281
- lavakord_password=youshallnotpass # PLEASE change that
volumes:
- ./logs/bot:/app/logs
- ./data.db:/app/data.db
lavalink:
image: ghcr.io/lavalink-devs/lavalink:4
container_name: lavalink
restart: unless-stopped
ports:
- "2281:2281"
volumes:
- ./application.yml:/opt/Lavalink/application.yml
- ./logs/lavalink:/opt/Lavalink/logs
Put this application.yml at the same level as your compose file :
server:
port: 2281
address: 0.0.0.0
lavalink:
plugins:
- dependency: "dev.lavalink.youtube:youtube-plugin:1.18.1"
repository: "https://maven.lavalink.dev/releases"
server:
password: "youshallnotpass" # Put the same password as the lavakord_password env variable
sources:
youtube: false
bandcamp: true
soundcloud: true
twitch: true
vimeo: true
http: true
local: false
bufferDurationMs: 400
frameBufferDurationMs: 5000
opusEncodingQuality: 10
resamplingQuality: HIGH
trackStuckThresholdMs: 10000
metrics:
prometheus:
enabled: false
logging:
file:
max-history: 30
max-size: 1GB
path: ./logs
level:
root: INFO
lavalink: INFO
License
This project is distributed under the GNU GPL v3.0 license.
See the LICENSE file for the full text.