Reading the check results (π’/π‘/π΄)
Every time you upload code via ZIP or GitHub, Botxona runs an automatic check and shows a result for each item:
- π’ Green (pass) β all good, nothing to do.
- π‘ Yellow (warn) β the bot still starts, but something deserves attention.
- π΄ Red (fail) β a serious problem; the bot will not be built. Fix the problem and upload again.
If a result is yellow or red, an "AI fix prompt" button appears under the report β copy it and give it to ChatGPT/Claude/Gemini; they will explain the problem and return fixed code.
Archive check
Verifies that the ZIP file's size, file count and file types stay within the set limits. Red means the archive is too large or contains a forbidden file type (e.g. .exe).
When connecting via GitHub, this step is called "Fetching source code". Red means the repository was not found, is private, or the specified branch does not exist. Open the link in your browser to check, make the repository public, or upload the code as a ZIP. No AI prompt is needed here β the problem is the link, not the code.
Language detection
Detects whether the project is Python, Node.js or Go. Red means no requirements.txt (Python), package.json (Node.js) or go.mod (Go) was found at the archive root. Usually these files were left out of the archive or the ZIP was made from the wrong folder. See the guide on preparing the archive correctly.
1. Token only from BOT_TOKEN
Checks the code for a plain (hard-coded) token. If one is found β red, because it is a security risk. Fix: 6 rules β rule 1.
2. Telegram API connection
Always green β automatic. However the bot connects to Telegram (even to api.telegram.org with the library's default settings), requests go through the platform proxy, so there is nothing to configure. Details: 6 rules β rule 2.
3. Library versions
Checks that requirements.txt, package.json or go.mod (+ go.sum) exists and that versions are pinned. No file at all β red. Unversioned libraries β yellow. In Go, a missing go.sum is also yellow (the build runs go mod tidy itself, but it's better to include go.sum). Fix: 6 rules β rule 3.
4. Entry point
Determines which file to run (main.py, bot.py, the start script in package.json, in Go the root main package (main.go) or a single cmd/<name>/, or botxona.yaml). Several candidates found β yellow (the first one is used, but add a botxona.yaml to be explicit). Nothing found β red. Fix: botxona.yaml.
5. DATA_DIR
If the bot writes files, checks that it uses DATA_DIR. Using an external database (DATABASE_URL, etc.) also counts as "pass" (backups are then your responsibility). Writing straight to disk without DATA_DIR β yellow. Fix: 6 rules β rule 5.
6. .env.example
Checks that every environment variable the bot uses is documented in .env.example. If the file is missing or some variables are left out β yellow (the bot works, but the settings form in the dashboard may be incomplete; you can add the missing variables manually). Fix: 6 rules β rule 6.
Security scanner
The code is scanned for malicious patterns such as mining, reverse shells, obfuscated exec/eval and curl | sh. If anything like that is found β red, and the build stops (this rule is non-negotiable). Some harmless cases that still need attention (e.g. SMTP, port 25) are yellow. Full list: Security (technical).
Build
A Dockerfile is generated for the code automatically and the container is built. If the build fails (e.g. a library failed to install) β red, and the last log lines are shown in the report.
Smoke test
After a successful build, the bot runs in test mode for a few seconds (usually 30 seconds) to check that the container does not crash immediately and has enough memory. If a problem shows up at this stage, the bot does not go to production and the reason is shown.
Why does the smoke test matter?
Some errors only appear after startup (e.g. a broken import or an invalid token). The smoke test catches them before they reach real users.
Next step
If the result is yellow or red: copy the AI fix prompt from the report and give it to an AI, or fix the code by hand following the 6 rules and upload again. If everything is green: try out your bot, then proceed to payment.