XMPP Portainer Stack

← Все публичные проекты

Готовый 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.