Files
icq/CHEATSHEET.md

4.0 KiB

ICQ XMPP — Полезные команды (шпаргалка)

Все docker-команды выполняются из /opt/icq. Сервер: Prosody 0.11.9 в контейнере icq-prosody.

Проект / статус

cd /opt/icq && docker compose ps                 # статус всех контейнеров
docker compose ps -a                             # включая остановленные
docker compose logs --tail 50 prosody            # логи сервиса (или slidgram/webchat)

Пользователи (регистрация ОТКЛЮЧЕНА — только через prosodyctl)

# Создать пользователя (логин@nixg.ru):
docker exec icq-prosody prosodyctl register ЛОГИН nixg.ru 'ПАРОЛЬ'
# Пример: docker exec icq-prosody prosodyctl register ivan nixg.ru 'secret123'

# Изменить пароль (та же команда — перезапишет):
docker exec icq-prosody prosodyctl register ivan nixg.ru 'НОВЫЙПАРОЛЬ'

# Удалить пользователя:
docker exec icq-prosody prosodyctl unregister ЛОГИН nixg.ru

# Список аккаунтов (лежат в data/nixg.ru/accounts/*.dat на хосте):
ls /opt/icq/data/nixg%2eru/accounts/

⚠️ In-band self-registration ВЫКЛЮЧЕНА (allow_registration=false, модуль register не загружен). Единственный способ создать аккаунт — prosodyctl register. Пользователи НЕ могут сами регистрироваться.

Сервисы (Prosody, мост, веб-чат)

# Рестарт сервиса:
docker compose restart prosody                   # или slidgram / webchat
# Пересоздать контейнер с новыми env (после правки docker-compose.yml):
docker compose up -d --force-recreate --no-deps slidgram
# Полный перезапуск проекта:
docker compose up -d
# Остановить/запустить:
docker compose stop && docker compose start

# Проверка конфига Prosody:
docker exec icq-prosody prosodyctl check config
# Просмотр активных портов/модулей:
docker logs icq-prosody --tail 100
# Валидация сертификатов/домена:
docker exec icq-prosody prosodyctl check certs
docker exec icq-prosody prosodyctl check dns

Мост Telegram (Slidge/slidgram)

docker logs icq-slidgram --since 10m | grep -iE 'register|login|session|avatar|error'
# Регистрация TG-аккаунта: из XMPP-клиента команда "register" на telegram.nixg.ru
# (api_id/api_hash уже в конфиге; см. WALKTHROUGH.md §12)
# Перезапуск моста после правки env:
docker compose up -d --force-recreate --no-deps slidgram

Просмотр логов / диагностика

docker logs icq-prosody --tail 50
docker logs icq-webchat --since 5m
docker logs icq-slidgram --since 10m | grep -iE 'error|register|avatar'
# Прямые файлы логов:
tail -50 /opt/icq/logs/prosody.log
tail -30 /opt/icq/logs/prosody.err

Внешняя проверка

curl -sS https://upload.nixg.ru/upload          # HTTP Upload (ожидается 403/404 — сервис жив)
curl -sI https://chat.nixg.ru/                  # веб-чат
curl -sI https://xmpp.nixg.ru/                  # WS endpoint (Caddy)

Проверка входа пользователя по WebSocket (slixmpp, ssl не проверяется)

bot = slixmpp.ClientXMPP('admin@nixg.ru','ПАРОЛЬ')
import ssl; ctx = ssl.create_default_context(); ctx.check_hostname=False; ctx.verify_mode=ssl.CERT_NONE
bot.ssl_context = ctx
bot.connect(('wss://xmpp.nixg.ru/xmpp-websocket',))

Проверка веб-чата headless (UI отрендерен)

chromium --headless --no-sandbox --disable-gpu --virtual-time-budget=15000 --dump-dom https://chat.nixg.ru/ | grep converse-login-form