9e3df495dc
⭐️ This is the way.
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2.3 KiB
2.3 KiB
Development
Clone the repository:
git clone https://framagit.org/framasoft/mobilizon && cd mobilizon
git clone git@framagit.org:framasoft/mobilizon.git && cd mobilizon
Run Mobilizon:
- 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)
With Docker
- Install Docker and Docker-Compose 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.
Without Docker
- Install dependencies:
- Elixir (and Erlang)
- PostgreSQL >= 9.6 with PostGIS
- Install NodeJS (we guarantee support for the latest LTS and later)
- 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
following:
createuser -d -P mobilizon
and setmobilizon
as the password.
- Install packages
- Fetch backend Elixir dependencies with
mix deps.get
. - Go into the
cd js
directory,yarn install
and then backcd ../
- Fetch backend Elixir dependencies with
- 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
create extension if not exists postgis;
-
Run migrations:
mix ecto.migrate
.
-
- 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
in your browser
and see the website (server and client) in action.
FAQ
Issues with argon2 when creating users.
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.