la-chariotte/docs/install.md
Alexis Métaireau 193a11f2d4 chore: use django-compressor for sass files
Rather than doing the compilation manually, use
django-compressor to automate the process.
2024-01-29 19:12:41 +01:00

2.3 KiB

First, clone the project

git clone git@gitlab.com:la-chariotte/la_chariotte.git

Virtual environment

To prevent the project's necessary libraries from conflicting with those on your system, it may be beneficial to install a virtual environment:

python3 -m venv .venv

Once the virtual environment is installed, you can activate it:

source .venv/bin/activate

Installing the dependencies

!!! info "Weasyprint"

We are using [Weasyprint](https://weasyprint.readthedocs.io/) for `.pdf` generation, which requires certain packages on your machine. You can follow [the instructions on this page](https://doc.courtbouillon.org/weasyprint/stable/first_steps.html#installation) to install them.

Then, you can retrieve the Python dependencies:

pip install -e ".[dev]"

And the frontend dependencies:

=== "Yarn"

```bash
npm install
``` 

=== "npm" bash yarn install

Setting up the database

We recommend using PostgreSQL for now (installation instructions here).

For development, we recommend creating a database named chariotte accessible by the user and password of the same name.

In a PostgreSQL prompt, enter this:

CREATE ROLE chariotte WITH
    LOGIN
    NOSUPERUSER
    CREATEDB
    NOCREATEROLE
    INHERIT
    NOREPLICATION
    CONNECTION LIMIT -1
    PASSWORD 'xxxxxx';
CREATE DATABASE chariotte
    WITH
    OWNER = chariotte
    ENCODING = 'UTF8'
    CONNECTION LIMIT = -1
    IS_TEMPLATE = False;

Create a configuration file

Create a local configuration file:

from la_chariotte.settings import *

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "NAME": "chariotte",
        "USER": "chariotte",
        "PASSWORD": "chariotte",
        "HOST": "localhost",
    }
}

Start the server

Everything should now be ready to start the server:

python manage.py migrate --settings=local_settings
python manage.py runserver --settings=local_settings

To create a superuser, who will have access to the admin interface (/admin):

python manage.py createsuperuser