mobilizon/support/guides/install/install.md

133 lines
2.2 KiB
Markdown
Raw Normal View History

# Install
## Dependencies
Follow the steps of the [dependencies guide](dependencies.html)
## Database
Create the production database and a mobilizon user inside PostgreSQL:
```bash
sudo -u postgres createuser -P mobilizon
sudo -u postgres createdb -O mobilizon mobilizon_prod
```
2019-05-19 09:38:09 +00:00
Then enable extensions Mobilizon needs:
```bash
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
```
2019-05-19 09:38:09 +00:00
## Mobilizon user
Create a `mobilizon` user with `/home/mobilizon` home:
```bash
sudo adduser --disabled-login mobilizon
sudo -i -u mobilizon
```
**On FreeBSD**
```bash
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:
```bash
git clone https://framagit.org/framasoft/mobilizon live && cd live
```
## Configuration
### Backend
2019-05-19 09:38:09 +00:00
Install Elixir dependencies
```bash
mix deps.get
```
Configure your instance with
```bash
mix mobilizon.instance gen
```
2019-05-19 09:38:09 +00:00
This will ask you questions about your instance and generate a `.env.prod` file.
### Migration
2019-05-19 09:38:09 +00:00
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,
2019-05-19 09:38:09 +00:00
or that you haven't installed [the required extensions](#database).
### Front-end
Go into the `js/` directory
```bash
2019-05-19 09:38:09 +00:00
cd js
```
2019-05-19 09:38:09 +00:00
and install the Javascript dependencies
2019-05-19 09:38:09 +00:00
```bash
yarn install
```
2019-05-19 09:38:09 +00:00
Finally, build the front-end with
```bash
yarn run build
```
2019-05-19 09:38:09 +00:00
### Testing
Go back to the previous directory
2019-05-19 09:38:09 +00:00
```bash
2019-05-19 09:38:09 +00:00
cd ..
```
2019-05-19 09:38:09 +00:00
Now try to run the server
```bash
mix phx.server
```
It runs on port 4000.
## Services
### Systemd
2019-05-19 09:38:09 +00:00
Copy the `support/systemd/mobilizon.service` to `/etc/systemd/system`.
```bash
sudo cp support/systemd/mobilizon.service /etc/systemd/system/
```
Reload Systemd to detect your new file
```bash
sudo systemctl daemon-reload
```
2019-05-19 09:38:09 +00:00
And enable the service
```bash
systemctl enable --now mobilizon.service
```
2019-05-19 09:38:09 +00:00
It will run Mobilizon and enable startup on boot. You can follow the logs with
```bash
sudo journalctl -fu mobilizon.service
```