traefik/prepare.sh
hcornet 92fd0f9d47
Some checks failed
Deployment Verification / deploy-and-test (push) Failing after 5m35s
first sync
2024-12-23 19:01:46 +01:00

50 lines
1.6 KiB
Bash

#!/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"