Movim, the decentralized social network
Movim is a social network, based on XMPP, with Chat and chatrooms, news & communities features.
Simple, light and elegant, Movim client can be installed on your desktop or smartphone.
Movim has been here for years and I never really had time to write a tutorial. With their recent new version I decided to give it a try and write the installation steps.
It has always been a project I care and I am happy to see how far and well they went.
Movim, based on XMPP (Jabber) is basically a web interface and works as a social network. You can host your own XMPP server or leverage exisiting one (or their own) and then install the web interface.
You can install their client on your Windows/Linux/MacOS desktop or your Android phone.
Their chat / conversation feature is quite elegant and simple to use (1 click to insert pictures, synchronized discussions on all your devices, offline mode, sent/read notification,…). They also have a News and Communities parts. The news feature is ads-free and really put the focus on your content / publications. You can also make it public, to become your blog. On the communities side, it is basically for you to create or connect with various communities/group on the XMPP network.
We will probably have very soon some new features through Movim Hello with calls/video-conferences.
Interested to give it a try? You can try my own instance at mo.freedif.org or directly install it on your own server. (Debian in my case).
Installation
Written in PHP, Movim has few dependencies. First you will need Apache, PHP and MySQL (or MariaDB) installed. I will not cover that part on this tutorial as you probably already have them. Or simply follow my previous tutorial on how to install a LAMP server.
1) Install the required dependencies
Install the required PHP dependencies by running:
sudo apt-get install php-curl php-gd php-mysql php-xml php-imagick -y
2) Install git and clone their repo
sudo apt-get install git
cd /var/www
git clone https://github.com/movim/movim.git
that will download around 35Mb. Stay tuned.
3) Install and run composer to manage the rest of the dependencies
cd movim
curl -sS https://getcomposer.org/installer | php
php composer.phar install
4) Create and configure the database
You will need a MySQL or MariaDB database. I personally use phpmyadmin to create the database movim and the user movim with the permissions on this database. It should be pretty straightforward. Once done, we will configure the database info of movim:
cd config/
cp db.example.inc.php db.inc.php
nano db.inc.php
and update the file with the credentials of your database.
5) Assign the right permission to your movim folder
We will need to run the movim daemon as the web user (www-data), so first ensure www-data is the owner of the movim folder by running:
chown -R www-data:www-data /var/www/movim/
chmod -R u+rwx /var/www/movim/
6) Configure and start Movim
First, I suggest you to have a domain name or subdomain name ready at this stage and with HTTPS connection. (Let’s use Let’s Encrypt). Like my mo.freedif.org.
Then we will log-in as www-data user, configure the db and start movim’s daemon, by doing:
sudo su -l www-data -s /bin/bash
cd /var/www/movim
php mud.php db --set
php mud.php config --username=USERNAME --password=PASSWORD
php daemon.php start --url=https://mo.freedif.org --port=8080
Change USERNAME and PASSWORD by the credentials you want for the admin panel of Movim.
Once done, you should now have access to your movim instance through your URL:8080
7) Use a dedicated Virtualhost
It is not very user-friendly to use a port in a URL to access a service. Best is to create a vhost (Virtualhost) file to forward your subdomain or domain name to directly point to the service, with no needs for the port.
For this, you will need to use the proxy_wstunnel feature.
sudo a2enmod proxy_wstunnel
Then modify or create a vhost:
sudo nano /etc/apache2/sites-available/movim.conf
Here is mine:
<VirtualHost *:80>
ServerAdmin karibu@freedif.org
ServerName mo.freedif.org
DocumentRoot /var/www/movim
<Directory />
Options FollowSymLinks SymLinksIfOwnerMatch
Order allow,deny
Allow from all
AllowOverride None
</Directory>
<Directory /var/www/movim>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /ws/ ws://localhost:8080/
</VirtualHost>
Once done, simply reload apache:
sudo service apache2 reload
You should now have access to Movim directly by pointing to your URL.
8) Movim at startup
To enable Movim at startup, you canput it as a service using systemd
sudo nano /etc/systemd/system/movim.service
Here is mine:
[Unit]
Description=Movim Daemon
After=network.target
[Service]
User=www-data
WorkingDirectory=/var/www/movim
ExecStartPre=/usr/bin/php mud.php db --set
ExecStart=/usr/bin/php daemon.php start --url=https://mo.freedif.org --port=8080
Restart=always
[Install]
WantedBy=multi-user.target
Once done, simply enable it and start it
sudo systemctl enable movim.service
sudo systemctl start movim.service
That’s it! You should have a fully functional Movim instance now 😉
If you like the project, donate. (paypal)
Add a comment