2019-03-14 15:00:34 +01:00
# Development
2019-11-06 23:42:06 +01:00
Clone the repository:
2020-01-30 20:27:25 +01:00
2020-06-03 15:10:40 +02:00
=== "HTTPS"
``` bash
git clone https://framagit.org/framasoft/mobilizon & & cd mobilizon
```
2019-11-06 23:42:06 +01:00
2020-06-03 15:10:40 +02:00
=== "SSH"
``` bash
git clone git@framagit.org:framasoft/mobilizon.git & & cd mobilizon
```
2019-11-06 23:42:06 +01:00
Run Mobilizon:
2019-11-17 18:11:33 +01:00
2020-06-03 15:10:40 +02:00
+ with Docker and Docker-Compose (**Recommended**)
+ without Docker and Docker-Compose (This involves more work on your part, use Docker and Docker-Compose if you can)
2019-11-06 23:42:06 +01:00
2020-01-30 20:27:25 +01:00
## With Docker
2019-11-06 23:42:06 +01:00
2020-06-03 15:10:40 +02:00
+ Install [Docker ](https://docs.docker.com/install/#supported-platforms ) and [Docker-Compose ](https://docs.docker.com/compose/install/ ) for your system.
+ Run `make start` to build, then launch a database container and an API container.
+ Follow the progress of the build with `docker-compose logs -f` .
+ Access `localhost:4000` in your browser once the containers are fully built and launched.
2019-11-06 23:42:06 +01:00
2020-01-30 20:27:25 +01:00
## Without Docker
2019-03-14 15:00:34 +01:00
2020-06-03 15:10:40 +02:00
+ Install dependencies:
- [Elixir (and Erlang) ](https://elixir-lang.org/install.html )
- PostgreSQL >= 9.6 with PostGIS
- [Install NodeJS ](https://nodejs.org/en/download/ ) (we guarantee support for the latest LTS and later) ![](https://img.shields.io/badge/node-%3E%3D%2012.0+-brightgreen.svg)
+ Start services:
- Start postgres
+ Setup services:
- Make sure the postgis extension is installed on your system.
- Create a postgres user with database creation capabilities, using the
2019-03-14 15:00:34 +01:00
following: `createuser -d -P mobilizon` and set `mobilizon` as the password.
2020-06-03 15:10:40 +02:00
+ Install packages
- Fetch backend Elixir dependencies with `mix deps.get` .
- Go into the `cd js` directory, `yarn install` and then back `cd ../`
+ Setup
- Create your database with `mix ecto.create` .
- Create the postgis extension on the database with a postgres user that has
superuser capabilities: `psql mobilizon_dev`
```psql
create extension if not exists postgis;
```
2019-03-14 15:00:34 +01:00
* Run migrations: `mix ecto.migrate` .
2020-06-01 22:28:20 +02:00
* Generate a Guardian secret with `mix guardian.gen.secret` :
```bash
$ mix guardian.gen.secret
$ TTRcgYH/Y0rk8ph5fqExVWRWjK03cqymfTa70leljmLMsBChtm+6MM+pRrL76Io3
```
* Create a `config/dev.secret.exs` file and add the Guardian config:
```elixir
import Config
config :mobilizon, Mobilizon.Web.Auth.Guardian,
secret_key: "TTRcgYH/Y0rk8ph5fqExVWRWjK03cqymfTa70leljmLMsBChtm+6MM+pRrL76Io3"
```
2020-06-03 15:10:40 +02:00
2020-06-01 22:28:20 +02:00
* Generate your first user with the `mix mobilizon.users.new` task
```bash
2020-06-03 13:40:31 +02:00
$ mix mobilizon.users.new john.doe@localhost.com --admin
2020-06-01 22:28:20 +02:00
An user has been created with the following information:
- email: john.doe@localhost.com
- password: r/EKpKr5o7ngQY+r
- Role: user
The user will be prompted to create a new profile after login for the first time.
```
2019-03-14 15:00:34 +01:00
2020-06-03 15:10:40 +02:00
* Start Phoenix endpoint with `mix phx.server` . The client development server will also automatically be launched and will reload on file change.
Now you can visit [ `localhost:4000` ](http://localhost:4000 ) in your browser
2019-11-17 18:11:33 +01:00
and see the website (server *and* client) in action.
2020-01-30 20:27:25 +01:00
## FAQ
### Issues with argon2 when creating users.
2020-06-03 13:40:31 +02:00
This is because you installed deps through Docker and are now using Mobilizon without it, or the other way around. Just `rm -r deps/argon2_elixir` and trigger `mix deps.get` again.