2021-09-22 19:19:11 +03:00
|
|
|
|
Для разработчиков
|
|
|
|
|
=================
|
|
|
|
|
|
2021-10-23 20:33:33 +03:00
|
|
|
|
.. _run:
|
2021-09-22 19:19:11 +03:00
|
|
|
|
Сборка и запуск
|
|
|
|
|
---------------
|
|
|
|
|
Вы можете развернуть Olgram на своём сервере. Вам потребуется собственный VPS или любой хост со статическим адресом
|
|
|
|
|
или доменом.
|
|
|
|
|
|
|
|
|
|
1. Создайте файл .env и заполните его по образцу `example.env <https://github.com/civsocit/olgram/blob/main/example.env>`_
|
|
|
|
|
Вам нужно заполнить переменные:
|
|
|
|
|
|
|
|
|
|
* ``BOT_TOKEN`` - токен нового бота, получить у `@botfather <https://t.me/botfather>`_
|
|
|
|
|
* ``POSTGRES_PASSWORD`` - любой случайный пароль
|
2021-09-27 05:01:28 +03:00
|
|
|
|
* ``TOKEN_ENCRYPTION_KEY`` - любой случайный пароль, отличный от POSTGRES_PASSWORD
|
2021-09-22 19:19:11 +03:00
|
|
|
|
* ``WEBHOOK_HOST`` - IP адрес или доменное имя сервера, на котором запускается проект
|
|
|
|
|
|
2021-09-26 18:15:46 +03:00
|
|
|
|
2. Рядом с файлом .env сохраните файл
|
|
|
|
|
`docker-compose.yaml <https://github.com/civsocit/olgram/blob/main/docker-compose.yaml>`_ и соберите его:
|
2021-09-22 19:19:11 +03:00
|
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
|
|
(bash) $ sudo docker-compose up -d
|
|
|
|
|
|
|
|
|
|
Готово, ваш собственный Olgram запущен!
|
|
|
|
|
|
2021-09-27 05:01:28 +03:00
|
|
|
|
.. warning::
|
|
|
|
|
|
|
|
|
|
Не потеряйте TOKEN_ENCRYPTION_KEY! Его нельзя восстановить. В случае утери TOKEN_ENCRYPTION_KEY вы потеряете
|
|
|
|
|
токены всех ботов, которые пользователи зарегистрировали в вашем боте.
|
|
|
|
|
|
2022-01-14 20:47:53 +03:00
|
|
|
|
.. note::
|
2022-01-12 00:40:39 +03:00
|
|
|
|
|
|
|
|
|
Такие облачные решения как heroku https://www.heroku.com/ предоставляют готовый URL для обращения к вашему
|
|
|
|
|
проекту через HTTPS. Если у вашего сервера есть доменное имя и поддержка HTTPS (как на heroku), в файле
|
|
|
|
|
.env замените CUSTOM_CERT=true на CUSTOM_CERT=false. Флаг CUSTOM_CERT=true предназначен для "голых" VPS
|
|
|
|
|
|
2021-10-23 20:33:33 +03:00
|
|
|
|
Возможно, вы захотите внести изменения в проект и запустить бот с этими изменениями. Тогда:
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
2021-09-22 19:19:11 +03:00
|
|
|
|
Дополнительно
|
|
|
|
|
-------------
|
|
|
|
|
|
|
|
|
|
В docker-compose.yaml приведена минимальная конфигурация. Для использования в серьёзных проектах мы советуем:
|
|
|
|
|
|
|
|
|
|
* Приобрести домен и настроить его на свой хост
|
|
|
|
|
* Наладить реверс-прокси и автоматическое обновление сертификатов - например, с помощью `Traefik <https://github.com/traefik/traefik>`_
|
2021-10-11 18:33:52 +03:00
|
|
|
|
* Скрыть IP сервера с помощью `Cloudflare <https://www.cloudflare.com>`_, чтобы пользователи ботов не могли найти IP адрес хоста по Webhook бота.
|
2021-09-22 19:19:11 +03:00
|
|
|
|
|
|
|
|
|
Пример более сложной конфигурации есть в файле `docker-compose-full.yaml <https://github.com/civsocit/olgram/blob/main/docker-compose-full.yaml>`_
|
2021-10-01 20:06:09 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Как ограничить доступ к своему боту
|
|
|
|
|
-----------------------------------
|
|
|
|
|
|
|
|
|
|
По-умолчанию все пользователи Telegram могут писать в ваш Olgram и регистрировать там своих ботов. Чтобы ограничить
|
|
|
|
|
доступ к боту, укажите в переменных окружения (файл .env):
|
|
|
|
|
|
|
|
|
|
``ADMIN_ID=<идентификатор чата>``
|
|
|
|
|
|
|
|
|
|
Идентификатор чата это либо ваш Telegram ID, либо ID группового чата Telegram. Идентификатор можно посмотреть
|
2021-10-11 18:33:52 +03:00
|
|
|
|
командой /chatid.
|