Logo Khaganat

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:xmpp [2016/12/28 18:03] – [XMPP] Domperssen:xmpp [2021/12/03 18:19] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== XMPP ====== ====== XMPP ======
-<WRAP center round todo 60%> 
-This article is an draft, simply some notes made of what i have found. 
-</WRAP> 
  
-===== Basic installation of the Prosody server =====+===== Talk with us on XMPP ===== 
 +==== Our rooms ====
  
-We install an XMPP server, it will serve in game, also in termThen we install Prosody, because it was Link Mauve who recommended it D (and it seems to do the joband that is what counts).+You can join us on 
 +  * [[https://chat.jabberfr.org/converse.js/khaganat@chat.khaganat.net|khaganat@chat.khaganat.net]] : the general room for the project. 
 +  * [[https://chat.jabberfr.org/converse.js/khanat@chat.khaganat.net|khanat@chat.khaganat.net]] : for talks about the universeroleplay. 
 +  * [[https://chat.jabberfr.org/converse.js/krypte@chat.khaganat.net|krypte@chat.khaganat.net]] : for technical talks.
  
-The packages under "Debian Jessie" are a bit oldIt is therefore necessary to use the source packages.+These rooms are logged and the [[https://chat.khaganat.net/logs/|logs are freely accessible]], as for IRC in the past, for 7 days. As a bonus, when logging in, you'll get the last messages((the 20 last messages are displayed depending on your client, and in any event you can scroll back the last few days: they're sent back to you by the server)), which allows to keep up with the current talk
  
-Prosody's [[https://prosody.im/download/package_repository|doc]] is fine. I translated the main one for Debian. All in root: +You just have to click on the above links to join a webchatit runs in your browser, no need for a software or registration, just choose a nickname before talking.
-   * Add sources: ''echo deb http://packages.prosody.im/debian $ (lsb_release -sc) main | Tee -/etc/apt/sources.list.d/prosody.list'' +
-   * Add the key: ''wget https://prosody.im/files/prosody-debian-packages.key -O- | Apt-key add -'' +
-   * ''Apt-get update'' +
-   * Download the correct version: ''apt-get install prosody-0.10'' +
-   * Add optional [[https://prosody.im/doc/depends|dependencies]] that should be practical: ''apt-get install lua-sec lua-event lua-zlib''+
  
-Then let's set up Prosody. As the doc says on [[https://wiki.jabberfr.org/Configuration_of_the_base_of_server_prosody_Jabber_fr]], it is necessary to quietly read ''/etc/prosody/prosody.cfg.lua''.+==== Throught a webchat ==== 
 +A webchat is nicebecause it's simple
  
-Once the server is launched(and a user created), add the user name to the value '' admins = {} ''.+You just have to [[https://chat.jabberfr.org/converse.js/khaganat@chat.khaganat.net|click here]], enter a nickname, and here you go!
  
-I un-commented the module ''blocklist'' because it seems(to me) being essential. We will see if it takes up resources... 
  
 +Caution:
 +  * Your nickname is neither saved nor registered, the only way to protect it is to create an XMPP account.
 +  * A webchat is handy to discover or for a quick talk, but you won't have as many features as with a heavy client. Though... the XMPP webchat engines are improving; with movim.eu for example, you can access a very complete tool (but maybe somewhat hard to use for a beginner).
 +  * You can log with your XMPP account into a webchat. There are several ways, for example [[https://jabberfr.org/converse/]] or [[https://movim.jabberfr.org/]]. It will automatically retrieve your contacts, your preferred rooms, and so on.
  
-The rest will show itself when it all runs!+==== Installing a client ==== 
 +A heavy client //may// be useful. But it's not as true as with IRC.
  
-I edit the server name to ''VirtualHost'' and comment the line below ''-enabled=false''+With XMPP, there are several interesting features, especially the ability to log in from various clients with the same account... hence following a talk from your PC, then your smartphone, then your browser, but still keeping the whole talk in history and receiving the messages sent to you while changing from one device to another. Incredible, isn't it ?
  
-Then ... (and this is the fun part): the certificates! we use the [[en:https_ssl|let's encrypt]], so we will have to point to the right certificates... except that prosody can not read the files in ''/etc/letsencrypt/live/*''(even with a symbolic link). So the easiest way is to copy the certificate into the prosody folder and give it reading rights.+Depending on what you prefer and your devices, there is a tremendous choice of clientsWe can propose you three picks to start: webchat, Gajim (desktop client), and if you prefer to use a console to access chats, Poezio. For anything else, let's join [[jabberfr>|JabberFR]], that's where you'll find the best french documentation((you can also join to update the threads and improve the manuals)).
  
 +It's better to create an XMPP account to use these clients: the anonymous authentication is working more or less with them. The process is described in the article about Gajim.
  
-  cp /etc/letsencrypt/live/khaganat.net/privkey.pem /etc/prosody/certs/khaganat.net.key 
-  cp /etc/letsencrypt/live/khaganat.net/fullchaim.pem /etc/prosody/certs/khaganat.net.crt 
-  chown -R prosody:prosody /etc/prosody/certs/ 
-  chmod -R 700 /etc/prosody/certs/ 
  
-<WRAP center round help 60%> +How to start with [[en:gajim|Gajim]][[fr:gajim|(fr)]]? Follow the instructions in [[en:gajim|the dedicated guide]][[fr:gajim|(fr)]]! 
-Should we do this every time we renew our encryptions? Incidentally(even though "it works"pidgin told me that the certificate "was not known"... +How to start with [[en:poezio|Poezio]][[fr:poezio|(fr)]]? Follow the other guide!
-</WRAP>+
  
 +=== Feedback by our members ===
 +You'll find [[https://xmpp.org/software/clients.html|a list of XMPP clients here]].
  
-And that's what it looks like in ''/etc/prosody/prosody.cfg.lua''(without comments): +== Android ==
-<code>VirtualHost "khaganat.net" +
-        ssl +
-                key "/etc/prosody/certs/khaganat.net.key"; +
-                certificate "/etc/prosody/certs/khaganat.net.crt"; +
-        }</code> +
- +
  
-Then we restart prosody to take the changes into account and we verify that it works: +  * [[https://conversations.im/|Conversations]] is very good. It's opensource, but paying on [[https://play.google.com/store/apps/details?id=eu.siacs.conversations|Google Play]], free if you're using  [[https://f-droid.org/packages/eu.siacs.conversations/|F-droid]] or if you [[https://github.com/siacs/Conversations|compile it yourself]]((But if you can still pay for it, it helps maintaining it. On the other side it's better for your privacy not to use GooglePlay)). It'the most user-friendly and simplest XMPP client that we tested, ideal to start with.
-    +
-   Service prosody restart +
-   Service prosody status+
  
-We also look in /var/log/prosody/prosody.* if all did go well.+== Linux ==
  
-We then create a user "directly" on the command line(since we have not yet opened the registrations!):+  * Gajim is well maintained, quite easy to take over and with all the useful features. It can be found in all major distributions. It's the one we recommend to start with and the one with which we can help you.  
 +  * [[https://poez.io/fr/|Poezio]] is an excellent client but only for an informed audience (console interface, not always packaged for your distro). It'the one to advise to people who know and like Weechat or irssi. Moreover, it's maintained by Link Mauve (who's also involved in the Khaganat project), so you'll be able to talk directly with one of the devs! 
 +  * [[https://dino.im/|Dino]] is a client which aims to be simple and user-friendly. At the time of our tests, it was still lacking maturity, which caused regular crashes and strange behaviour.  
 +  * [[https://pidgin.im/|Pidgin]] is interesting because it allows to log in to several networks (IRC, XMPP). But the XMPP part is suffering from numerous delays and that causes problematic behaviour sometimes. 
  
-   Prosodyctl adduser me@example.com+== Windows == 
 +  * Gajim is also available on Windows, in a flavor quite similar to the Linux one
  
-Then we have to open the right ports. <wrap help> +== Mac == 
-This needs to be checkedit probably depends on some configuration... +We have no feedback from Mac userswe're waiting for yours!
-</wrap>+
  
-<code>iptables -t filter -A INPUT -p tcp --dport 5222 -j ACCEPT 
-iptables -t filter -A INPUT -p tcp --dport 5269 -j ACCEPT 
-</code> 
-<WRAP center round help 60%> 
-Is this not supposed to jump to restart if we do this? 
  
-Edit: Yes, you need to backup the iptables rules with iptables-save in /etc/sysconfig/iptables+==== Anonymously or with an account ?  ==== 
 +You can anonymously use XMPP without the need for an account. It's a convenient way to get startedbut there are some limitations: 
 +  * you'll not have access to some services that need persistence, like letting other people leave you messages while you're offline. 
 +  * anonymous accounts may be used by spammers, stalkers, or for offense and so are disabled on most XMPP chat rooms. For the moment we have them enabled but in case of problems they may be disabled for a while.
  
-To verify that the ports are open: +XMPP can be used with or without an account, be it on a web- or a desktop-client. You'll always have the most functionality when you're connected with an account.
-  nmap serveur.com +
-</WRAP>+
  
-===== Add modules ===== +=== Going anonymously online === 
-See also [[https://prosody.im/doc/components]].+The easiest way to go is to use the [[https://chat.jabberfr.org/converse.js/khaganat@chat.khaganat.net|webchat]], you'll be in an anonymous session. Some other services offer by default an anonymous session, like does [[https://meet.jabberfr.org/Khaganat]].
  
-The basic server is fine, but great strength of XMPP is that you can add functionality to it via modules, or "components"The components are full flegded services, which will be launched on a server(not necessarily the one where prosody is installed)Prosody will then query the requested services by connecting to an ip address(and port) and then exchange a secret(or password) with the component. In the case of internal components, an password is not required.+You also can connect anonymously with desktop client. The condition being that the server you're connecting to accepts anonymous accountsPoezio offers a server by default. With Gajim you'll have to specify one ; JabberFR suggests ''anon.jabberfr.org''. You just have to check the option "anonymous authentication" when creating an "account" on the client : locally a profile is created but it'not really an XMPP account.
  
-If the component is already integrated in Prosody, simply activate it in it's configuration, for ex: by adding this in the configuration file which then will add the possibility to create [[https://prosody.im/doc/chatrooms|Chat rooms]]: +Please note that you'll not be able to connect everywhere as stated above, some servers reject anonymous connections or are blocking some "anon" server that are or have been spamming.es de spam
-  Component "conference.example.org" "muc"+
  
-If the component does not already exist in Prosody, it must use the XEP-0114 protocol(standard for XMPP extensions)To add an external component, Prosody must know the correct address and port(by default 5347used by most applications) and also the password(or "secret") that the component uses.+=== Creating an account without a client === 
 +This is as simple as choosing a XMPP server that allows online registrationWe have a partnership with jabberfr.org and we recommend them you to. They took over APINC domain nameswhat allows you to have choice in userID: 
 +   * https://im.apinc.org/inscription/
  
-If the component needs a subdomain to work, like "conference.example.org", you must set this subdomain on the DNS side... and ensure that it is covered by an "ssl certificate". 
  
-===== Useful modules ===== + 
-Here is a non-exhaustive list of the interesting modules, [[https://linuxfr.org/news/newnew-of-jabber|recommended by Link Mauve on this Linuxfr dispatch]]+===== Our bots ===== 
-  * Https://candy-chat.github.io/candy/: web interface to connect to a show(like webcat irc!); +For now we have less bots than we had in IRC. 
-  * Https://xmpp.org/extensions/xep-0175.html and https://modules.prosody.im/mod_muc_ban_ip.html to manage anonymous connections and tie trouble shares as needed; + 
-  * Https://biboumi.louiz.org/ to make a gateway with IRC; +[[user:pendorid|Pendorid]] is still hereShe logs, retrieves RSS feeds, and speaks: all that we needShe's based on [[fr:botlogmauve|Botlogmauve]], a homemade bot. 
-  * [[Https://xmpp.org/extensions/xep-0198.html|Stream Management(XEP-0198)]), which makes it possible to know whether all messages have been received from the server and vice versaThan restoring a session that ended unexpectedly(for network problems, for example); + 
-  * [[Https://xmpp.org/extensions/xep-0280.html|Message Carbons(XEP-0280)]], which causes the server to duplicate messages sent or received to different connected clients, extension, ensuring seamless transition from one device to another; +===== Installing your own server ===== 
-  * [[Https://xmpp.org/extensions/xep-0313.html|Message Archive Management(XEP-0313)]], which is the reference specification for server-side XMPP message archives, Logs of what was said; +Because selfhosting is good! 
-  [[Https://xmpp.org/extensions/xep-0352.html|Client State Indication(XEP-0352)]], which allows client to report its idle state to the serverin which case the server will Permission to filter a number of non-essential items when the client is idle, thereby decreasing the bandwidth used and thereby improving autonomy; + 
-  [[Https://tools.ietf.org/html/rfc7395|XMPP Sub protocol for WebSocket(RFC 7395)]], which comes to Join [[https://xmpp.org/extensions/xep-0206.html|XMPP over BOSH(XEP-0206)]] to provide Web clients with a way to connect directly to the serverthis time sticking better To the operation by conventional TCP, while allowing to bypass the blocking set up on certain networks; +<WRAP center round tip 60%> 
-  * [[Https://xmpp.org/extensions/xep-0191.html|Blocking Command(XEP-0191)]] for filtering unwanted communications, in a simple way to implement for clients and effective on the server side; +It's absolutely *not* a requirement prior to using XMPP. If you just want to converse with usthis section is not for you. 
-  [[Https://xmpp.org/extensions/xep-0363.html|HTTP Upload(XEP-0363)]], to allow users to send small files to the server, some clients like Conversations or Gajim 'Use to send images inside messages; + 
-  * [[Https://xmpp.org/extensions/xep-0357.html|Push Notifications(XEP-0357)]], for mobile clients running on a restricted operating system for connections that remain open (iOS, Windows Phone, Android 6+), notifies the manufacturer's server that the client has received a message, which will transfer the message to the client for wake-up. It should be noted that at no time have the application developers, Apple, Google or Microsoft servers accessed either the content or the sender of the message: only "such phone has received a message" .+Our XMPP services are currenty hosted by [[https://jabberfr.org|jabberfr.org]], what allows us to have as much services as they have instanceswithout having the hassle to manage all that... thank you ! 
 +</WRAP> 
 + 
 +More at [[en:xmpp_server]][[fr:xmpp_server|(fr)]].
  
  
  
  
-{{TagServer}}+{{tag>XMPP bot}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
en/xmpp.1482948210.txt.gz · Last modified: (external edit)

Licences Mentions légales Accueil du site Contact Inclusion