mirror of
https://github.com/allthingslinux/tux.git
synced 2024-10-02 16:43:12 +00:00
ad919afc14
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
3.6 KiB
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
- Python 3.12
- Poetry
- Optional: Docker
- Optional: Docker Compose
- Optional: Just
Steps
-
Clone the repository
git clone https://github.com/allthingslinux/tux && cd tux
-
Install the dependencies
poetry install
-
Activate the virtual environment
poetry shell
-
Install the pre-commit hooks
pre-commit install
-
Generate the prisma client
prisma generate
-
Copy the
.env.example
file to.env
and fill in the required valuescp .env.example .env
-
Run the bot
poetry run python tux/main.py
-
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.