mobilizon/support/guides/install/install.md

2.2 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

Testing

Go back to the previous directory

cd ..

Now try to run the server

mix phx.server

It runs on port 4000.

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