#!/bin/sh if ! (docker ps >/dev/null 2>&1) then echo "Le daemon docker n'est pas en cours d'exécution, sortie !" exit fi # Prompt nom de domaine read -p "Nom de domaine : " _domain_name # Prompt email Let's encrypt read -p "Email pour Let's encrypt : " _letsencrypt_email # Prompt mot de passe pour le compte "admin" de Traefik begin=true again=false while $begin; do $again && echo "Les mots de passe ne sont pas identiques. Veuillez réessayer." || again=true begin=false read -rs -p "Mot de passe admin pour Traefik : " _traefik_admin_passwd echo read -rs -p "Confirmation du mot de passe : " _password_confirm echo if [[ "$_traefik_admin_passwd" != "$_password_confirm" ]]; then begin=true fi done # Renseigner les identifiants pour traefik dans `core/traefik-data/configurations/dynamic.yml` _traefik_encrypted_passwd="$(htpasswd -nb admin "$_traefik_admin_passwd")" # Insertion d'antislash devant les caractères ayant une signification pour sed _traefik_encrypted_passwd="$(<<< "$_traefik_encrypted_passwd" sed -e 's`[][\\/.*^$]`\\&`g')" sed -i "s/_traefik_encrypted_passwd/$_traefik_encrypted_passwd/g" config/dynamic/dashboard.yml # Renseigner l'adresse email pour Let's Encrypt dans `core/traefik-data/traefik.yml`. sed -i "s/_letsencrypt_email/$_letsencrypt_email/g" configs/traefik.yml # Renseigner les noms de domaine pour traefik et portainer dans `core/docker-compose.yml`. sed -i "s/_domain_name/$_domain_name/g" core/docker-compose.yml mkdir -p certificates mkdir -p traefik echo "{}" > certificates/acme.json chmod 600 certificates/acme.json echo " Ok" echo "Vous pouvez lancer la commande : docker compose up -d"