Snabbmeddelanden med Prosody på Debian Squeeze

prosodi

Hej kompisar!. Idag presenterar jag en modern och flexibel server för dig Jabber / XMPP, skriven på språket lua och tidigare känd som Lxmppd. Det har egenskaper som att vara ett system med flera plattformar, med mycket låg resursförbrukning, enkel att använda och utbyggbar. Och utan vidare, låt oss gå till affärer! De kan verka som många aspekter, men de är verkligen enkla och korta. Vi får se nu:

  • Basserver
  • Vi installerar nödvändiga paket
  • Låt oss lära oss att konfigurera
  • Vi konfigurerar globala parametrar
  • Vi skapar och konfigurerar den virtuella värden
  • Vi genererar SSL / TLS-certifikat
  • Vi aktiverar värden
  • Vi skapar den första användaren
  • Vi registrerar vår Prosody i en DNS
  • Vi kontrollerar allt

Basserver
Den låga resursförbrukningen gör att vi kan installera Prosody även i vår egen arbetsstation och tillhandahålla chattjänsten från den.

Vi installerar nödvändiga paket
För att bekanta oss med Prosody kommer vi att använda de officiella paketen som finns i Squeeze-arkivet:

aptitude installera prosody liblua5.1-sec0

Låt oss lära oss att konfigurera
Låt oss läsa medföljande dokumentation /usr/share/doc/prosody/doc/coding_style.txt, för att bekanta oss med det format som används i konfigurationsfilerna. Låt oss gå till mappen / etc / prosody och vi listar befintliga filer och kataloger. Namnen på varje mapp eller fil är intuitiva och anger tydligt vad de används för:

  • cert: Katalog där SSL / TLS-certifikat och deras privata nycklar kommer att lagras.
  • conf.avail: Katalog som innehåller konfigurationsfilerna för de virtuella värdarna som vi förklarar tillgängliga. Det fungerar väldigt likt det som sågs i tidigare inlägg om webbservrar, som i fallet med Nginx-platsmappen.
  • conf.d: Mapp där de direkta länkarna för virtuella värdar deklareras i conf.avil och att vi vill möjliggöra.
  • prosody.cfg.lua: huvudfil för Prosody-konfigurationen.
  • README: Fil som ger oss en "ledtråd" för att gå vidare. Sluta inte läsa det!

Med det vi har läst hittills kan vi prova en minimal initial konfiguration.

Vi konfigurerar de globala parametrarna
Vi studerar noggrant huvudkonfigurationsfilen/etc/prosody/prosody.cfg.lua, som jag gjorde en gratis översättning till och som vi kan ladda ner i slutet. Låt oss spara den ursprungliga filen som installerats med följande kommando:

cp /etc/prosody/prosody.cfg.lua /etc/prosody/prosody.cfg.lua.original

Vi tömmer konfigurationsfilen. Med nano, vi redigerar prosody.cfg.lua redan tömd och klistra in innehållet i den nedladdade exempelfilen. Vi modifierar det efter våra behov och sparar med det vanliga ctl + eller. Senare kontrollerar vi syntaxen för konfigurationsfilen:

cp / dev / null /etc/prosody/prosody.cfg.lua nano /etc/prosody/prosody.cfg.lua luac -p /etc/prosdy/prosody.cfg.lua

Och om du inte returnerar något meddelande är det att allt är bra.

Vi skapar och konfigurerar den virtuella värden
Filen till vår virtuella värd, vi skapar den i katalogen /etc/prosody/conf.avail/med värdnamnet plus tillägget .conf.lua, och vi skapar det från filenexempel.com.cfg.lua finns i den mappen:

mv /etc/prosody/conf.avail/example.com.cfg.lua /etc/prosody/conf.avail/web.amigos.cu.cfg.lua nano /etc/prosody/conf.avail/web.amigos.cu .cfg.lua

Vi ändrar filen med rätt parametrar efter våra behov. Vi kan ladda ner en version som överensstämmer med detta exempel i slutet av inlägget. Glöm inte att radera raden enabled = false - Ta bort den här raden för att aktivera den här värden.

Vi genererar SSL / TLS-certifikat
När de utför kommandot för att generera certifikaten kommer de att be oss om information relaterat till vårt företag.

cd / etc / prosody / certs openssl req -ny -x509 -dagars 365 -noder -out "web.amigos.cu.crt" -keyout "web.amigos.cu.key"

