2.7 KiB
Install
Dependencies
Follow the steps of the dependencies guide
Database
Create the production database and a mobilizon user inside PostgreSQL:
sudo -u postgres createuser -P mobilizon
sudo -u postgres createdb -O mobilizon mobilizon_prod
Then enable extensions Mobilizon needs:
sudo -u postgres psql -c "CREATE EXTENSION postgis;" mobilizon_prod
sudo -u postgres psql -c "CREATE EXTENSION pg_trgm;" mobilizon_prod
sudo -u postgres psql -c "CREATE EXTENSION unaccent;" mobilizon_prod
Mobilizon user
Create a mobilizon
user with /home/mobilizon
home:
sudo adduser --disabled-login mobilizon
sudo -i -u mobilizon
On FreeBSD
sudo pw useradd -n mobilizon -d /home/mobilizon -s /usr/local/bin/bash -m
sudo passwd mobilizon
You can now fetch the code with git:
git clone https://framagit.org/framasoft/mobilizon live && cd live
Configuration
Backend
Install Elixir dependencies
mix deps.get
Configure your instance with
mix mobilizon.instance gen
This will ask you questions about your instance and generate a .env.prod
file.
Migration
Run database migrations: mix ecto.migrate
. You will have to do this again after most updates.
If some migrations fail, it probably means you're not using a recent enough version of PostgreSQL, or that you haven't installed the required extensions.
Front-end
Go into the js/
directory
cd js
and install the Javascript dependencies
yarn install
Finally, build the front-end with
yarn run build
Services
Systemd
Copy the support/systemd/mobilizon.service
to /etc/systemd/system
.
sudo cp support/systemd/mobilizon.service /etc/systemd/system/
Reload Systemd to detect your new file
sudo systemctl daemon-reload
And enable the service
systemctl enable --now mobilizon.service
It will run Mobilizon and enable startup on boot. You can follow the logs with
sudo journalctl -fu mobilizon.service
The Elixir server runs on port 4000 on the local interface only, so you need to add a reverse-proxy.
Reverse proxy
Nginx
Copy the file from support/nginx/mobilizon.conf
to /etc/nginx/sites-available
.
sudo cp support/nginx/mobilizon.conf /etc/nginx/sites-available
Then symlink the file into the /etc/nginx/sites-enabled
directory.
sudo ln -s /etc/nginx/sites-available/mobilizon.conf /etc/nginx/sites-enabled/
Edit the file /etc/nginx/sites-available
and adapt it to your own configuration.
Test the configuration with sudo nginx -t
and reload nginx with systemctl reload nginx
.