Jump to content

XMPP сервер Prosody. Пересборка до v 0.11


Recommended Posts

Здравствуйте!

Сейчас в репозитарии версия 0.9. В следующем релизе появилось много интересных функций:

XEP-0313 Message archiving

XEP-0280 Carbons

XEP-0191 Block list

https://prosody.im/doc/modules

 

Подскажите как можно иницинировать пересборку пакета?

 

Edited by gonsalez
Link to comment
Share on other sites

Для истории набросал инструкции по установке.

Требования к сервису
•    Отсутствие третьей стороны при обмене между абонентами сервиса
Примечание. Как владелец сервиса третьей стороной себя не считаю :-)
•    Минимальные требования к аппаратной платформе
•    Зашифрованная передача сообщений между абонентом и сервером.
Примечание. Так как мы являемся владельцами сервиса, сквозное шифрование между абонентами в принципе не требуется. Некоторые XMPP клиенты предлагают собственное шифрование сообщений поверх протокола, к сожалению, к передаче файлов это не относится.
•    Зашифрованная передача файлов между клиентом и сервером.
•    Возможность устраивать конференции между пользователями сервиса.
•    Возможность (отключаемая) принимать сообщения от других XMPP серверов.
•    Наличие доступного клиентского ПО для различных ОС в т.ч. для Android и iOS

Требования к платформе
•    Роутер Home сегмента с поддержкой пакетов Entware  (версия ядра не ниже 3.4), USB порт (желательно 3.0). Например, Keenetic giga kn-1010.
•    «Белый» ip-адрес от провайдера (можно динамический).

Настройка
•    Регистрируем динамическую DNS запись и настраиваем ее на роутере. (Например https://www.noip.com/ )
•    Устанавливаем OPKG модули Prosody, Perl, zlib, cron

Следующих четыре пункта наверное можно упростить если использовать PHP в связке с nginx (тогда возможно получится использовать стандартный nginx из репозитория)

•    Устанавливаем компилятор (нужен для нативной сборки nginx) https://github.com/Entware/Entware-ng/wiki/Using-gcc-(native-compilation)
•    Монтируем SWAP файл на время компиляции (не уверен, что это требуется, но в моем случае была подключено) http://www.michurin.net/tools/swap-file.html
•    Собираем из исходников nginx с опцией --with-http_perl_module и SSL

https://nginx.org/en/docs/http/ngx_http_perl_module.html
https://www.openssl.org/source/ (распаковать и указать ссылку компилятору)

Параметры:

CC=/opt/bin/gcc ./configure \                                 
--prefix=/opt \                                               
--modules-path=/opt/lib/nginx \                               
--sbin-path=/opt/sbin/nginx \                                 
--conf-path=/opt/etc/nginx/nginx.conf \                       
--pid-path=/opt/var/run/nginx.pid \                           
--error-log-path=/opt/var/log/nginx/error.log \               
--http-log-path=/opt/var/log/nginx/access.log \               
--with-http_ssl_module \                                      
--with-http_perl_module \                                     
--with-http_stub_status_module \                              
--with-openssl=openssl-1.1.0i \                               
--http-client-body-temp-path=/opt/tmp/nginx/client_body_temp \
--http-proxy-temp-path=/opt/tmp/nginx/proxy_temp \            
--http-fastcgi-temp-path=/opt/tmp/nginx/fastcgi_temp \        
--http-uwsgi-temp-path=/opt/tmp/nginx/uwsgi_temp \            
--http-scgi-temp-path=/opt/tmp/nginx/scgi_temp                

•     Скачиваем Perl скрипт для обмена файлами по HTTPS (спецификация XMPP XEP-0363) https://github.com/weiss/ngx_http_upload
•    Настраиваем конфигурацию nginx и добавляем веб-сервер в автозапуск
•     Открываем порты:
80     HTTP (для получения сертификатов Let’s Encrypt)
443    HTTPS (XMPP обмен файлами)
5222    XMPP
  на порту 5582  можно включить  Telnet админкау XMPP  к нему только локальные подключения!!!
•    Получаем сертификат Let’s encrypt и настраиваем ежемесячное обновление через cron https://github.com/lukas2511/dehydrated
•    Скачиваем Prosody модуль для обмена файлами https://modules.prosody.im/mod_http_upload_external.html

•    В качестве сертификатов используем симлинки на каталог Let's encrypt
•    Настраиваем конфигурацию Prosody и запускаем XMPP сервер

Может быть позже выложу конфигурации. Если понадобится, спрашивайте Ж-)

P.S. Наверное можно использовать KeenDNS сервиc Keenetic'а только надо разобраться где взять секретный ключ от сертификата

Edited by gonsalez
Link to comment
Share on other sites

  • 1 month later...
В 17.01.2019 в 05:34, Сергей С сказал:

Скорость обмена файлами не медленная? Возможно обмениваться файлами через интернет? 

Битрейт не замерял, но субъективно скорость вполне сравнима с распространенными мессенджерами. Отправить видос на 50-100 Мб можно вполне комфортно. Тут будет обычный HTTP(S) аплоад.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...