Vi kontrollerar att certifikaten genererades korrekt av ls-l.

Vi aktiverar värden
För att aktivera värden som deklareras i /etc/prosody/conf.avail/web.amigos.cu.cfg.luamåste vi skapa en symbolisk länk för den filen i mappen conf.d. Då måste vi starta om tjänsten:

ln -s /etc/prosody/conf.avail/web.amigos.cu.cfg.lua /etc/prosody/conf.d/web.amigos.cu.cfg.lua /etc/init.d/prosody starta om

Tips: Öppna en dedikerad konsol för att visa Prosody-loggmeddelanden med kommandot svans -f /var/log/prosody/prosody.log. Om den sista raden säger "Demoniserat framgångsrikt till PID ####", då fungerar allt till Kilo!. Om du råkar få ett felmeddelande kan du behöva döda processen manuellt "Lua" att den körs innan du startar om Prosody. Att känna till pid del Lua, springps -e | grep lua. För att döda processen, döda -döda #pid del lua.

Vi skapar den första användaren
För att skapa användare använder vi kommandot prosodyktl som följer:

prosodyctl adduser admin@web.amigos.cu

Kommandot kommer att be oss om "Lösenord" av användaren. Observera att vi skapar användaren "Administration", som vi förklarar som Prosody-administratör i den globala konfigurationsfilen prosody.cfg.lua.

VI REKOMMENDERAR Använd INTE kommandot prosodyktl för att stoppa, starta eller starta om tjänsten, men gör det med traditionella metoder som:

/etc/init.d/prosody {start | stop | restart | reload} invoke-rc.d prosody {start | stop | restart | reload} service prosody {start | stop | restart | reload}

Vi registrerar vår Prosody i en DNS
Tjänsten för snabbmeddelanden är starkt beroende av DNS-tjänsten. Varje användare identifieras av sin adress eller JID i vägen för användare @ domän, där domänen anger servern där kontot är lagrat. För att användaren ska kunna ansluta och logga in är det nödvändigt att hitta serverns IP-adress. På samma sätt måste fjärrservrar kontakta användare @ domän för att skicka ett meddelande till dig. Därför är det nödvändigt att Prosody-servern har en posttyp A i DNS-servern på vårt LAN. Till exempel:

192.168.10.20 IN A web.amigos.cu.

Vi kontrollerar allt
Vi har redan vår Prosody-server igång. Låt oss chatta då! Installera Pidgin eller Psi, eller välj den XMPP-klient du väljer och anslut till servern. Om han lyckas beror det på att han följde innehållet i den här artikeln till punkt och pricka. Om inte, fråga, det är vad bloggar som detta skapades för. Ahhh, om du vill chatta från en konsol, installera Finch.

Vi gjorde ett paket med dokumentationen från den officiella webbplatsen för Prosody, som vi hoppas kommer att vara användbar. De som vill ladda ner paketen direkt från Prosody-arkivet, besök Prosody-paketförvar.

Till alla, lycka till och glad chatt!

Ladda ner exempelfiler

Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

