Spiritual successors to DecimBOT and BasedSchizoBOT, this time developed as a community project in a monorepo.
- Šimek is the successor to BasedSchizoBOT (Šimek -> Schizo) (easy to remember by the S)
- Grossmann is the successor to DecimBOT
- Krampol is the successor to DecimAutomation
A schizo impersonation bot.
The funny one.
Spiritual successor of DecimBOT.
An automation bot for Discord.
This bot will be used to automate Šimek&Grossmann's tasks to reduce overhead in the messy script I wrote for him.
See discord setup to see which roles are needed for everything to work.
See configuration doc for some more notes.
We use uv for package and Python version management.
-
Install dependencies
-
uv sync --frozen --all-groups
this installs everything needed into the
.venvfolder -
-
Local run
- šimek
-
uv run src/šimek/main.py
-
- grossmann
-
uv run src/grossmann/main.py
-
- šimek
Make .env file following .env.sample and fill there the required variables.
See development.md for more details beyond this readme.
Docker images are automatically built and pushed to GitHub Container Registry (GHCR) on every push to main and on version tags.
# Pull the latest image
docker pull ghcr.io/itpsoft/discord-bots:latest
# Run Grossmann (default)
docker run -d --name grossmann --env-file .env ghcr.io/itpsoft/discord-bots:latest
# Run Šimek
docker run -d --name simek --env-file .env -e BOT_NAME=šimek ghcr.io/itpsoft/discord-bots:latest
# Run Krampol
docker run -d --name krampol --env-file .env -e BOT_NAME=krampol ghcr.io/itpsoft/discord-bots:latestUsing Docker Compose (recommended):
# Build the image
docker compose build
# Run specific bot(s)
docker compose up kouzelnici-grossmann # or simek, or krampol
docker compose up -d kouzelnici-grossmann # run in background
# Run all bots
docker compose up -d
# Stop bots
docker compose downUsing Docker directly:
docker build -t discord-bots .
docker run --env-file .env discord-botsdocker-compose.portainer.yaml contains the configuration for deploying the bot to Portainer, and it's automatically being pulled.
Currently deployed on bare metal (see historical deployment in src/krampol/systemd files/).
Run linting and formatting:
uv run poe format-codeor if you activated the .venv
poe format-coderun
uv run pytestor if you activated the .venv, just
pytestSee development.md for more information.
See the documentation.
- Environment locking after updating dependencies
-
uv lock
-
See troubleshooting.md for more information.