Installation rapide

Création d’une instance minimale à des fins de tests (nécessite Docker):

docker compose -f oci://ghcr.io/holusion/e-corpus:app up

Dans un navigateur, chargez localhost:8000.

Création du premier compte utilisateur

L’application se lance initialement en “mode ouvert”, vous permettant la création d’un premier compte utilisateur en ligne de commande.

Après avoir démarré votre serveur local, ouvrez un autre terminal et exécutez la commande suivante :

curl -XPOST -H "Content-Type: application/json" -d '{"username":"<...>", "password":"<...>", "email":"<...>", "level": "admin"}' "http://localhost:8000/users"

Remplacez <...> par votre nom d’utilisateur, votre mot de passe et votre adresse électronique.

Par la suite, d’autres comptes pourront être créés via l’interface web.

Aller plus loin

Rendez-vous à l’adresse localhost:8000 et connectez-vous à l’aide de votre nouveau compte.

À partir de là, vous pouvez créer votre première scène.

Si vous souhaitez éditer le code source, réferez-vous au guide de développement.

Pour configurer votre nouvelle instance, consultez la documentation de configuration.

Installation avancée

Pour personnaliser l’installation, copier et éditer le fichier docker-compose.yml suivant:

name: eCorpus
services:
  postgres:
    image: postgres:17
    restart: always
    shm_size: 128mb
    environment:
      POSTGRES_USER: ${POSTGRES_USER:-postgres}
      POSTGRES_DB: ${POSTGRES_DB:-postgres}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres} #change if it is ever susceptible to be externally accessible
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
      interval: 1s
      timeout: 5s
      retries: 10
    volumes:
      - postgres_data:/var/lib/postgresql/data/
  app:
    image: ghcr.io/holusion/e-corpus:main
    ports:
      - "8000:8000"
    depends_on:
      postgres:
        condition: service_healthy
    environment:
      DATABASE_URI: postgres://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@postgres:5432/${POSTGRES_DB:-postgres}
    healthcheck:
      interval: 1s
      timeout: 5s
      retries: 10
    volumes:
      - app_data:/app/files
volumes:
  postgres_data:
  app_data:

Installation sans Docker

eCorpus peut être exécuté en dehors d’un conteneur si les utilitaires nécessaires sont présents et qu’un accès à une base de données PosgreSQL est configuré.

Configuration de la base de données

Une base de données PostgreSQL (>= 15) est nécessaire. La connexion à la base de données doit être configurée via la variable d’environnement DATABASE_URI,

Alternativement, l’ensemble PGHOST, PGPORT, PGUSER (par défaut $USER), PGDATABASE (par défaut $USER) et PGPASSWORD (par défaut vide) peut être utilisé.

La viariable DATABASE_URI peut inclure toutes les options de connexion à la base de données :

postgresql://user:password@localhost:5432/mydatabase
# Authentification par certificats SSL :
postgres://host.docker.internal:5432/mydatabase?user=myuser&sslmode=verify-full&sslrootcert=/path/to/ca.pem&sslcert=/path/to/client-cert.pem&sslkey=/path/to/client-key.pem"
# ou via un socket Unix
socket:///var/run/postgresql/?db=mydatabase

Utiliser la dernière release

Voir la liste des releases sur GitHub.

curl -XGET -L https://github.com/Holusion/eCorpus/releases/download/v0.1.0/eCorpus-v0.1.0.zip
unzip eCorpus.zip
cd eCorpus
npm i --omit=dev
npm start

Eventuellement, configurer un service systemd pour exécuter l’application en arrière-plan:

[Unit]
Description=Ecorpus instance
After=network.target

[Service]
WorkingDirectory=/path/to/eCorpus
ExecStart=npm start

[Install]
WantedBy=default.target

Voir la documentation des variables d’environnement pour plus de détails sur la configuration de l’instance.

Installer depuis la branche de développement

git clone --filter=blob:none --recurse-submodules https://github.com/Holusion/eCorpus
cd eCorpus
npm i #install project-wide dependencies
(cd source/voyager && npm i --legacy-peer-deps) #install DPO-Voyager's dependency
(cd source/server && npm i) #install server build dependencies
(cd source/ui && npm i) #install ui-specific dependencies
npm run build-ui #build the client JS bundle
npm run build-server #Transpile the server down to javascript
npm start #start your new eCorpus instance