Files
icq/docker-compose.yml

62 lines
2.5 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
version: "3.9"
services:
prosody:
image: prosody/prosody:latest
container_name: icq-prosody
restart: unless-stopped
hostname: chat.nixg.ru
volumes:
- ./data:/var/lib/prosody
- ./config:/etc/prosody
- ./certs:/etc/prosody/certs
- ./modules:/etc/prosody/modules # для кастомных модулей (http_upload и т.п.)
- ./logs:/var/log/prosody
ports:
- "5222:5222" # c2s (клиенты)
- "5269:5269" # s2s (федерация)
- "5280:5280" # BOSH / websocket
- "5281:5281" # websocket TLS (если нужен)
environment:
- LOCAL=nixg.ru
- DOMAIN=nixg.ru
- "XMPP_DOMAIN=nixg.ru"
# Для проброса трафика извне через WireGuard на 5222/5269 нужно,
# чтобы контейнер слушал на хосте. Пока оставляем привязку на все интерфейсы.
# Caddy (websocket) идёт на 5280/5281.
# Примечание: для федерации также открыть 5269 на VPS02 (форвард на bigbox).
webchat:
image: nginx:alpine
container_name: icq-webchat
restart: unless-stopped
volumes:
- ./webchat/nginx.conf:/etc/nginx/conf.d/default.conf:ro
- ./webchat:/usr/share/nginx/html:ro
ports:
- "8081:8081" # веб-клиент (Caddy на vps02 проксирует на 10.8.0.2:8081)
depends_on:
- prosody
# Мост XMPP -> Telegram (Slidge/slidgram), external component (XEP-0114)
# Трафик Telegram идёт через SOCKS5-прокси на хосте (172.27.0.1:1080 = SSH-туннель VPS01)
slidgram:
image: slidgram-proxy:latest
container_name: icq-slidgram
restart: unless-stopped
volumes:
- ./slidgram/data:/var/lib/slidge
environment:
- SLIDGE_JID=telegram.nixg.ru
- SLIDGE_SECRET=83276db6e870f540163f271d9bd7d3a390530b9ad7b45f58
- SLIDGE_SERVER=icq-prosody
- SLIDGE_PORT=5347
- SLIDGE_HOME_DIR=/var/lib/slidge
- SLIDGE_ADMINS=admin@nixg.ru
- SLIDGRAM_PROXY=socks5://172.27.0.1:1080
# Telegram App (api_id/api_hash с my.telegram.org/apps, получены 2026-08-29)
# NB: префикс env для плагина = SLIDGE_ + _SLIDGRAM_ → С ДВОЙНЫМ подчёркиванием (SLIDGE__SLIDGRAM_)
- SLIDGE__SLIDGRAM_API_ID=24276216
- SLIDGE__SLIDGRAM_API_HASH=2d6d0bb78f433bc5a086735c63e3958f
depends_on:
- prosody