Skip to content

Latest commit

 

History

History
103 lines (74 loc) · 3.78 KB

README.md

File metadata and controls

103 lines (74 loc) · 3.78 KB

Tux

A Discord bot for the All Things Linux Discord server

Warning

This bot is still a work in progress and issues are expected. If you self-host our bot please join our support server here for announcements and support.

About

Tux is an all-in-one Discord bot originally designed for the All Things Linux Discord server.

It is designed to provide a variety of features to the server, including moderation, support, utility, and various fun commands.

Tech Stack

  • Python 3.13+ alongside the discord.py library
  • Poetry for dependency management
  • Docker and Docker Compose for optional containerized environments
  • Strict typing with pyright and type hints
  • Type safe ORM using prisma
  • Linting and formatting via ruff
  • Custom CLI via click and poetry scripts
  • Rich logging with loguru
  • Exception handling with sentry-sdk
  • Request handling with httpx
  • Custom dynamic environment management with python-dotenv

Bot Features

  • Asynchronous codebase
  • Hybrid command system with both slash commands and traditional commands
  • Automatic cog loading system
  • Hot-reloading for local development changes
  • Branded embeds and messages
  • Robust error handling
  • Activity rotation
  • Custom help command
  • Configuration system (config/settings.yml.example)
  • Dynamic role-based (access level) permission system

Installation and Development

Prerequisites

Setup & Workflow

  1. Clone the repository:

    git clone https://github.com/allthingslinux/tux && cd tux
  2. Follow the Developer Guide:

    For detailed instructions on setting up:

    • your environment (local or Docker)
    • installing dependencies
    • configuring .env and settings.yml
    • managing the database
    • running the bot
    • using hot-reloading
    • linting/formatting
    • understanding the tux CLI commands

    Please refer to the DEVELOPER.md guide

    Any documentation found in the docs directory is currently outdated and will be updated soon.

License

This project is licensed under the GNU General Public License v3.0.

See LICENSE for details.

Metrics

Made with Repobeats.

Metrics

Contributors

Made with contrib.rocks.

Contributors