No description
  • Kotlin 99%
  • Dockerfile 1%
Find a file
2026-07-24 19:26:26 +02:00
gradle/wrapper initial commit - no code 2026-04-12 10:02:08 +02:00
src/main Changed custom emoji ID 2026-07-24 19:26:26 +02:00
.dockerignore Changed docker behaviour 2026-07-24 15:33:37 +02:00
.gitignore Added bot ssettings Table, handling and also set-status command 2026-07-24 15:12:50 +02:00
application.yml Changed docker behaviour 2026-07-24 15:33:37 +02:00
build.gradle.kts Changed version to version.txt 2026-07-24 15:47:53 +02:00
docker-compose.dev.yml Added joining, user, message, greeting database managments and events 2026-07-24 19:09:39 +02:00
Dockerfile Changed docker behaviour 2026-07-24 15:33:37 +02:00
gradle.properties initial commit - no code 2026-04-12 10:02:08 +02:00
gradlew initial commit - no code 2026-04-12 10:02:08 +02:00
gradlew.bat initial commit - no code 2026-04-12 10:02:08 +02:00
LICENSE Setup for Kord rewrite 2026-07-24 13:51:21 +02:00
README.md Changed docker behaviour 2026-07-24 15:33:37 +02:00
settings.gradle.kts initial commit - no code 2026-04-12 10:02:08 +02:00

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_url
  • lavakord_port
  • lavakord_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.