Для разработчиков ================= .. _run: Сборка и запуск --------------- Вы можете развернуть Olgram на своём сервере. Вам потребуется собственный VPS или любой хост со статическим адресом или доменом. 1. Создайте файл .env и заполните его по образцу `example.env `_ Вам нужно заполнить переменные: * ``BOT_TOKEN`` - токен нового бота, получить у `@botfather `_ * ``POSTGRES_PASSWORD`` - любой случайный пароль * ``TOKEN_ENCRYPTION_KEY`` - любой случайный пароль, отличный от POSTGRES_PASSWORD * ``WEBHOOK_HOST`` - IP адрес или доменное имя сервера, на котором запускается проект 2. Рядом с файлом .env сохраните файл `docker-compose.yaml `_ и соберите его: .. code-block:: console (bash) $ sudo docker-compose up -d Готово, ваш собственный Olgram запущен! .. warning:: Не потеряйте TOKEN_ENCRYPTION_KEY! Его нельзя восстановить. В случае утери TOKEN_ENCRYPTION_KEY вы потеряете токены всех ботов, которые пользователи зарегистрировали в вашем боте. Возможно, вы захотите внести изменения в проект и запустить бот с этими изменениями. Тогда: 1. Склонируйте репозиторий .. code-block:: console (bash) $ git clone https://github.com/civsocit/olgram 2. Внесите в код все изменения, которые хотите внести 3. В каталоге с репозиторием (рядом с файлами .yaml) создайте файл .env и заполните его, как в инструкции выше 4. Соберите и запустите сервер: .. code-block:: console (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=<идентификатор языка>``