mirror of
https://github.com/allthingslinux/tux.git
synced 2024-10-02 16:43:12 +00:00
Tux is an all in one bot for the All Things Linux discord server.
asynciodiscorddiscord-pydockerdotenvhttpxjustlinuxlogurumkdocs-materialmypypoetrypre-commitprismapyrightpythonrenovateruffsupabase
3fc6a5ee01
chore(justfile): add commands to serve and build docs using MkDocs feat(mkdocs.yml): add initial MkDocs configuration with Material theme chore(pyproject.toml): add mkdocs-material as a dependency for docs group |
||
---|---|---|
.archive | ||
.github | ||
assets | ||
config | ||
docs | ||
prisma | ||
tux | ||
.editorconfig | ||
.env.example | ||
.gitignore | ||
.mise.toml | ||
.pre-commit-config.yaml | ||
docker-compose.yml | ||
Dockerfile | ||
justfile | ||
LICENSE.md | ||
mkdocs.yml | ||
poetry.lock | ||
poetry.toml | ||
pyproject.toml | ||
README.md | ||
renovate.json |
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.