- Бесплатный хостинг для Telegram-бота или Discord-бота на Python и не только. Обзор вариантов
- Специализированные сервисы для хостинга Телеграмм ботов и Дискорд ботов
- Бесплатные VPS хостинги
- Google Cloud Platform. Сервис App Engine
- Классическое облако с serverless функционалом
- Итого
- Completely Free Bot Hosting
- Why us ?
- but, how does that ADD UP ?
- 31.000 +
- 200 +
- 2
- 11.000 +
- Service Links
- Legal
- Additional Pages
- Hosting a Python Discord Bot for Free with Fly.io
- Deploying a Python Discord Bot to Fly.io
- 1. Install the flyctl command line tool
- Windows
- Arch Linux
- Linux
- 2. Create an account by running flyctl auth signup and finishing through the browser
- 3. Add a Dockerfile with the Python version and dependency install method
- Method 1: requirements.txt
- Method 2: Using Poetry
- 4. flyctl launch
- 5. flyctl deploy
- 6. Set the environment vars
- Continuous deployment from GitHub
- Conclusion
Бесплатный хостинг для Telegram-бота или Discord-бота на Python и не только. Обзор вариантов
Когда у вас небольшой проект (например, телеграмм бот или дискорд бот), платить лишние деньги за хостинг не хочется. Давайте попробуем разобраться, какие есть варианты бесплатного – или условно бесплатного – хостинга для ботов.
Специализированные сервисы для хостинга Телеграмм ботов и Дискорд ботов
- Heroku — облако, идеально подходящее для размещения телеграм-ботов и Discord-ботов. Есть совсем недорогие тарифы (ранее был бесплатный, но его недавно убрали). Единственным препятствием является необходимость оплаты картой иностранного банка.
- Amvera Cloud — российский аналог Heroku. Как и в Heroku, есть возможность развертывать приложения в контейнерах и обновлять их через push в GIT. Сейчас там идет полностью бесплатный бета-тест, который продлится еще некоторое время. Кроме того, при регистрации будет начислено 1000 руб., которых хватит на несколько месяцев бесплатного использования после окончания бета-теста.
- Pythonanywhere. Сервис заточен на хостинг проектов на Python. Однако на бесплатном тарифе нельзя использовать pyTelegramApi, что затрудняет развертывание на нем именно Telegram-ботов.
Бесплатные VPS хостинги
Существуют и полностью бесплатные хостинги на основе VPS. Обычно бесплатный тариф подразумевает отсутствие гарантий работоспособности сервиса и поддержки, но если ваш проект не требует безотказной работы, можно рассмотреть и их.
Есть несколько готовых подборок, приведем одну из ранее размещенных на Хабр по ссылке.
Google Cloud Platform. Сервис App Engine
Сервис позволяет развернуть приложения на языках Python, PHP, Go, Ruby, Java, JavaScript(Node.js).
Минус бесплатной версии — закрытая для записи файловая система, что не позволит вашему боту сохранять файлы.
Классическое облако с serverless функционалом
Как правило, крупные облачные провайдеры, такие как Яндекс, Сбер и VK, предлагают стартовую сумму на тестирование их облаков, равную нескольким тысячам рублей.
Недостатком является стоимость минимальной виртуальной машины, которая съедает тестовые деньги за 1-2 месяца.
Но можно воспользоваться serverless сервисами и запустить бота в виде функции. При небольшом трафике и принятии холодных стартов, можно получить бесплатный или, во всяком случае, недорогой хостинг.
Итого
Мы рассмотрели несколько вариантов хостинга Telegram-ботов и Дискорд-ботов. Все бесплатные тарифы провайдеров обладают существенными ограничениями, но решение найти можно. Альтернативным способом является использование полноценных решений в рамках промо-тарифов, а также технологии serverless облачных провайдеров.
Completely Free Bot Hosting
At Daki you can host your bot for free, and it’s very easy to use through our dashboard & portal.
Paid Plans
You want to have more resources, better hardware & a lower ping? Maybe even host a game server? Then you are right here, our paid plans are cheap and powerful.
Individual solution
You need for example more resources, a VPS or even a dedicated server? Don’t worry we have you, request your very own offer via ticket today.
Why us ?
All of our plans obviously come packed with features, but here’s some of our prime focuses and features that are included with our services.
Powerful Panel
Running on the latest version of Pterodactyl.
Inclusive Support
All of our services include free and quick support for any problems you may come across whilst using our services.
Infinite free Hosting
You don’t have to pay with us, everything is free of charge.
DDoS Protection
All our services and line-ups include best effort DDoS protection to attempt to fend of unwanted traffic and attacks.
Ping and connection
All our servers are equipped with fast and reliable connections to ensure low ping and short loading times.
Top End Hardware
All our servers run on high quality AMD Ryzen/AMD Epyc CPUs to ensure good performance.
but, how does that ADD UP ?
Here are some little statistics so you can get a general idea of how we operate. We’re always happy to answer any questions you may have too.
31.000 +
200 +
2
11.000 +
Service Links
Legal
Additional Pages
Daki Hosting is an affordable and free provider in bot & web hosting operating since 2021.
Copyright © 2023 Daki.cc All rights reserved.
Any images are subject to the copyright of their natural and rightful owner(s), as well as any additional content featured on this website.
Serving from FFM (Frankfurt)
Dev Code: daki230304
Hosting a Python Discord Bot for Free with Fly.io
As Heroku is no longer going to be free after November 28, 2022, I am sharing another way to host a Discord bot 24/7 for free.
You will be able to host any kind of bot on Fly.io with few limitations by following the steps below. You can also optionally attach a PostgreSQL database for storing data.
Deploying a Python Discord Bot to Fly.io
This article was originally a video tutorial, which you can check out here:
1. Install the flyctl command line tool
If you have the Homebrew package manager installed, flyctl can be installed by running:
If not, you can run the install script:
curl -L https://fly.io/install.sh | sh
Windows
Run the Powershell install script:
iwr https://fly.io/install.ps1 -useb | iex
Arch Linux
Run the package installer:
Linux
curl -L https://fly.io/install.sh | sh
2. Create an account by running flyctl auth signup and finishing through the browser
After installing flyctl, you should now be able to use it in the command line. Use flyctl auth signup to launch your browser and complete the account creation steps. If you already have an account, you can use flyctl auth login .
3. Add a Dockerfile with the Python version and dependency install method
Method 1: requirements.txt
Create a list of your dependencies in a requirements.txt . You can find out what you have installed using pip freeze .
discord.py>=2.0.0,3 python-dotenv==0.20.0
nextcord>=2.5.0,3 python-dotenv==0.20.0
To tell Fly.io to install these dependencies, create a file called Dockerfile (no file extension) with the following contents:
FROM python:3.10 WORKDIR /bot COPY requirements.txt /bot/ RUN pip install -r requirements.txt COPY . /bot CMD python bot.py
In this case python bot.py is the command used to run the bot. If your bot starts in a different file, you should change that here.
Method 2: Using Poetry
If you are using Poetry for dependencies, your Dockerfile will look more like this:
FROM python:3.10 RUN pip install poetry WORKDIR /bot COPY poetry.lock pyproject.toml /bot/ RUN poetry config virtualenvs.create false && poetry install --no-interaction --no-ansi COPY . /bot CMD python bot.py
(Poetry Dockerfile is based on this tutorial by Replicate.com)
4. flyctl launch
In the project folder, run flyctl launch
Give your project a name, type Y or N depending on if you want a Postgresql database or not, type N to not have it deploy.
This will create a fly.toml , but you can delete most of it so that it looks similar to this:
app = "my-bot-name" # your bot's app name primary_region = "cdg" # a region of your choice
5. flyctl deploy
Type flyctl deploy to deploy the first version!
Once it is completed, your bot will be running on Fly.io!
6. Set the environment vars
If you will be deploying your bot without your .env or configuration files, you will need to set secrets for fly.io to know about.
This will include all environment variables, for example:
flyctl secrets set 'DISCORD_TOKEN=My.TOken.3213.example' 'LOG_CHANNEL_ID=1234567890'
To deploy further versions, you can run flyctl deploy or see below for automatic deploys from GitHub.
Continuous deployment from GitHub
You can find the video for this part here:
- Run flyctl auth token to get a Fly API token
- Go to your repo’s Settings > Secrets > Actions and click New repository secret
- Enter FLY_API_TOKEN as the name and your token from step 1 as the value
- Create a folder, .github/workflows/ and inside create a file that uses the flyctl action on push. You may name it what you like, for example, fly.yml .
name: Fly Deploy on: push: branches: - main env: FLY_API_TOKEN: $ secrets.FLY_API_TOKEN >> jobs: deploy: name: Deploy app runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: superfly/flyctl-actions/setup-flyctl@master - run: flyctl deploy --remote-only
Make sure the branch name is correct for your default branch.
Conclusion
I hope you found this tutorial useful.
Check out the full videos for further explanations and be sure to like and subscribe!
Part 2 (Continuous Deployment) — youtu.be/6u9BrDaSHJc