#!/bin/bash driglibash_run_retry=true . driglibash-base set -euo pipefail run gen_env.sh ############################################################################### # Variables ############################################################################### export proxy_dir="/etc/nginx" export nginx_conf_path="$proxy_dir/sites-enabled" export new_nginx_conf_path="$proxy_dir/new-sites-enabled" export certs_path="/etc/letsencrypt/live" export dummy_cert_path="$certs_path/dummy" ############################################################################### # Helpers ############################################################################### # Path to this directory here="$(where 'follow_links')" # Ip4 address #my_ip="$(resolv.sh "$(cat /etc/hostname)")" my_ip="$(curl -4 ifconfig.me 2>/dev/null)" [ -z "$my_ip" ] && yell "Unable to find my IP" && exit 1 ############################################################################### # Nginx preparation ############################################################################### driglibash_section_prefix="[Prepare nginx] " section "Delete new conf directory (to start from scratch)" run rm -rf "$new_nginx_conf_path" section "Create new conf file (for tests purposes)" sed "s#$nginx_conf_path#$new_nginx_conf_path#" "/docker/_proxy/nginx.conf" > "$proxy_dir/new_nginx.conf" section "Create proxy dir" run mkdir -p "$proxy_dir" /docker /data run chown root:root /docker run chown root:root /data run chmod 755 /docker run chmod 755 /data section "Check dummy cert exists " #TODO check if expired if [ ! -f "$dummy_cert_path/privkey.pem" ] ; then echo "Dummy cert generation" run mkdir -p "$dummy_cert_path" run openssl req -x509 -newkey rsa:2048 -keyout /etc/letsencrypt/live/dummy/privkey.pem -out /etc/letsencrypt/live/dummy/fullchain.pem -days 365 -nodes -subj "/C=FR/ST=France/O=IT/CN=jean-cloud.net" fi section "Create new conf directory" run mkdir -p "$new_nginx_conf_path" ############################################################################### # Deploy services ############################################################################### section "Start docker" run systemctl start docker docker.socket section "Deploy mandatory services" deploy_service.sh deployer.jean-cloud.org noreload for dir in /docker/* ; do service="$(basename "$dir")" # Ignore _ prefixed directories [ "${service::1}" == '_' ] && continue [ ! -d "$dir" ] && continue [[ "$(resolv.sh $service)" != *$my_ip* ]] && continue deploy_service.sh "$service" "noreload" done restart_nginx.sh clean