Ендпоинт на стороне фастапи, отправка в бот
Go to file
2024-07-15 10:14:31 +03:00
README.md First commit 2024-07-15 10:14:31 +03:00

Docker-compose для телеграмм бота с PostgreSQL, Redis, FastAPI, Nginx и Certbot

Инструкция для запуска проекта.
В директориях fastapi_app и tgbot_app представлены примеры базовых проектов с минимальными функциями, требующимися для демонстрации работы.

Подготовка

Для начала требуется создать три файла с переменными окружения - один для телеграмм бота, один для api и один для docker-compose:

  • В корневой директории test-mission:
    touch .env
    vim .env - после чего вставить:
    POSTGRES_USER=<пользователь для postgres>
    POSTGRES_PASSWORD=<пароль для пользователя>
    POSTGRES_DB=<имя базы>
    R_PASSWORD=<пароль для redis>
    

Далее требуется сохранить изменения - :wq

  • В директории fastapi_app:
    touch .env
    vim .env - после чего вставить:
    POSTGRES_USER=<пользователь для postgres>
    POSTGRES_PASSWORD=<пароль для пользователя>
    POSTGRES_DB=<имя базы>
    

Далее требуется сохранить изменения - :wq

  • В директории tgbot_app:
    touch .env
    vim .env - также вставляем переменные:
    R_PASSWORD=<пароль для redis>
    T_TOKEN=<токен, который был выдан BotFather>
    

Далее требуется сохранить изменения - :wq

Установка Docker

Требуется сделать скрипт установки исполняемым:
chmod +x install-docker.sh
После введите команду:
sudo sh install-docker.sh
Проверим, корректно ли установился докер:
docker --version

Корректировка названия доменов в файлах docker-compose.yml и nginx.conf и настройка DNS

Требуется зайти в раздел редактирования DNS на сайте администратора вашего домена и указать в A-записи IP-адрес вашего сервера. Смена DNS обычно не занимает много времени, в ближайшие 15-20 минут ваш домен будет отдавать новый IP, для проверки введите в консоли команду:
dig a <ваш домен>

Если все успешно, перейдите vim nginx/nginx.conf и укажите ваш домен вместо anakinnikita.ru, то же самое сделайте в docker-compose.yml:
command: certonly --webroot -w /var/www/html --email anakinnikitaa@gmail.com -d anakinnikita.ru --cert-name=certfolder --key-type rsa --agree-tos
Замените anakinnikitaa@gmail.com на ваш почтовый ящик и anakinnikita.ru на ваш домен, также рекомендуется указывать имя домена вместо certfolder.

Запуск контейнеров

Теперь можно запускать контейнеры:
docker compose up --build -d
Приложение запущено.