Для разработчиков
Сборка и запуск
Вы можете развернуть Olgram на своём сервере. Вам потребуется собственный VPS или любой хост со статическим адресом или доменом.
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 запущен!
Предупреждение
Не потеряйте TOKEN_ENCRYPTION_KEY! Его нельзя восстановить. В случае утери TOKEN_ENCRYPTION_KEY вы потеряете токены всех ботов, которые пользователи зарегистрировали в вашем боте.
Возможно, вы захотите внести изменения в проект и запустить бот с этими изменениями. Тогда:
Склонируйте репозиторий
(bash) $ git clone https://github.com/civsocit/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=<идентификатор языка>