20 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras.

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   eliotime3000 sade

    Bra förslag. Låt oss se om jag tar mig tid att skapa en klient för snabbmeddelanden.

    1.    elav sade

      En annan XMPP-klient? Man, jag tror inte att det är nödvändigt om du inte gör det för att lära dig och sätta det som ditt mål. De är redan Pidgin, Kopete, KDE-Telephaty, Empathy, PSI ... hur som helst.

      1.    djägare sade

        Så mycket som en annan klient tror jag inte, men det skulle vara kul att spela med XMPP API och skicka meddelanden från applikationer.

      2.    Rötter87 sade

        Det skulle vara bra om du till exempel behöver göra en slags chatt för ett internt nätverk eller något liknande

      3.    Braybaut sade

        Om det är sant, men den här guiden används för att implementera en XMPP-klient i gratis nätverk

        1.    djägare sade

          Denna handledning är för servern, det finns redan några gratis klienter.

      4.    eliotime3000 sade

        För Windows skulle det vara mycket användbart (i avsaknad av den mytiska Messenger skulle det vara bra att göra en bättre, eller hur?).

  2.   Federico A. Valdes Toujague sade

    Tack alla för dina kommentarer. Min dröm är att ha en webbklient för att chatta på mitt LAN. Jag installerade ejabberd med JwChat och eftersom gränssnittet i Squeeze var klibbigt (och ful och buggy), försökte jag inte ens det. Jag har provat Yaws webbserver och dess Yaws-chat webbklient och kunde inte få den att fungera ordentligt. De laddade ner PHPFreeChat och ingenting. Med Lennys Drupal 6 försökte jag konfigurera chatt-plugins och jag blev trött då, för flera år sedan. Jag drömmer om att inte bero på installationen av klienter och inte chatta med en webbläsare mer. Utmaningen lanseras.

    1.    eliotime3000 sade

      Du är välkommen, kompis. Låt oss se om jag kan ladda ner Wheezy DVD1 för att göra en handledning om hur jag installerar ZPanelX i den nya versionen av Debian Stable (jag hoppas att ZPanel-utvecklarna inte överger Ubuntu 12.04 LTS-stödet, för annars kunde jag inte göra en automatiserad installation av den kontrollpanelen som jag tyckte bra när jag testade den på Windows).

  3.   Nytt för Debian sade

    Hej, om jag installerade Debian 7 för en liten stund sedan. Men jag har inte internet, det säger att jag saknar firmware. Det är en USB-tp-länk tl-wn321g. Kan jag ladda ner det från Windows? Ledsen att fråga här är att jag inte vill registrera mig i något debianforum, jag kan inte engelska särskilt bra.

    1.    eliotime3000 sade

      Om TP-Link har Altheros-chipset ska den känna igen den utan komplikationer.

      Ta reda på om din TP-Link USB-modell har Altheros-chipset, och notera maskinvaru-ID.

    2.    kommentator sade

      Om du vill ladda ner iso här är de debian isos men de levereras med icke-gratis drivrutiner och firmware.

      http://live.debian.net/cdimage/release/7.0.0+nonfree/i386/iso-hybrid/

  4.   Rötter87 sade

    Jag skulle vilja ha en bra tuto på asterisk hehehe

    1.    Julio Cesar sade

      Jag rekommenderar att du börjar med att använda Trixbox CE eller Elastix båda är baserade på Asterisk

      http://www.elastix.org/

      http://www.trixbox.com/

  5.   MSX sade

    Mycket bra guide, tack så mycket 🙂

  6.   Alejandrodez sade

    Utmärkt, tack så mycket det har varit väldigt användbart.

  7.   @Jlcmux sade

    Jag kommer att testa det i Mesh Free Network som vi implementerar i min stad. Då ska jag berätta hur jag mår med det här.

    Skål.!

  8.   @Jlcmux sade

    Vad synd. Jag stannade i det sista steget. Var konfigurerar jag DNS? Så synd att vara den enda som frågar det här haha

  9.   PICCORO Lenz McKAY sade

    Jag har några mycket intressanta frågor:

    Har du känt eller finns det erfarenhet av en installation i produktion av prosodi för 3000 användare där det samtidigt är minst 1000 chattar samtidigt?

    Stöd för: filöverföring, VIP, och är detta den viktigaste konversationsloggen?

    MILJÖ: 3 8 användare, med inaktiverad webbregistrering och skript via server som anropas genom cgi-räkor för användarregistrering och manipulation, i en 110-kärnig DELL T8 med XNUMX GB ram för exklusiv användning eller för ejabberd i lenny med ported erland och ejabberd

    Bollen sväller, efter att ha rymt många problem i ejabberd, jag tycker det här, verkligen det här får mig att känna att jag slösat bort min tid ..

    1.    Federico A. Valdes Toujague sade

      Mina hälsningar PICCORO Lenz McKAY !!!. Jag rekommenderar att du besöker Prosodys officiella webbplats http://prosody.imoch utöka informationen. Jag har ingen erfarenhet över 1000 klienter som chattar samtidigt med Prosody. Och jag tror inte att du slösade bort din tid med Ejabberd. Det är ett beslut du fattade på Lenys tid. Förresten, erkänner jag att Ejabberd var den första jag installerade på mitt affärsland, där kanske 50 eller 60 användare chattade tillsammans. Servern visste inte ens om det och den hade bara 512 megabyte RAM. 🙂 Och ja, jag hade svårt att ställa in det ordentligt. Prosody är väldigt enkel, men jag uppmanar dig att ta reda på mer om dess möjligheter. Det är inte det jag tvivlar på honom, utan att jag inte har den erfarenhet som du behöver.