Skip to content

Your all-in-one Discord assistant for moderation, music & fun! A powerful and extensible Discord bot built with TypeScript, Node.js, discord.js, and discordx (ESM-ready).

License

Notifications You must be signed in to change notification settings

PoProstuWitold/Sayuna

Repository files navigation

Sayuna

"Your all-in-one Discord assistant for moderation, music & fun!"

A powerful and extensible Discord bot built with TypeScript, Node.js, discord.js, and discordx (ESM-ready).


Features

Core

  • Robust logging system
  • Global error handling
  • Simple setup with environment variables and Docker

Music

  • Many music sources via plugins
  • Realtime music dashboard

Moderation

  • Slash commands to manage users and channels
  • Kick, ban, mute and more

Fun

  • Memes, gifs and general fun commands

Developer Tools

  • Owner-only commands
  • Debugging options and developer logs

Docker Support

You can run Sayuna using the official Docker image.
All runtime options and environment variables are documented there.

services:
  sayuna:
    container_name: sayuna
    image: poprostuwitold/sayuna:latest
    stdin_open: true
    tty: true
    env_file:
     - .env
    # environment:
    #   - BOT_TOKEN=
    #   - DEV_GUILD_ID=
    #   - OWNER_ID=
    #   - BOT_ID='Sayuna'
    #   - BOT_PREFIX='$$'
    #   - ACTIVITY_NAME=''
    #   - ACTIVITY_TYPE=''
    #   - SPOTIFY_CLIENT_ID=''
    #   - SPOTIFY_CLIENT_SECRET=''
    restart: unless-stopped

Requirements

  • Node.js v22.17.1 (LTS, codename: "Jod")
  • ffmpeg installed and available in $PATH (download here)
  • Discord bot token & server

Or just use Docker for a simpler production setup.


Environment Configuration

Create a .env file in the root directory:

BOT_TOKEN=''

# Development (optional)
# you can provide more than one using syntax: 'guild_id1, guild_id2' 1242471380587646986
DEBUG_LOGS=false
DEV_GUILD_ID=''

# Owner commands, cleaner logs & legacy message commands (optional)
OWNER_ID=''
BOT_ID='Sayuna'
BOT_PREFIX='$$'

# Activity settings (optional)
ACTIVITY_NAME='Music'
ACTIVITY_TYPE=''

# Spotify API (optional)
# Spotify links will not work very well without these credentials
SPOTIFY_CLIENT_ID=''
SPOTIFY_CLIENT_SECRET=''

Usage

Install dependencies:

pnpm install

Run in development or production mode using npm scripts:

pnpm dev     # development mode
pnpm start   # production mode

To-Do / Progress

  • Logging system
  • Error handling
  • Slash commands
    • Owner
    • Moderation
    • General
      • Fun
      • Info
      • Music
        • Real-time music dashboard

License

MIT

About

Your all-in-one Discord assistant for moderation, music & fun! A powerful and extensible Discord bot built with TypeScript, Node.js, discord.js, and discordx (ESM-ready).

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published