The all-in-one open source Discord bot for Linux communities
Choose your path to get started with Tux:
Tux is a feature-rich Discord bot originally built for the All Things Linux community. It provides moderation tools, leveling systems, snippets, utilities, and fun commands - all in one package.
Key Features:
- Moderation - Comprehensive moderation tools with case management
- Leveling - XP and ranking system to reward active members
- Snippets - Quick text responses and custom commands
- Utilities - Server management and utility commands
- Fun - Entertainment commands and interactive features
- Plugin System - Extensible architecture for custom functionality
- Modern tech stack - Type-safe, async-first, powered by Python 3.13+ and discord.py
- Production-ready - Battle-tested in large communities with comprehensive error handling
- Developer-friendly - Clean architecture, extensive docs, and active development
- Free and open source - Free to use, modify, and contribute under GPL-3.0
| Component | Technology |
|---|---|
| Runtime | Python 3.13+ with discord.py |
| Package Manager | uv for fast dependency management |
| Database | PostgreSQL with SQLModel (SQLAlchemy + Pydantic) |
| Type Safety | basedpyright with strict type hints |
| Code Quality | ruff for linting and formatting |
| Testing | pytest with async support |
| CLI | typer with custom command scripts |
| Logging | loguru for structured logging |
| Monitoring | sentry-sdk for error tracking |
| HTTP Client | httpx for async requests |
| Configuration | pydantic-settings with multi-format support |
| Containers | Docker & Docker Compose |
Visit tux.atl.dev for complete documentation including:
- User Guide - Commands, features, and usage
- Admin Guide - Configuration and server setup
- Self-Hosting - Installation and deployment
- Developer Guide - Architecture and contributing
- API Reference - CLI tools and codebase reference
- FAQ - Common questions and answers
- Discord Server - Get help, report issues, and discuss features
- GitHub Issues - Bug reports and feature requests
Want to contribute? Assuming you have the basics like Docker and a Discord bot for testing, you can get started in minutes:
# For org members: Clone directly
git clone https://github.com/allthingslinux/tux.git && cd tux
# For external contributors: Fork on GitHub first, then:
git clone https://github.com/YOUR_USERNAME/tux.git && cd tux
git remote add upstream https://github.com/allthingslinux/tux.git
# Install dependencies
uv sync
# Install pre-commit hooks
uv run pre-commit install
git config blame.ignoreRevsFile .git-blame-ignore-revs
# Generate and edit configuration files
uv run config generate
cp .env.example .env && cp config/config.toml.example config/config.toml
# Setup database
uv run docker up -d tux-postgres
uv run db push
# Develop, run, lint, and test
git checkout -b feature/your-feature-name
# ... make changes ...
uv run tux start --debug
uv run dev all
git commit -m "feat(command): add new command"
# ... repeat until you are ready ...
git push origin feature/your-feature-nameDeveloper Resources:
| Getting Started | Development Workflow | Quality & Standards |
|---|---|---|
| Developer Setup | Git Best Practices | Testing Guide |
| First Contribution | Branch Naming | Code Review |
| Project Structure | Creating Commands | Error Handling |
Tux is free and open source software licensed under the GNU General Public License v3.0.
Founded by @kzndotsh • Maintained by the All Things Linux community
