Розгортання GlowCRM¶
Бот працює через long polling, тому не потребує відкритих портів, домену чи HTTPS — достатньо доступу до інтернету. Нижче — кілька способів запуску.
Зміст¶
- Локальний запуск
- Linux + systemd
- Docker
- Docker Compose
- Оновлення
- Резервне копіювання
- Поширені проблеми
Локальний запуск¶
python -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # Windows: copy .env.example .env
# заповніть BOT_TOKEN та ADMIN_USERNAMES
python run.py
Linux + systemd¶
Для постійної роботи на сервері створіть службу.
/etc/systemd/system/glowcrm.service:
[Unit]
Description=GlowCRM Telegram bot
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=/opt/glow-crm
ExecStart=/opt/glow-crm/.venv/bin/python run.py
Restart=always
RestartSec=5
User=glowcrm
EnvironmentFile=/opt/glow-crm/.env
[Install]
WantedBy=multi-user.target
Запуск:
sudo systemctl daemon-reload
sudo systemctl enable --now glowcrm
sudo systemctl status glowcrm
journalctl -u glowcrm -f # перегляд логів
Docker¶
docker build -t glow-crm .
docker run -d --name glow-crm \
--env-file .env \
-v "$(pwd)/data:/app/data" \
--restart unless-stopped \
glow-crm
Том data/ зберігає базу між перезапусками.
Docker Compose¶
docker-compose.yml уже налаштований: читає .env, монтує ./data і перезапускається автоматично.
Оновлення¶
git pull
# локально:
pip install -r requirements.txt
sudo systemctl restart glowcrm
# або Docker:
docker compose up -d --build
База даних сумісна між запусками; нові налаштування/послуги додаються при ініціалізації, не перезаписуючи наявні.
Резервне копіювання¶
Уся інформація — у data/glowcrm.sqlite3. Достатньо копіювати цей файл (краще при зупиненому боті):
Поширені проблеми¶
Не вказано BOT_TOKEN.
Не створено .env або порожня змінна BOT_TOKEN. Скопіюйте .env.example і впишіть токен.
Не бачу кнопку «Адмін-панель».
Ваш username/ID не в списку адмінів. Перевірте ADMIN_USERNAMES / ADMIN_IDS та
перезапустіть бота. Username вказується без @.
TelegramConflictError: terminated by other getUpdates.
Запущено два екземпляри бота з тим самим токеном. Залиште лише один.
Кирилиця/емодзі «ламаються» в консолі Windows.
Застосунок сам перемикає вивід на UTF-8; за потреби виконайте chcp 65001 перед запуском.