Готовый self-hosted XMPP deployment kit для Docker Compose и Portainer с чатами, файлами, звонками, web-регистрацией и административным интерфейсом.
Проект собирает в одну воспроизводимую схему полноценный XMPP-сервер на Prosody: PostgreSQL используется для хранения данных, coturn обеспечивает STUN/TURN для аудио- и видеозвонков, nginx завершает TLS и проксирует web-endpoint’ы, а Let’s Encrypt выдаёт и автоматически обновляет сертификаты.
Стек рассчитан прежде всего на обычный Linux-хост с Docker или Portainer и подходит в том числе для сервера за NAT. Вместе с Compose-конфигурацией поставляются скрипты первоначальной настройки, диагностики, резервного копирования, восстановления и безопасного обновления.
Основные возможности
- XMPP-сервер Prosody с PostgreSQL-хранилищем;
- групповые MUC-чаты;
- HTTP File Share для передачи файлов;
- WebSocket и BOSH для web-клиентов;
- web-регистрация пользователей;
- web-admin с дополнительной защитой nginx Basic Auth;
- coturn и STUN/TURN для аудио- и видеозвонков, включая работу за NAT;
- Let’s Encrypt и автоматическое обновление сертификатов Prosody;
doctor.shдля комплексной проверки DNS, TLS, контейнеров, Prosody, TURN и web-endpoint’ов;- backup/restore и Disaster Recovery на новый хост;
- backup-first обновление стека с последующей диагностикой;
- секреты TURN и сертификаты передаются контейнерам через ограниченные read-only файлы.
Состояние проекта
Статус: активная разработка; работоспособный deployment kit из ветки main.
Платформа: Linux-хост с Docker Compose или Portainer; подключаться могут обычные XMPP-клиенты.
Технологии: Prosody, PostgreSQL 17, coturn, nginx, Docker Compose, Bash, Let’s Encrypt/certbot.
Лицензия: MIT.
Ссылки
Инструкция по установке · Исходный код · Сообщить об ошибке
У проекта пока нет отдельной релизной линейки: актуальное состояние ведётся в ветке main.
