mirror of
https://gitverse.ru/kpa39l/icq.git
synced 2026-09-29 09:55:11 +00:00
feat: пользователь estorozhenko; отключить in-band регистрацию; CHEATSHEET по управлению сервером/юзерами
This commit is contained in:
+72
-9
@@ -1,16 +1,79 @@
|
||||
# ICQ XMPP — Полезные команды (шпаргалка)
|
||||
|
||||
> Все docker-команды выполняются из /opt/icq. Сервер: Prosody 0.11.9 в контейнере icq-prosody.
|
||||
|
||||
## Проект / статус
|
||||
```bash
|
||||
cd /opt/icq && docker compose ps
|
||||
docker logs icq-prosody --tail 50
|
||||
docker logs icq-slidgram --since 10m | grep -iE 'register|login|session|avatar|error'
|
||||
docker exec icq-prosody prosodyctl check config
|
||||
docker exec icq-prosody prosodyctl register admin nixg.ru 'ПАРОЛЬ'
|
||||
# внешняя проверка
|
||||
curl -sS https://upload.nixg.ru/upload
|
||||
cd /opt/icq && docker compose ps # статус всех контейнеров
|
||||
docker compose ps -a # включая остановленные
|
||||
docker compose logs --tail 50 prosody # логи сервиса (или slidgram/webchat)
|
||||
```
|
||||
|
||||
Проверка входа по WebSocket (slixmpp, ssl не проверяется):
|
||||
## Пользователи (регистрация ОТКЛЮЧЕНА — только через prosodyctl)
|
||||
```bash
|
||||
# Создать пользователя (логин@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, мост, веб-чат)
|
||||
```bash
|
||||
# Рестарт сервиса:
|
||||
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)
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
## Просмотр логов / диагностика
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
## Внешняя проверка
|
||||
```bash
|
||||
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 не проверяется)
|
||||
```python
|
||||
bot = slixmpp.ClientXMPP('admin@nixg.ru','ПАРОЛЬ')
|
||||
import ssl; ctx = ssl.create_default_context(); ctx.check_hostname=False; ctx.verify_mode=ssl.CERT_NONE
|
||||
@@ -18,7 +81,7 @@ bot.ssl_context = ctx
|
||||
bot.connect(('wss://xmpp.nixg.ru/xmpp-websocket',))
|
||||
```
|
||||
|
||||
Проверка веб-чата headless (UI отрендерен):
|
||||
## Проверка веб-чата headless (UI отрендерен)
|
||||
```bash
|
||||
chromium --headless --no-sandbox --disable-gpu --virtual-time-budget=15000 --dump-dom https://chat.nixg.ru/ | grep converse-login-form
|
||||
```
|
||||
@@ -5,8 +5,11 @@
|
||||
## Учётные данные
|
||||
- **admin@nixg.ru / пароль: `<СМОТРИ В ЗАЩИЩЁННОМ ХРАНИЛИЩЕ / .env>`** ← перенесён 2026-08-28 с admin@chat.nixg.ru, ВХОД ПОДТВЕРЖДЁН
|
||||
(проверено через WebSocket: slixmpp + wss://xmpp.nixg.ru/xmpp-websocket → AUTH OK).
|
||||
- **estorozhenko@nixg.ru** — создан 2026-08-29, вход подтверждён (slixmpp, c2s 5222, AUTH OK).
|
||||
- Если пароль снова понадобится сбросить:
|
||||
`docker exec icq-prosody prosodyctl register admin nixg.ru 'НОВЫЙПАРОЛЬ'`
|
||||
`docker exec icq-prosody prosodyctl register ЛОГИН nixg.ru 'НОВЫЙПАРОЛЬ'`
|
||||
- ⚠️ **Самостоятельная регистрация ВЫКЛЮЧЕНА** (2026-08-29): `allow_registration = false`, модуль `register` не загружен.
|
||||
Создание/удаление пользователей — только через prosodyctl (см. CHEATSHEET.md).
|
||||
- Старый аккаунт admin@chat.nixg.ru: домен chat.nixg.ru убран из Prosody (VirtualHost теперь nixg.ru).
|
||||
|
||||
## Инфраструктура
|
||||
|
||||
@@ -20,6 +20,7 @@ Self-hosted XMPP-мессенджер на **nixg.ru** (Prosody 0.11.9 + веб-
|
||||
- ✅ HTTP Upload (upload.nixg.ru, XEP-0363), OMEMO (XEP-0384, через PEP), MAM, Carbons, MUC, PubSub, Bookmarks
|
||||
- ✅ Бэкапы → Яндекс.Диск (cron 2:45), watchdog продления LE-серта (тихий, cron ca2a23a34905)
|
||||
- ✅ Мост Telegram (Slidge/slidgram): telegram.nixg.ru аутентифицирован, MTProto через SOCKS5-туннель VPS01
|
||||
- ✅ Пользователи: admin@nixg.ru, estorozhenko@nixg.ru (оба входят); самостоятельная регистрация ОТКЛЮЧЕНА
|
||||
|
||||
## Задачи (будущее)
|
||||
- [ ] **Регистрация TG-аккаунта в мосте** — admin@nixg.ru → команда `register` на telegram.nixg.ru
|
||||
|
||||
@@ -37,7 +37,7 @@ modules_enabled = {
|
||||
"uptime"; -- Время работы
|
||||
"time"; -- Время
|
||||
"ping"; -- XMPP Ping
|
||||
"register"; -- In-band registration (для первого пользователя)
|
||||
-- "register"; -- In-band registration ОТКЛЮЧЕНА (allow_registration=false; создание только prosodyctl)
|
||||
"adhoc"; -- ad-hoc команды
|
||||
"admin_adhoc"; -- админ-команды
|
||||
"admin_web"; -- XMPP ad-hoc админ-команды (adminsub; НЕ веб-панель — см. разд. 10 WALKTHROUGH)
|
||||
@@ -100,8 +100,8 @@ VirtualHost "nixg.ru"
|
||||
authentication = "internal_hashed"
|
||||
-- Хранилище (встроенное, файлы)
|
||||
storage = "internal"
|
||||
-- Включить регистрацию (in-band)
|
||||
allow_registration = true
|
||||
-- Регистрация ВЫКЛЮЧЕНА (in-band): создание пользователей только prosodyctl register
|
||||
allow_registration = false
|
||||
-- TLS: сертификаты для домена (для c2s/s2s 5222/5269)
|
||||
ssl = {
|
||||
key = "/etc/prosody/certs/nixg.ru.key";
|
||||
|
||||
Reference in New Issue
Block a user