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 avecpython3 -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.