1
Fork 0
mirror of https://github.com/allthingslinux/tux.git synced 2024-10-02 16:43:12 +00:00
tux/README.md
kzndotsh ad919afc14 feat(docs): add CLI.md, COG_STANDARDS.md, EMBED_STANDARDS.md to .archive directory
docs(CLI.md): provide instructions for installation, development, Docker, linting, formatting, and Git commands
docs(COG_STANDARDS.md): outline standards for creating or updating cogs for the Tux Discord bot
docs(EMBED_STANDARDS.md): establish standards and best practices for creating and utilizing Discord embeds

docs: add EMBED_USAGE.md, EVENT_STANDARDS.md, PROJECT_STRUCTURE.md to provide detailed guidelines and project structure information for contributors

feat(README.md): add dynamic permission system to feature list to reflect new functionality
docs(README.md): update installation steps to include running the bot
docs(PERMISSIONS.md): change permission level 0 from 'Everyone' to 'Member' for clarity
chore(docs/resources): remove unused image.png file from resources
2024-07-29 20:58:32 +00:00

3.6 KiB

Tux

A Discord bot for the All Things Linux Discord server

NOTE: This bot (without plenty of tweaking) is not ready for multi-server use, we recommend against using it until it is more complete

About

Tux is a Discord bot 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. The bot is written in Python using the discord.py library.

Tech Stack

  • Poetry for dependency management
  • Docker and Docker Compose for development and deployment
  • Strict typing with Pyright and type hints
  • Type safe ORM using Prisma
  • PostgreSQL database with Supabase
  • Linting and formatting via Ruff and Pre-commit
  • Justfile for easy CLI commands
  • Beautiful logging with Loguru
  • Exception handling with Sentry

Bot Features

  • Asynchronous codebase
  • Hybrid command system with both slash commands and traditional commands
  • Cog loading system with hot reloading
  • Branded embeds and messages
  • Robust error handling
  • Activity rotation
  • Custom help command
  • Configuration system
  • Dynamic permission system based on access levels

Installation

Prerequisites

Steps

  1. Clone the repository

    git clone https://github.com/allthingslinux/tux && cd tux
    
  2. Install the dependencies

    poetry install
    
  3. Activate the virtual environment

    poetry shell
    
  4. Install the pre-commit hooks

    pre-commit install
    
  5. Generate the prisma client

    prisma generate
    
  6. Copy the .env.example file to .env and fill in the required values

    cp .env.example .env
    
  7. Run the bot

    poetry run python tux/main.py
    
  8. Run the sync command in the server to sync the slash command tree.

    {prefix}dev sync <server id>
    

License

This project is licensed under the terms of the The GNU General Public License v3.0. See the LICENSE file for details.