Данный проект это веб-сервер Caddy внутри Docker Compose, настроенный в режиме реверс-прокси, используемый для расположения нескольких ботов на одном сервере. SSL-сертификаты автоматически генерируются и обновляются от Let's Encrypt. Конфиг Caddyfile может быть переписан для использования нескольких микросервисов на одном сервере.
- Создание HTTPS-подключения
- Автообновление и создание SSL-сертификатов Let's Encrypt
- Дает возможность расположить несколько ботов или микросервисов на одном сервере
- Caddy
- Docker
- Docker Compose
- Клонировать репозиторий:
git clone https://github.com/LaggerIsME/caddy_for_telegram_bot
- Скачать и установить Docker и Docker-Compose: https://docs.docker.com/engine/install/
- Перейти в директорию проекта:
cd ~/caddy_for_telegram_bot
- Изменить значение переменных в файле
.env
. - Создать общую сеть для docker-контейнеров с помощью команды:
docker network create web
- Проверить создалась ли она с помощью:
docker network ls
- Запустить реверс-прокси с помощью команды:
-
- Linux:
docker compose up -d --build
- Linux:
-
- MacOS, Windows:
docker-compose up -d --build
- MacOS, Windows:
Теперь можете запустить своих ботов внутри docker и они будут работать по HTTPS-подключению.
- Если хотите расположить дополнительного бота, то добавьте еще одну строчку с
reverse_proxy {роутер_бота} {имя_контейнера_бота}:{порт бота}
вCaddyfile
{$DOMAIN} {
tls {$EMAIL} {
on_demand
}
reverse_proxy {$BOT_ROUTER} {$BOT_CONTAINER_NAME}:{$BOT_PORT}
#Добавьте строчку выше, чтоб добавить еще одного бота
file_server
}
- Не забудьте, что в
docker-compose.yml
ВАШЕГО БОТА вы должны будете указать:
networks:
web:
external: true
- А также добавить все ваши сервисы внутри
docker-compose.yml
ВАШЕГО БОТА в эту сеть:
services:
service_name_1:
networks:
- web
service_name_2:
networks:
- web