mirror of
https://github.com/civsocit/olgram.git
synced 2023-07-22 01:29:12 +03:00
81 lines
4.2 KiB
ReStructuredText
81 lines
4.2 KiB
ReStructuredText
Для разработчиков
|
||
=================
|
||
|
||
.. _run:
|
||
Сборка и запуск
|
||
---------------
|
||
Вы можете развернуть Olgram на своём сервере. Вам потребуется собственный VPS или любой хост со статическим адресом
|
||
или доменом.
|
||
|
||
1. Создайте файл .env и заполните его по образцу `example.env <https://github.com/civsocit/olgram/blob/main/example.env>`_
|
||
Вам нужно заполнить переменные:
|
||
|
||
* ``BOT_TOKEN`` - токен нового бота, получить у `@botfather <https://t.me/botfather>`_
|
||
* ``POSTGRES_PASSWORD`` - любой случайный пароль
|
||
* ``TOKEN_ENCRYPTION_KEY`` - любой случайный пароль, отличный от POSTGRES_PASSWORD
|
||
* ``WEBHOOK_HOST`` - IP адрес или доменное имя сервера, на котором запускается проект
|
||
|
||
2. Рядом с файлом .env сохраните файл
|
||
`docker-compose.yaml <https://github.com/civsocit/olgram/blob/main/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 <https://github.com/traefik/traefik>`_
|
||
* Скрыть IP сервера с помощью `Cloudflare <https://www.cloudflare.com>`_, чтобы пользователи ботов не могли найти IP адрес хоста по Webhook бота.
|
||
|
||
Пример более сложной конфигурации есть в файле `docker-compose-full.yaml <https://github.com/civsocit/olgram/blob/main/docker-compose-full.yaml>`_
|
||
|
||
|
||
Как ограничить доступ к своему боту
|
||
-----------------------------------
|
||
|
||
По-умолчанию все пользователи Telegram могут писать в ваш Olgram и регистрировать там своих ботов. Чтобы ограничить
|
||
доступ к боту, укажите в переменных окружения (файл .env):
|
||
|
||
``ADMIN_ID=<идентификатор чата>``
|
||
|
||
Идентификатор чата это либо ваш Telegram ID, либо ID группового чата Telegram. Идентификатор можно посмотреть
|
||
командой /chatid.
|
||
|
||
|
||
Настройка языка
|
||
---------------
|
||
|
||
Язык по-умолчанию - русский. Поддержку другого языка можно добавлять по образцу китайского в папку locales/
|
||
(китайский - zh). Код языка указать в настройках .env
|
||
|
||
``O_LANG=<идентификатор языка>``
|