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 or directly install it on your own server. (Debian in my case).



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

that will download around 35Mb. Stay tuned.


3) Install and run composer to manage the rest of the dependencies
cd movim
curl -sS | 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/

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

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= --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>

    DocumentRoot /var/www/movim
    <Directory />
        Options FollowSymLinks SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
        AllowOverride None

    <Directory /var/www/movim>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all

ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
ProxyPass /ws/ ws://localhost:8080/


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:

Description=Movim Daemon

ExecStartPre=/usr/bin/php mud.php db --set
ExecStart=/usr/bin/php daemon.php start --url= --port=8080


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)


Loves to discover web-based apps to install on his own server@home and write articles about it


Add a comment