Deploy your Discord bot in 5 minutes.
The canonical quickstart for Discord bot hosting on Tumobird. From empty repo to live bot in under five minutes, in any supported language.
Before you start
You need three things to deploy a Discord bot to Tumobird: a Discord bot token, a Git
repository containing your bot's source code, and a Tumobird account (free 14-day trial).
If you don't have a bot token yet, create one at discord.com/developers/applications — make a new application, add a Bot
user, and copy the token. Keep that token secret; anyone with it can control your bot.
Step 1 — Create your Tumobird account
Visit tumobird.com and click Deploy Bot. Sign in with GitHub
(preferred, enables auto-deploys) or with an email and password. Your 14-day Hobby-tier
trial starts immediately — no credit card required.
Step 2 — Connect a Git repository
After sign-in, pick New Deployment and select the Git repository containing your Discord bot. Tumobird requests minimal permissions (read-only access to the selected repo, plus a webhook for auto-deploys). If your bot isn't on GitHub, you can paste a public Git URL — GitLab, Bitbucket, and self-hosted Gitea all work.
Tumobird auto-detects your runtime by scanning for the following files, in order of priority:
package.json→ Node.js (or Bun ifbun.lockbis present)requirements.txt,pyproject.toml, orPipfile→ Pythongo.mod→ Gopom.xml,build.gradle, orbuild.gradle.kts→ JVMCargo.toml→ Rustdeno.json→ Deno
If your project uses a non-standard layout, drop a tumobird.toml in the repo
root to override detection:
runtime = "python-3.11"
start = "python -m mybot"
build = "pip install -r requirements.txt"
Step 3 — Add your bot token and environment variables
In the deployment dashboard, click Environment. Add your bot token:
DISCORD_TOKEN= your bot token from the Developer Portal
Add any other secrets your bot needs — database URLs, API keys, webhook URLs. Every value is encrypted with AES-256-GCM at rest and only decrypted inside the container at runtime. Secrets are never written to build logs or exposed in the UI after the first save.
Step 4 — Deploy
Click Deploy. Tumobird pulls your code, installs dependencies, builds a container, and starts your Discord bot. The first build takes 15–60 seconds depending on dependency size; subsequent deploys are usually 8–15 seconds thanks to layer caching. You'll see real-time logs stream as the build runs.
Once the container reports healthy (your bot has connected to the Discord gateway and started receiving heartbeats), the deployment status flips to Running. Your bot is now live in whichever Discord servers it was invited to.
Step 5 — Enable auto-deploys (optional)
By default, pushing to the main branch of your linked repo triggers a new
deployment. You can change this in Settings → Auto-Deploy:
- Branch — any branch name
- Path filter — only redeploy when files matching a glob change
- Pre-deploy command — run linters, tests, or database migrations
- Health check — require a custom HTTP endpoint to return 200 before marking deploy green
Viewing logs
Real-time log streams are available in the deployment dashboard under Logs. Stdout and stderr are captured. Logs are searchable for 7 days on Hobby, 30 days on Standard, and 90 days on Dedicated. You can also stream logs to your terminal:
tumobird logs --follow --deployment my-bot
Rolling back
Every deployment is retained as a rollback target. Open Deployments, find the version you want, and click Rollback. Rollback is near-instant (the previous container image is already cached on the host). You can also pin a specific deployment as the active version and disable auto-deploys while you investigate.
Custom domains and webhooks
Discord requires bots with interaction endpoints or OAuth callbacks to serve HTTPS on a
known URL. Every Tumobird deployment gets a *.tumobird.app subdomain with
automatic TLS via Let's Encrypt. On Standard and Dedicated plans you can add a custom
domain: point your DNS at Tumobird's edge, add the domain in Settings → Domains, and we'll provision and auto-renew the
certificate.
Troubleshooting a failed Discord bot deployment
Most first-deploy failures fall into four categories:
- Missing
DISCORD_TOKEN— set it in Environment, then redeploy. - Wrong start command — check your
package.jsonstartscript or add atumobird.tomlstartentry. - Intents mismatch — if your bot uses privileged intents (message content, members), enable them in the Discord Developer Portal before deploying.
- Dependency build failure — the build log will show the exact pip/npm/cargo error. Most commonly a pinned version that doesn't exist on the runtime's package index.
If none of those match your error, email [email protected] with the deployment ID. Support response times are 24 hours on Hobby, 4 hours on Dedicated.