Le package camap-docker permet une installation simplifiée de Camap sur une machine Windows ou Linux (ou autre mais non testé). 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. Tout retour est bienvenue.
Installer docker & docker-compose
Sur Debian 11
https://docs.docker.com/engine/install/debian/
Sur Windows
Installer Docker Desktop et Github pour windows
Script de construction des containers Camap
git clone https://github.com/CAMAP-APP/camap-docker.git
Camap for dummies
Cette installation vous permet d'installer facilement Camap sur un poste de travail.
Elle s'appuie sur la dernière release stable des images docker CAMAP-APP et ne nécessite pas de compilation.
Windows: dans C:\Windows\System32\drivers\etc
Linux: 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
Aller dans le répertoire camap-docker:
cd camap-docker
Lancer le script:
Windows_:
powershell ./easy-install.ps1
Linux:
chmod u+x easy-install.sh
./easy-install.sh
A l'aide de la commande docker compose ps
ou via Docker Desktop, vérifier que les containers sont bien lancés.
4 containers doivent être présents:
- camap-docker-reverse-proxy-1
- loc-mysql
- neko-loc-camap
- nest-loc-camap
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.
Ce compte admin est créé avec l'adresse '[email protected]' et le mot de passe 'admin'
Pour arrêter Camap:
docker compose down
Pour lancer Camap:
docker compose up
Pour voir les logs:
docker compose logs
Pour voir les logs en continu:
docker compose logs -f
lancer
build_camap_docker.sh <DESTDIR>
pour une installation de Camap dans DESTDIR
Renseigner le DNS ou votre fichier hosts avec les valeurs correspondantes à la configuration.
Pour une installation en local avec les valeurs par défaut:
127.0.0.1 camap.localdomain api.camap.localdomain
Installer docker desktop
Créer un répertoire Camap
Dans ce répertoire:
-
git clone https://github.com/CAMAP-APP/camap-hx.git
-
git clone https://github.com/CAMAP-APP/camap-ts.git
-
git clone https://github.com/CAMAP-APP/camap-docker.git
Copier ensuite depuis camap/camap-docker/:
-
traefik.yml
danscamap
-
*.Dockerfile
danscamap
-
docker-compose.yml
danscamap
-
.env
danscamap/camap-ts
-
config.xml
danscamap/camap-hx
-
le répertoire
traefik
et son contenu danscamap
-
le répertoire
ssl
et son contenu danscamap
Renseigner le DNS ou votre fichier hosts (c:\windows\system32\drivers\etc) avec les valeurs correspondante à la configuration.
Pour une installation en local avec les valeurs par défaut:
127.0.0.1 camap.localdomain api.camap.localdomain loc-mysql
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.
key
doit avoir la même valeur queCAMAP_KEY
dans camap-ts/.env
Cette clef est utilisée pour vérifier le hash des mots de passe des comptes Camap
-
host
nom d'hôte publique du serveur haxe (camap.localdomain par défaut) -
camap_api
contient l'url du frontal Camap (api.camap.localdomain par défaut) -
mapbox_server_token
contient la clef pour les fonctions de géolocalisation, à créer sur mapbox.com (gratuit jusqu'à 100.000 requetes par mois)
CAMAP_KEY
doit avoir la même valeur quekey
dans camap-hx/config.xml
Cette clef est utilisée pour vérifier le hash des mots de passe des comptes Camap
-
CAMAP_HOST
contient l'url du serveur haxe camap-hx (camap.localdomain par défaut) -
FRONT_URL
contient l'url du serveur nest (camap-ts) -
FRONT_GRAPHQL_URL
contient l'url de graphql (FRONT_URL/graphql) -
MAPBOX_KEY
contient 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
A des fins de test, vous pouvez créer un compte sur https://ethereal.email/create
(avec un compte ethereal.email, laissez SMTP_SECURE=false et renseignez SMTP_AUTH_USER & SMTP_AUTH_PASS en fonction)
MAILER_TRANSPORT=smtp
SMTP_HOST=smtp.ethereal.email
SMTP_PORT=587
SMTP_SECURE=false
SMTP_AUTH_USER=
SMTP_AUTH_PASS=
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: [email protected]
# storage: /etc/traefik/ssl/acme.json
# httpChallenge:
# # used during the challenge
# entryPoint: web
- décommenter les lignes
traefik.http.routers.nest-loc-camap.tls
de docker-compose.yml
Exécuter docker compose up -d --build
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.
Le dashboard Traefik est accessible via http://127.0.0.1:8080/dashboard/
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.
Ce compte admin est créé avec l'adresse '[email protected]' et le mot de passe 'admin'