Prosody to serwer XMPP, który łączy w sobie lekkość i prostotę z potężnymi możliwościami. Wspiera wszystko, co potrzebne do sprawnego komunikowania się – od podstawowych czatów, przez grupowe dyskusje, aż po zaawansowane funkcje bezpieczeństwa. Dodatkowo, dzięki modułowej budowie, możesz łatwo dostosować serwer do swoich potrzeb.
Instalacja Prosody:
apt install prosody
Dodatkowe moduły powiadomienia itd:
apt -y install prosody-modules
Edycja pliku konfiguracyjnego:
vim /etc/prosody/prosody.cfg.lua
Podstawowe parametry do zmiany:
VirtualHost "twoja_domena.com" ssl = { key = "/etc/prosody/certs/twoj_cert.com.key"; certificate = "/etc/prosody/certs/twoj_cert.com.crt"; }
Ważne jest aby do plików certyfikatu XMPP miał dostęp, dlatego zmień uprawnienia:
sudo chown prosody: /etc/prosody/certs/fullchain.pem sudo chown prosody: /etc/prosody/certs/privkey.pem
Aby Twój serwer Prosody działał prawidłowo i oferował podstawowe funkcje protokołu XMPP, musisz włączyć zestaw podstawowych modułów. Oto lista rekomendowanych modułów, które powinieneś rozważyć do włączenia w swojej konfiguracji:
modules_enabled = { "cloud_notify"; -- Powiadomienia w klientach - WAŻNE "roster"; -- Pozwala użytkownikom zarządzać swoimi kontaktami "saslauth"; -- Autentykacja w SASL "tls"; -- Dodaje wsparcie dla szyfrowania TLS "dialback"; -- Umożliwia serwerom weryfikowanie siebie nawzajem "disco"; -- Service Discovery "carbons"; -- Kopie wiadomości dla wielu urządzeń "pep"; -- Publikuj i subskrybuj informacje o obecności "private"; -- Prywatne przechowywanie danych na serwerze "blocklist"; -- Pozwala użytkownikom blokować inne kontakty "vcard4"; -- vCard support "vcard_legacy"; -- Obsługa starszych wersji vCard "limits"; -- Umożliwia ograniczanie obciążenia serwera "groups"; -- Zarządzanie grupami użytkowników "register"; -- Rejestracja kont przez klientów "mam"; -- Message Archive Management; archiwizacja wiadomości "csi_simple"; -- Simple Client State Indication "http_upload"; -- HTTP file upload "version"; -- Odpowiada na zapytania o wersję "uptime"; -- Czas działania serwera "time"; -- Umożliwia klientom zapytanie serwera o czas "ping"; -- XMPP Ping "admin_adhoc"; -- Komendy administracyjne "bosh"; -- BOSH (dla połączeń HTTP) "websocket"; -- WebSocket support "smacks"; -- Stream Management (XEP-0198) };
Mój plik konfiguracyjny sekcja Modules
modules_enabled = { "cloud_notify"; "mam"; "smacks"; "pep_plus"; -- Wymaga pobrania z zewnętrznych źródeł, sprawdź https://modules.prosody.im/ "muc"; "amp"; "csi_simple"; -- Generally required "roster"; -- Allow users to have a roster. Recommended ;) "saslauth"; -- Authentication for clients and servers. Recommended if you want to log in. "tls"; -- Add support for secure TLS on c2s/s2s connections "dialback"; -- s2s dialback support "disco"; -- Service discovery -- Not essential, but recommended "carbons"; -- Keep multiple clients in sync "pep"; -- Enables users to publish their avatar, mood, activity, playing music and more "private"; -- Private XML storage (for room bookmarks, etc.) "blocklist"; -- Allow users to block communications with other users "vcard4"; -- User profiles (stored in PEP) "vcard_legacy"; -- Conversion between legacy vCard and PEP Avatar, vcard -- Nice to have "version"; -- Replies to server version requests "uptime"; -- Report how long server has been running "time"; -- Let others know the time here on this server "ping"; -- Replies to XMPP pings with pongs "register"; -- Allow users to register on this server using a client and change passwords --"mam"; -- Store messages in an archive and allow users to access it --"csi_simple"; -- Simple Mobile optimizations -- Admin interfaces "admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands --"admin_telnet"; -- Opens telnet console interface on localhost port 5582 -- HTTP modules --"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP" --"websocket"; -- XMPP over WebSockets --"http_files"; -- Serve static files from a directory over HTTP -- Other specific functionality "posix"; -- POSIX functionality, sends server to background, enables syslog, etc. --"limits"; -- Enable bandwidth limiting for XMPP connections --"groups"; -- Shared roster support --"server_contact_info"; -- Publish contact information for this service --"announce"; -- Send announcement to all online users --"welcome"; -- Welcome users who register accounts --"watchregistrations"; -- Alert admins of registrations --"motd"; -- Send a message to users when they log in --"legacyauth"; -- Legacy authentication. Only used by some old clients and bots. --"proxy65"; -- Enables a file transfer proxy service which clients behind NAT can use }
Lista komend
Sprawdzenie konfiguracji:
prosodyctl check config
Status serwera:
systemctl status prosody
Utworzenie użytkownika:
prosodyctl adduser uzytkownika@krawaczynski.pl
Przeładowanie ustawień bez restartu serwera:
prosodyctl reload
Restart serwera:
systemctl reload prosody
Sprawdź czy serwer nasłuchuje na portach:
sudo netstat -tuln | grep -E '5222|5269'
Logi XMPP:
sudo tail -f /var/log/prosody/prosody.log
Dokumentacja https://prosody.im/doc/