debianize-mobilizon/support/guides/install/install.md
Thomas Citharel bba6629046
Better docs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>

Nicer docs

No 3rd stage

Add mix.deps get before docs

Add :ex_doc on test env so that it runs into CI
2019-03-18 12:10:29 +01:00

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 PeerTube 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 an .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 didn't installed the required extensions.

Front-end

Go into the js/ directory

cd js/

and install the Javascript dependencies

npm install

Finally, build the front-end with

npm 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