What a bot needs from a host
Five things, and here is how each one maps to a Hostim feature.
Runs 24/7
The container runs continuously. There is no sleep mode and no scale-to-zero, so the bot is connected to Discord from the moment it starts until you stop it.
Restarts when it crashes
If the bot process exits, Hostim starts it again. You do not need a watchdog or a systemd unit.
Keeps the token secret
The Discord token goes in an environment variable, not in the image or the repository. You can change it without rebuilding.
Keeps data across restarts
Attach a volume for a SQLite database or a JSON file, and the data survives a redeploy or a crash. Write files inside the volume's mount path.
Shows logs
The Logs tab streams everything the bot prints, so you can see why it disconnected or which command it failed on.
How to host a Discord bot on Hostim
A bot is a container with no public port. These are the steps in the dashboard.
- Put a Dockerfile in the repo. Hostim builds from a Dockerfile, so the repo needs one. A short Python bot:The same for a Node.js bot:
Dockerfile (discord.py)
FROM python:3.12-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY bot.py . CMD ["python", "bot.py"]See deploying from Git for the Dockerfile path and build context rules.Dockerfile (discord.js)
FROM node:20-slim WORKDIR /app COPY package*.json ./ RUN npm ci --omit=dev COPY index.js . CMD ["node", "index.js"] - Create a project. A project holds the bot, its databases and its volumes.
- Add an app from Git or from a Docker image. From Git, Hostim builds the image for you. From a registry, point it at a public or private image. See deploying from Docker.
- Under HTTP Service, choose No HTTP. A bot only makes outgoing connections to Discord, so it does not need a public port or a domain. No HTTP is the right choice. Note that a health check path needs HTTP, so a No HTTP app has no health check path — that is expected for a bot. See advanced app settings.
- Add DISCORD_TOKEN as an environment variable. Put the token in the Envs tab, not in the code. See environment variables.
- Attach a volume if the bot writes files. A SQLite file or a JSON store must live inside the volume's mount path or it is lost on the next deploy. See volumes.
- Deploy. The container starts and connects to Discord.
- Read the logs. Open the Logs tab to watch the bot start and to debug any error. See logs.
Telegram bots
A Telegram bot runs the same way, with one extra decision. If the bot reads updates by long polling, it only makes outgoing connections, so choose No HTTP and give it no port, exactly like the Discord bot.
If the bot uses webhook mode, Telegram must reach it, so it needs a public HTTPS URL. Choose Public website and Hostim gives the app an HTTPS domain with a certificate already in place. Point the webhook at that URL.
Free bot hosting vs paid
Hostim is not free. The cheapest app plan is €2.50 a month for one shared core and a 1 GB RAM limit. New accounts get a 5-day trial with no credit card, then it is €2.50 a month.
Free bot hosts are not the same thing. Many cap RAM, sleep the bot or restart it on a timer, or ask you to renew every few days. A bot that sleeps cannot hold a connection. A €2.50 a month container does not sleep: it runs until you stop it.
If a bot is idle most of the time, that flat price is the thing you are paying for — a container that is always there when an event arrives.
When Hostim is not the right choice
- If you only want a free host for a small hobby bot, a free host may be enough. Hostim is not free after the trial.
- Hostim needs a Dockerfile or an image. There is no one-click "upload your .py" today.
- There is one region, in the EU. If your bot must run in another continent, this is not it.
In the EU, on purpose
Hostim runs in German data centers under EU jurisdiction, with no US parent company and no CLOUD Act exposure.
Every project includes a free Postgres (256 MB), MySQL (256 MB), Redis (128 MB) and a 1 GB volume, in the same place as the bot.
Discord bot hosting FAQ
Is there free Discord bot hosting on Hostim?
No. Hostim is not free. New accounts get a 5-day trial with no credit card required, which is enough to deploy the bot and check that it stays online. After the trial the cheapest app plan is €2.50 per month for one shared core and a 1 GB RAM limit, billed hourly in EUR excluding VAT.
Does my bot need a port?
No. A Discord bot only makes outgoing connections to Discord, so it does not need a public port or a domain. Under HTTP Service choose No HTTP. The exception is a Telegram bot in webhook mode, which needs a public HTTPS URL; choose Public website for that and Hostim gives the app a domain.
How do I keep my bot online 24/7?
Run it as a container that does not sleep. Hostim has no sleep mode and no scale-to-zero, so the bot stays connected continuously. If the bot process exits, Hostim starts it again, so you do not need a watchdog process.
Can I host a Telegram bot?
Yes, the same as a Discord bot. A long-polling Telegram bot needs no port, so choose No HTTP. A webhook-mode bot must be reachable by Telegram over HTTPS, so choose Public website and point the webhook at the HTTPS domain Hostim provides.
Where do I put my bot token?
In an environment variable, never in the code or the image. Add DISCORD_TOKEN (or TELEGRAM_BOT_TOKEN) in the Envs tab of the app. That keeps the token out of the repository and lets you rotate it without rebuilding the image.
Can my bot use a database?
Yes. Every project includes a free Postgres (256 MB), MySQL (256 MB), Redis (128 MB) and a 1 GB volume. For a small bot a SQLite or JSON file on that volume is enough; for shared state use the managed Postgres, MySQL or Redis, whose connection details are exposed to the app as environment variables.
Start now
Put something live today.
Open the dashboard and deploy a Docker image, a Git repo or a template. The 5-day trial project needs no card.