Aller au contenu

Installation

Prérequis

  • Une machine qui reste allumée : un serveur personnel, un NAS, un Raspberry Pi 4 ou 5, une machine virtuelle. L'image existe pour amd64 et arm64.
  • Docker avec Compose, ou Podman avec podman compose.
  • Environ 125 Mo à télécharger, 350 Mo sur le disque, plus vos documents. L'image inclut Tesseract (environ 100 Mo), le programme qui lit les pièces d'identité.
  • Arca écoute sur le port 8000, en HTTP simple : joignez-le sur votre réseau local, ou placez un proxy inverse HTTPS devant (voir plus bas).

Installer avec Docker

Choisissez la dernière version parmi les étiquettes du dépôt, par exemple v0.1.0 :

mkdir arca && cd arca
curl -fsSLO https://gitlab.com/r0d0lphe/arca/-/raw/v0.1.0/compose.yaml
curl -fsSL -o .env https://gitlab.com/r0d0lphe/arca/-/raw/v0.1.0/.env.example

Modifiez .env avant le premier démarrage :

  • ARCA_SECRET_KEY : à générer avec python3 -c "import secrets; print(secrets.token_urlsafe(50))". Elle ne contient aucun $, que Compose interpréterait en tronquant la clé.
  • ARCA_ALLOWED_HOSTS : les noms ou adresses que vous tapez pour joindre Arca (arca.lan,192.168.1.20).
  • ARCA_TIME_ZONE : votre fuseau horaire (Europe/Paris) ; il détermine ce qu'est aujourd'hui.

Chaque réglage est décrit dans Configuration. Démarrez ensuite Arca et créez votre compte :

docker compose up -d
docker compose exec arca python manage.py createsuperuser

Ouvrez http://<adresse>:8000, connectez-vous, puis suivez Premiers pas. Les données (base et documents) sont dans le volume arca-data, les sauvegardes dans arca-backups. À chaque démarrage, le conteneur applique les migrations de la base et lance un contrôle d'intégrité rapide.

Activez tout de suite les sauvegardes dans Sauvegardes et conservez la clé de secours : voir Sauvegardes automatiques. Les données et documents ne sont pas chiffrés sur le disque : lisez Sécurité et confidentialité.

Podman fonctionne de la même façon : utilisez podman à la place de docker.

Installer depuis les sources

Avec Docker, depuis un clone, construisez l'image vous-même :

git clone https://gitlab.com/r0d0lphe/arca.git arca && cd arca
cp .env.example .env
export COMPOSE_FILE=compose.yaml:compose.build.yaml
docker compose up -d --build

Gardez COMPOSE_FILE défini pour toute commande docker compose dans ce dossier (dans le profil de votre shell, ou en ligne de .env). Il remplace le chargement automatique de compose.override.yaml : si vous en utilisez un, ajoutez-le à la liste.

Sans Docker :

uv sync
export ARCA_SECRET_KEY=… ARCA_ALLOWED_HOSTS=… ARCA_DATA_DIR=/chemin/des/donnees
uv run manage.py migrate
uv run manage.py createsuperuser
uv run --group docs mkdocs build      # cette documentation
uv run manage.py collectstatic --noinput
uv run gunicorn config.wsgi --bind 0.0.0.0:8000

La lecture des pièces d'identité d'après une photo demande le programme Tesseract, que l'image Docker inclut. Depuis les sources, il est facultatif : installez-le avec apt install tesseract-ocr (Debian, Ubuntu) ou pacman -S tesseract tesseract-data-eng (Arch). Sans lui, l'ajout rapide fonctionne comme avant, sans écran de photo ; la page Intégrité l'indique. Arca apporte son propre modèle anglais pour Tesseract : la lecture est la même sur tous les systèmes.

Hors Docker, Arca ne lit aucun fichier .env : exportez les variables dans le service qui le démarre.

Derrière un proxy inverse HTTPS

Pour publier Arca derrière un proxy inverse (Pangolin, Traefik, Caddy, nginx…), gardez Arca en HTTP simple dans votre réseau et réglez :

ARCA_HTTPS=1
ARCA_CSRF_TRUSTED_ORIGINS=https://arca.example.org
ARCA_ALLOWED_HOSTS=arca.example.org
ARCA_TRUSTED_PROXIES=172.18.0.1

Le proxy doit envoyer les en-têtes X-Forwarded-Proto et X-Forwarded-For (la plupart le font). ARCA_TRUSTED_PROXIES est l'adresse depuis laquelle le proxy se connecte, pour que les échecs de connexion soient comptés par client : voir Sécurité de la connexion. Avant de rendre Arca accessible depuis Internet, parcourez la liste de contrôle de Sécurité et confidentialité.

Mettre à jour

Avec Docker :

docker compose pull
docker compose up -d

Avec une ARCA_VERSION fixée, changez-la d'abord dans .env. Construit depuis un clone : git pull, puis docker compose up -d --build (avec COMPOSE_FILE comme plus haut).

Les migrations s'appliquent au démarrage du conteneur et ne vont que vers l'avant : pour revenir à une version précédente, restaurez une sauvegarde faite avant la mise à jour (voir Restaurer).

Depuis les sources :

git pull
uv sync
uv run manage.py migrate
uv run --group docs mkdocs build
uv run manage.py collectstatic --noinput

puis redémarrez le service qui lance gunicorn.

Lancez une fois uv run manage.py extract_texts : il lit le texte des documents PDF déjà enregistrés, pour que la recherche les trouve.