Задать вопрос
@Egor12347

Не запускается бот на облачном сервере, что делать?

Не запускается бот на облачном сервере Ubuntu, все файлы и зависимости установлены, но бот наотрез отказывается работать

Бот должен отправлять сообщение о запуске по админ айди, но этого не происходит по какой-то причине.

На сервер копирую бота через FileZilla

Директория проекта
6656b9d682e11724451734.png

Файлы проекта
6656b9f2a5b27006159211.png

У меня есть предположение что он не хочет запускаться по причине того, что не настроен Redis, но я не знаю как его настроить на облачном сервере, причем при запуске файла Main.py нагрузка на сервер идет, но сам бот не присылает сообщение о том, что он запущен, и база данных не создается.

Код Main.py:
# Запуск бота
from aiogram import Bot, Dispatcher
from config import Config
from aiogram.fsm.storage.redis import RedisStorage
from middlewares import ThrottlingMiddleWare
import asyncio
from src.services import DataBase1
from src.services import sql as db
from handlers.order import (
    summer_order,
    winter_order,
    short_order,
    parph_order
)
from handlers import (
    user,
    summer_calcul,
    winter_calcul,
    short_calcul,
    parph_calcul,
    history_user,
    basket,
    basket_pay,
    admin_file
)


bot = Bot(token=Config.token)
dp = Dispatcher(bot=bot)
db1 = DataBase1('tg_order.db')


async def start_bot():
    await db.db_start()
    await db.db_history_start()
    await bot.send_message(Config.admin_ids, 'Бот запущен')


async def stop_bot():
    await bot.send_message(Config.admin_ids, 'Бот остановлен')


async def main():

    throttling_storage = RedisStorage.from_url('redis://localhost:6379/5')
    dp.message.middleware.register(ThrottlingMiddleWare(storage=throttling_storage))
    dp.startup.register(start_bot)
    dp.shutdown.register(stop_bot)
    dp.include_routers(
        admin_file.router,
        basket_pay.router,
        history_user.router,
        summer_order.router,
        winter_order.router,
        short_order.router,
        parph_order.router,
        summer_calcul.router,
        winter_calcul.router,
        short_calcul.router,
        parph_calcul.router,
        user.router,
        basket.router
    )

    try:
        await bot.delete_webhook(drop_pending_updates=True)
        await dp.start_polling(bot)
    finally:
        await bot.session.close()

if __name__ == '__main__':
    try:
        asyncio.run(main())
    except (KeyboardInterrupt, SystemExit):
        dp.shutdown.register(stop_bot)


Сам я в программировании недолго поэтому не все определения понятны, заранее благодарю за помощь
  • Вопрос задан
  • 161 просмотр
Подписаться 1 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 1
@barolina
turn coffee into code
Проблема: скорее, да не установлен redis

Основные шаги

1. Залит код на сервер
2. Установить зависимости pip install -r requirements.txt
3. Установить redis https://www.digitalocean.com/community/tutorials/h...
4. Запустить bot, через systemd, к примеру так https://gist.github.com/ilyasst/28bee4ee7ebb89e012...

Рекомендации: использовать git, для доставки кода на сервер
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы