This is a description of the problems I encountered when trying to install a Movim "compatible" XMPP server. This is mainly a reminder to myself, in case I want to try again in some time. I have written this in afterwards, and some of the details have blurred. Be skeptical of everything you read here :-)
#movim #ejabberd #prosody
So, I've been trying to get a complete Movim "suite" running on my Raspberry Pi @ home. For me this means running the following components:
- Movim itself
- A web server for presenting the Movim interface (Nginx)
- A database server for storing Movim "stuff" (MySQL/MariaDB )
- A XMPP server for the actual transportation of messages and storage of "content"
I did already have Nginx and MySQL running. Installing Movim was quite straightforward, thanks to the instructions in the wiki. Also, I had already implemented things like DNS (a .nl domain through Yourhosting) and encryption using Letsencrypt. The tough nut to crack here is the XMPP server. I haven't been able to get this running in a way that I can fully enjoy Movim.
First up: Prosody.
I already had Prosody running as an alternative to the evil "Whatsapp". I use it mainly for chatting with my wife, who of course also has a Whatsapp account. She always looks a bit weary of me when we use Conversations. So, since it was already there, I tried this first. Despite the warnings that it has some drawbacks. Well, it works fine as a chat client, but the "news" section is disabled. The configuration section tells me that Movim is working in a "degraded" mode. Trying to get it running has at least had me configure http_upload (XEP-0363) so file uploading works better now.
Next Ejabberd (Version 15.X)
So, use my Raspberry Pi for many things. It's main purpose however is running as a media-center running Kodi. For this reason I have installed OSMC as it's operating system. It is basically Raspbian, optimized for playing media. Being based on Raspbian it means there are a lot of packages available. Amongst them Ejabberd, albeit in an old version (14.07) . I installed Ejabberd and disabled prosody. After plowing through the terrible configuration file* (in Yaml, which was new for me) in the end I finally had it running. Chat works and Movim appears in it's full glory (with "News"). The only thing missing is the ability to upload files/photo's to it. But hey, there is a module for that. I couldn't get it running though. A lot of scary errors, that I forgot to write down though :-( . I Googled a lot (well Duckduckgo'd) but the suggested configurations all led to an error and a crash of Ejabberd. So, this was no good either.
Finally, Ejabberd (17.04) from source
As there was no later version of Ejabberd as a package available, I decided to just download the source of more recent version of Ejabberd. After remembering how this compiling goes, I did a "./configure --enable-user ejabberd & make & make install". Installation was fine. But here also I have a problem with mod_http_upload. Gajim, which I use for testing my XMPP account, with the http-upload-plugin recognizes the possibility to upload a file. I see in the logging that the upload request reaches the server and is processed, without error by the server, but the file doesn't seem to end up anywhere on the server. Gajim just tells me there is a HTTP error. Conversations only tells me the upload has failed. I spent several hours trying different combinations of configurations, mainly trying alternating docroots, but to no avail.
So, nope... (for now)
So, by now I have given up for now. Perhaps I will try Ejabberd later again. With some more luck I might succeed. I have prosody running again, for chatting with my wife. If I understand correct, in the next version 0.10 (or the next 0.11) Pep persistence might be available in prosody, making it run better with Movim.
- ) Yes, I know there is a web-interface but I found the screen shots not very promising. I go the impression it was mainly for day-to-day administration, and not for setting the damn thin up. And, it more easy and therefore not nearly as cool :-) .