Для разработчиков
Сборка и запуск
Вы можете развернуть Olgram на своём сервере. Вам потребуется собственный VPS или любой хост со статическим адресом или доменом.
Warning
На самом деле эта инструкция немного устарела после рефакторинга сервера (переход на nginx), по разворачиванию своего сервера уточняйте в поддержке
1. Создайте файл .env и заполните его по образцу example.env Вам нужно заполнить переменные:
BOT_TOKEN- токен нового бота, получить у @botfatherPOSTGRES_PASSWORD- любой случайный парольTOKEN_ENCRYPTION_KEY- любой случайный пароль, отличный от POSTGRES_PASSWORDWEBHOOK_HOST- IP адрес или доменное имя сервера, на котором запускается проект
2. Рядом с файлом .env сохраните файл docker-compose.yaml и соберите его:
(bash) $ sudo docker-compose up -d
Готово, ваш собственный Olgram запущен!
Warning
Не потеряйте TOKEN_ENCRYPTION_KEY! Его нельзя восстановить. В случае утери TOKEN_ENCRYPTION_KEY вы потеряете токены всех ботов, которые пользователи зарегистрировали в вашем боте.
Возможно, вы захотите внести изменения в проект и запустить бот с этими изменениями. Тогда:
Склонируйте репозиторий
(bash) $ git clone https://github.com/olgrambot/olgram
Внесите в код все изменения, которые хотите внести
В каталоге с репозиторием (рядом с файлами .yaml) создайте файл .env и заполните его, как в инструкции выше
Соберите и запустите сервер:
(bash) $ sudo docker-compose -f docker-compose-src.yaml up -d
Дополнительно
В docker-compose.yaml приведена минимальная конфигурация. Для использования в серьёзных проектах мы советуем:
Приобрести домен и настроить его на свой хост
Наладить реверс-прокси и автоматическое обновление сертификатов - например, с помощью Traefik
Скрыть IP сервера с помощью Cloudflare, чтобы пользователи ботов не могли найти IP адрес хоста по Webhook бота.
Пример более сложной конфигурации есть в файле docker-compose-full.yaml
Как ограничить доступ к своему боту
По-умолчанию все пользователи Telegram могут писать в ваш Olgram и регистрировать там своих ботов. Чтобы ограничить доступ к боту, укажите в переменных окружения (файл .env):
ADMIN_ID=<идентификатор чата>
Идентификатор чата это либо ваш Telegram ID, либо ID группового чата Telegram. Идентификатор можно посмотреть командой /chatid.
Настройка языка
Язык по-умолчанию - русский. Поддержку другого языка можно добавлять по образцу китайского в папку locales/ (китайский - zh). Код языка указать в настройках .env
O_LANG=<идентификатор языка>