1
Fork 0
mirror of https://github.com/allthingslinux/tux.git synced 2024-10-03 00:53:12 +00:00
Tux is an all in one bot for the All Things Linux discord server.
Find a file
kzndotsh 36e8be37f0 refactor(git.py): replace custom permission check with discord.py's built-in role check for better maintainability and reliability
feat(git.py): allow more roles to create issues to increase user engagement and contribution
2024-07-31 16:50:23 +00:00
.archive feat(docs): add CLI.md, COG_STANDARDS.md, EMBED_STANDARDS.md to .archive directory 2024-07-29 20:58:32 +00:00
.github Delete .github/dependabot.yml 2024-06-21 12:15:50 -04:00
assets feat(pre-commit-config.yaml): update ruff-pre-commit version to v0.5.5 for latest features and bug fixes 2024-07-25 19:24:41 +00:00
config perm system part 1 2024-07-29 11:45:22 -05:00
docs feat(README.md): add dynamic role-based permission system to feature list 2024-07-31 06:06:14 +00:00
prisma refactor(schema.prisma): switch from DEV_DATABASE_URL to PROD_DATABASE_URL for production readiness 2024-07-31 07:16:59 +00:00
tux refactor(git.py): replace custom permission check with discord.py's built-in role check for better maintainability and reliability 2024-07-31 16:50:23 +00:00
.editorconfig feat: add .editorconfig for consistent coding style across different editors 2024-04-11 20:22:47 +00:00
.env.example chore(.env.example): restructure and clean up environment variables for better organization and clarity 2024-07-13 19:21:16 +00:00
.gitignore perm system part 1 2024-07-29 11:45:22 -05:00
.mise.toml feat: add .editorconfig for consistent coding style across different editors 2024-04-11 20:22:47 +00:00
.pre-commit-config.yaml feat(pre-commit-config.yaml): update ruff-pre-commit version to v0.5.5 for latest features and bug fixes 2024-07-25 19:24:41 +00:00
docker-compose.yml feat: add Dockerfile and docker-compose.yml for containerization 2024-06-11 05:18:25 +00:00
Dockerfile style(Dockerfile): add line breaks for better readability and maintainability 2024-07-02 21:09:07 +00:00
justfile feat(docs): add MkDocs documentation with initial pages 2024-07-31 01:38:07 +00:00
LICENSE.md Update LICENSE.md 2024-06-21 23:54:58 -04:00
mkdocs.yml feat(docs): add MkDocs documentation with initial pages 2024-07-31 01:38:07 +00:00
poetry.lock refactor(schema.prisma): switch from DEV_DATABASE_URL to PROD_DATABASE_URL for production readiness 2024-07-31 07:16:59 +00:00
poetry.toml feat(poetry.toml): add poetry.toml file to create virtual environments within the project directory 2024-07-02 19:19:07 +00:00
pyproject.toml feat(docs): add MkDocs documentation with initial pages 2024-07-31 01:38:07 +00:00
README.md feat(README.md): add dynamic role-based permission system to feature list 2024-07-31 06:06:14 +00:00
renovate.json Add renovate.json 2024-04-11 20:02:04 +00:00

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 role-based (access level) permission system

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. Copy the config/settings.json.example file to config/settings.json and fill in the required values

    cp config/settings.json.example config/settings.json
    
  8. Run the bot

    poetry run python tux/main.py
    
  9. 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.