Camap a migré sur kubernetes, aussi il est recommandé d'utiliser une installation locale sur minikube
Une installation clé en main est disponible sur CAMAP-APP/minikube-camap
Le package camap-docker permet une installation simplifiée de Camap pour un environnement de développement. Il utilise les sources camap-hx et camap-ts des dernières versions publiées sur CAMAP-APP qui est également la version de production du serveur de l'InterAMAP44
ℹ️ A noter que l'infrastructure de production déployée par l'InterAMAP44 diffère en ce qu'elle n'utilise pas Traefik mais Nginx comme reverse proxy et s'appuie sur son propre serveur SMTP.
Camap-docker peut:
- vous permettre d'installer très simplement une version de test sur votre poste local,
- vous aider à configurer, compiler et installer une version de dev sur votre poste
- ou vous inspirer pour installer une version de production.
La présente documentation a été testée sur Debian 11 & Windows 11 et MacOS 15.6 (Apple Silicon). Tout retour est bienvenu.
Installer docker & docker-compose
Sur Debian 11
https://docs.docker.com/engine/install/debian/
Sur Windows ou Mac
Installer Docker Desktop et Github pour windows
git clone https://github.com/CAMAP-APP/camap-docker.git
Windows: dans C:\Windows\System32\drivers\etc
Linux, Mac: dans /etc/hosts
Si une ligne commençant par 127.0.0.1 existe déjà, ajouter en fin de ligne:
camap.localdomain api.camap.localdomain
Sinon ajouter la ligne:
127.0.0.1 localhost camap.localdomain api.camap.localdomain
git submodule update --init --recursive
.envdanscamap-tsconfig.xmldanscamap-hx
docker compose up -d --build
A l'aide de la commande docker compose ps ou via Docker Desktop, vérifier que les containers sont bien lancés.
5 containers doivent être présents:
- camap-docker-reverse-proxy-1
- loc-mysql
- neko-loc-camap
- nest-loc-camap
- mailpit
Au besoin, relancer les containers manquant via la commande "docker compose restart <nom_container>" ou via Docker Desktop
ex: docker compose restart neko-loc-camap
jusqu'à ce que tous les containers soient présents.
Le dashboard Traefik est accessible via http://127.0.0.1:8080/
Après l'installation avec les certificats autosignés, un accès via le navigateur à https://api.camap.localdomain est nécessaire pour passer outre l'avertissement de sécurité, sinon les menus gérés par api.camap ne fonctionneront pas.
Ensuite un premier accès à https://camap.localdomain/install est nécessaire pour initialiser la bdd, puis un second accès permet la configuration du compte admin et d'un groupe de démonstration.
keydoit avoir la même valeur queCAMAP_KEYdans camap-ts/.env
Cette clef est utilisée pour vérifier le hash des mots de passe des comptes Camap
-
hostnom d'hôte publique du serveur haxe (camap.localdomain par défaut) -
camap_apicontient l'url du frontal Camap (api.camap.localdomain par défaut) -
mapbox_server_tokencontient la clef pour les fonctions de géolocalisation, à créer sur mapbox.com (gratuit jusqu'à 100.000 requetes par mois)
CAMAP_KEYdoit avoir la même valeur quekeydans camap-hx/config.xml
Cette clef est utilisée pour vérifier le hash des mots de passe des comptes Camap
-
CAMAP_HOSTcontient l'url du serveur haxe camap-hx (camap.localdomain par défaut) -
FRONT_URLcontient l'url du serveur nest (camap-ts) -
FRONT_GRAPHQL_URLcontient l'url de graphql (FRONT_URL/graphql) -
MAPBOX_KEYcontient la clef pour les fonctions de géolocalisation, à créer sur mapbox.com (gratuit jusqu'à 100.000 requetes par mois)
La rubrique MAIL doit être renseignée avec les informations de votre serveur SMTP.
En développement, nous recommandons d'utiliser Mailpit, déjà inclus dans docker-compose.dev.yml.
- Lancer Mailpit (automatique avec
docker compose upen dev). - Dans
camap-ts/.env, configurer:
MAILER_TRANSPORT=smtp
SMTP_HOST=mailpit
SMTP_PORT=1025
SMTP_SECURE=false
SMTP_AUTH_USER=mail_user
SMTP_AUTH_PASS=mail_pass
Avec ces valeurs, les emails seront capturés par Mailpit et visibles dans l'interface web.
- Interface: http://localhost:8025
Ici vous pouvez voir tous les mails qui transitent
⚠️ Aucun mail ne sort de votre environnement local, tout est capturé par mailpit
L'installation par défaut utilise un certificat autosigné généré avec openssl
Pour automatiser la fourniture d'un certificat letsencrypt personnalisé:
- éditer traefik.yml et décommenter la rubrique suivante (en enlevant le caractètre #), et modifier l'email:
#certificatesResolvers:
# le:
# acme:
# email: admin@camap.tld
# storage: /etc/traefik/ssl/acme.json
# httpChallenge:
# # used during the challenge
# entryPoint: web
- décommenter les lignes
traefik.http.routers.nest-loc-camap.tlsde docker-compose.yml
Si vous modifiez les noms d'hôtes par défaut, pensez à éditer le fichier docker-compose.yml en conséquence en remplaçant toutes les occurences de camap.localdomain et api.camap.localdomain.
Si un environnement de test existe, vous pouvez générer un dump pour avoir des données en local.
L'import peut se faire directement depuis la commande MySQL ou depuis un client comme DBeaver.
Si vous avez des problèmes d'import dû au format binaire des images (unknown command), vous pouvez supprimer les tables (mais pas la DB !) avant de lancer la restauration (si votre dump contient les instructions CREATE TABLE)
=> Attention, pour pouvoir supprimer les tables en local, il faut avant tout supprimer les références des tables entre elles.