feat: пользователь estorozhenko; отключить in-band регистрацию; CHEATSHEET по управлению сервером/юзерами

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