Для разработчиков

Сборка и запуск

Вы можете развернуть Olgram на своём сервере. Вам потребуется собственный VPS или любой хост со статическим адресом или доменом.

1. Создайте файл .env и заполните его по образцу example.env Вам нужно заполнить переменные:

  • BOT_TOKEN - токен нового бота, получить у @botfather

  • POSTGRES_PASSWORD - любой случайный пароль

  • TOKEN_ENCRYPTION_KEY - любой случайный пароль, отличный от POSTGRES_PASSWORD

  • WEBHOOK_HOST - IP адрес или доменное имя сервера, на котором запускается проект

2. Рядом с файлом .env сохраните файл docker-compose.yaml и соберите его:

(bash) $ sudo docker-compose up -d

Готово, ваш собственный Olgram запущен!

Предупреждение

Не потеряйте TOKEN_ENCRYPTION_KEY! Его нельзя восстановить. В случае утери TOKEN_ENCRYPTION_KEY вы потеряете токены всех ботов, которые пользователи зарегистрировали в вашем боте.

Возможно, вы захотите внести изменения в проект и запустить бот с этими изменениями. Тогда:

  1. Склонируйте репозиторий

(bash) $ git clone https://github.com/civsocit/olgram
  1. Внесите в код все изменения, которые хотите внести

  2. В каталоге с репозиторием (рядом с файлами .yaml) создайте файл .env и заполните его, как в инструкции выше

  3. Соберите и запустите сервер:

(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=<идентификатор языка>