Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Melendo/BotMeriendo/llms.txt

Use this file to discover all available pages before exploring further.

Running BotMeriendo directly with Python — without Docker — is the most convenient setup for active development and testing. You get a shorter feedback loop: edit a file, restart the process, and see the result immediately. Python 3.11 or newer is required, along with FFmpeg installed at the system level so the voice pipeline can encode audio.

Prerequisites

1

Python 3.11 or newer

Download and install Python from python.org or your system package manager. Verify the version with:
Check Python version
python --version
2

FFmpeg

FFmpeg must be available on your system PATH before you start the bot.
sudo apt install ffmpeg
3

A Discord bot token

Create a bot application at the Discord Developer Portal and copy the token. You will need it when configuring the .env file.

Setup and run

1

Clone the repository

Clone
git clone <url-del-repo>
cd botMeriendo
2

Create a virtual environment and activate it

Using a virtual environment keeps the project’s dependencies isolated from your system Python installation:
Create the environment
python -m venv venv
source venv/bin/activate
3

Install dependencies

With the virtual environment active, install all required Python packages:
Install
pip install -r requirements.txt
This installs discord.py[voice], yt-dlp, PyNaCl, and python-dotenv as declared in requirements.txt.
4

Create and configure .env

Copy the example file and fill in your values:
Create .env
cp .env.example .env
.env
TOKEN=tu_token_aqui_sin_comillas
TRGGKEY=!
  • TOKEN — your Discord bot token.
  • TRGGKEY — the command prefix character (defaults to !).
5

Run the bot

Start the bot from the project root:
Start
python -m src.main
You should see log output confirming each cog has loaded followed by the bot’s ready event.

Development tips

  • Source code lives in src/ — the bot is structured as a package with cogs (src/cogs/), utilities (src/utils/), and a central config module (src/config.py). Any change you make takes effect the next time you restart the process.
  • Logs go to two places at once — the logging setup in src/utils/logger.py writes to both bot.log and stdout simultaneously, so you can watch the terminal and also inspect the file after the fact.
  • The src/ volume mount in docker-compose.yml — if you switch to Docker, the compose file mounts ./src into the container at /app/src. This means you can edit source files on the host and restart the container (without a full rebuild) to pick up the changes.
A cookies.txt file must exist in the project root for yt-dlp to function correctly. If you do not have a populated cookies file, create an empty one before starting the bot:
Create empty cookies file
touch cookies.txt

Build docs developers (and LLMs) love