mirror of
https://gitverse.ru/kpa39l/icq.git
synced 2026-09-29 18:05:10 +00:00
50 lines
2.4 KiB
Markdown
50 lines
2.4 KiB
Markdown
# ICQ — приватный XMPP-сервер (Prosody + Converse.js)
|
|
|
|
Личный XMPP-сервер для семьи/друзей. Домен: **nixg.ru**, веб-чат: **https://chat.nixg.ru**.
|
|
|
|
## Стек
|
|
- **Prosody 0.11.9** (Docker) — XMPP-сервер: c2s 5222, s2s 5269, WebSocket 5280, HTTPS 5281
|
|
- **Converse.js v14** (веб-клиент, ESM) — отдаётся nginx (Docker), доступ через Caddy (vps02)
|
|
- **Caddy** (vps02, host-network) — TLS-терминатор: chat.nixg.ru, xmpp.nixg.ru, upload.nixg.ru
|
|
- **Let's Encrypt** — сертификаты для XMPP (c2s/s2s) и веб
|
|
- **WireGuard** — туннель bigbox (10.8.0.2) ↔ vps02 (10.8.0.4)
|
|
|
|
## Состав (после клонирования)
|
|
```
|
|
/opt/icq
|
|
├── config/ # prosody.cfg.lua (+ mounts в контейнер)
|
|
├── webchat/ # nginx: index.html + nginx.conf (dist скачивается отдельно)
|
|
├── modules/ # community-модули Prosody (mod_http_upload)
|
|
├── docker-compose.yml
|
|
├── STATUS.md # точка входа: текущее состояние, задачи
|
|
├── PRD.md # требования/архитектура
|
|
├── MIGRATION.md # переезд chat.nixg.ru → nixg.ru
|
|
└── WALKTHROUGH.md # команды, засады, решения
|
|
```
|
|
|
|
## Быстрый запуск
|
|
```bash
|
|
# 1. dist Converse.js (в .gitignore, т.к. 24MB) — скачать из релиза:
|
|
# https://github.com/conversejs/converse/releases → converse.js-14.0.0.tgz
|
|
# распаковать package/dist/* в webchat/dist/
|
|
|
|
# 2. Сертификаты: положить LE-серт nixg.ru (fullchain, privkey) в certs/nixg.ru.{crt,key}
|
|
|
|
# 3. Запуск
|
|
docker compose up -d
|
|
```
|
|
|
|
## Домены (DNS, Jino)
|
|
| Запись | Значение |
|
|
|---|---|
|
|
| A chat.nixg.ru, xmpp.nixg.ru, upload.nixg.ru | 87.242.100.206 (vps02) |
|
|
| SRV _xmpp-client._tcp.nixg.ru | 5222 xmpp.nixg.ru |
|
|
| SRV _xmpp-server._tcp.nixg.ru | 5269 xmpp.nixg.ru |
|
|
| SRV _xmpp-client-websocket._tcp.nixg.ru | 443 xmpp.nixg.ru |
|
|
| TXT _acme-challenge.nixg.ru (при продлении) | временно |
|
|
|
|
## Лицензия
|
|
Приватный проект. Пароли и ключи в репозиторий не попадают (см. .gitignore).
|
|
|
|
---
|
|
Подробности: [STATUS.md](STATUS.md) (текущее состояние), [PRD.md](PRD.md), [WALKTHROUGH.md](WALKTHROUGH.md) |