# OLGram

[![Static Analysis Status](https://github.com/civsocit/olgram/workflows/Linter/badge.svg)](https://github.com/civsocit/olgram/actions?workflow=Linter) 
[![Deploy Status](https://github.com/civsocit/olgram/workflows/Deploy/badge.svg)](https://github.com/civsocit/olgram/actions?workflow=Deploy)
[![Documentation](https://readthedocs.org/projects/olgram/badge/?version=latest)](https://olgram.readthedocs.io)

[@OlgramBot](https://t.me/olgrambot) - конструктор ботов обратной связи в Telegram

Документация: https://olgram.readthedocs.io

## Возможности и преимущества Olgram Bot

* **Общение с клиентами**. После подключения бота, вы сможете общаться с вашими пользователями бота через диалог с 
ботом, либо подключенный отдельно чат, где может находиться ваш колл-центр.
* **Все типы сообщений**. Livegram боты поддерживают все типы сообщений — текст, фото, видео, голосовые сообщения и 
стикеры.
* **Open-source**. В отличие от известного проекта Livegram код нашего конструктора полностью открыт.
* **Self-hosted**. Вы можете развернуть свой собственный конструктор, если не доверяете нашему.
* **Безопасность**. В отличие от Livegram, мы не храним сообщения, которые вы отправляете в бот. А наши сервера 
располагаются в Германии, что делает проект неподконтрольным российским властям. 


По любым вопросам, связанным с Olgram, пишите в наш бот обратной связи 
[@civsocit_feedback_bot](https://t.me/civsocit_feedback_bot)

### Для разработчиков: сборка и запуск проекта

Вам потребуется собственный VPS или любой хост со статическим адресом или доменом.
* Создайте файл .env по образцу example.env. Вам нужно заполнить переменные:
  * BOT_TOKEN - токен нового бота, получить у [@botfather](https://t.me/botfather)
  * POSTGRES_PASSWORD - любой случайный пароль
  * TOKEN_ENCRYPTION_KEY - любой случайный пароль, отличный от POSTGRES_PASSWORD
  * WEBHOOK_HOST - IP адрес или доменное имя сервера, на котором запускается проект
* Сохраните файл docker-compose.yaml и соберите его:
```
sudo docker-compose up -d
```

В docker-compose.yaml минимальная конфигурация. Для использования в серьёзных проектах мы советуем:
* Приобрести домен и настроить его на свой хост
* Наладить реверс-прокси и автоматическое обновление сертификатов - например, с помощью 
[Traefik](https://github.com/traefik/traefik)
* Скрыть IP сервера с помощью [Cloudflire](https://www.cloudflare.com), чтобы пользователи ботов не могли найти IP адрес 
хоста по Webhook бота.

Пример более сложной конфигурации есть в файле docker-compose-full.yaml
