The interface is functional with local demo data. Live hosting, provisioning and production security controls are not connected yet.
- A working Discord application and bot user
- A Python project using discord.py
- A requirements.txt committed or included in the ZIP
- No .env file containing a live token
1. Declare Python dependencies
Use requirements.txt for the initial Botkeep runtime. Pin a compatible range rather than depending on whatever happens to be newest when the bot is rebuilt.
discord.py>=2.4,<3.02. Use one explicit entry point
A simple main.py keeps detection and troubleshooting predictable. The production runtime selector will show the Python versions that are actually available.
import os
import discord
token = os.environ.get("DISCORD_TOKEN")
if not token:
raise RuntimeError("DISCORD_TOKEN is required")
class BotClient(discord.Client):
async def on_ready(self):
print(f"Connected as {self.user}")
client = BotClient(intents=discord.Intents.default())
client.run(token)3. Make the process container-friendly
- Use python main.py as a direct, non-interactive start command.
- Send diagnostic output to stdout and stderr.
- Do not depend on files outside the project root.
- Do not assume root access, system package installation or public ports.
4. Confirm the Botkeep settings
Choose Python, select the repository or ZIP, confirm python main.py and add DISCORD_TOKEN as a secret. If a dependency requires a native system library, verify that it is supported before launch.