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 — Полезные команды (шпаргалка)
|
# 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
|
||||||
```
|
```
|
||||||
@@ -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).
|
||||||
|
|
||||||
## Инфраструктура
|
## Инфраструктура
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
Reference in New Issue
Block a user