Gestione multidominio con Docker – Ajenti-V – Letsencrypt

Quest’oggi volevo fornirvi questa breve guida per la gestione multidominio tramite le piattaforme gratuite Docker-CE,  Ajenti-V e Letsencrypt con relativo schedule

Una volta installata la macchina (Debian jessie)  provvediamo ad installare Docker: [ref]

admin@host:/> sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

admin@host:/>  curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add –

admin@host:/>  sudo add-apt-repository \
“deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable”

admin@host:/>  sudo apt-get update

admin@host:/> sudo apt-get -y install docker-ce

admin@host:/> sudo systemctl start docker

A questo punto abbiamo Docker avviato e funzionante e quindi avvio un gestore di vHost, ed il mio preferito è Ajenti-V nella variante whatpanel sviluppata su Docker [ref].

admin@host:/> mkdir /srv

admin@host:/> docker run -td –name m4-whatpaneldata paimpozhil/data

admin@host:/> docker run -d -p 8000:8000 -p 80:80 -p 443:443 -p 2222:22 -p 21:21 –volumes-from m4-whatpaneldata -v /srv:/srv paimpozhil/whatpanel

Adesso possiamo accedere al nostro pannello di gestione Ajenti Web https://<IP-Address>:8000  {Login root | Password admin}

oppure accedere alla machina in ssh://<IP-Address>:2222  {Login root | ch@ngem3}

A questo punto possiamo creare i domini con i vari siti impostando come directory principale del sito la dir /var/www e non /srv come da default

Una volta creati i domini e puntati i DNS possiamo provedere alla creazione dei certificati tramite Letsencrypt [ref] & cron [ref]

admin@host:/> mkdir /srv/certs

admin@host:/> echo ‘#!/bin/bash’ >> /etc/cron.monthly/renew-letsencrypt.sh

admin@host:/> chmod 0644  /etc/cron.monthly/renew-letsencrypt.sh

admin@host:/> dominio=www.sito.it

admin@host:/> mail=mail@sito.it

admin@host:/> echo docker start lets_$dominio >> /etc/cron.monthly/renew-letsencrypt.sh

admin@host:/> echo pause 1m >> /etc/cron.monthly/renew-letsencrypt.sh

admin@host:/> docker run -it –name lets_$dominio –volumes-from whatpanel_data -v /srv/certs:/etc/letsencrypt/ quay.io/letsencrypt/letsencrypt certonly –agree-tos –webroot –webroot-path /var/www/$dominio/ -m $mail -d $dominio

A questo punto avrete all’interno della cartella /srv/cert del sistema Debian tutti i certificati generati, che a sua volta li ritroverete all’interno della /srv del container whatspanel.

In questo modo ogni mese il sistema avvierà automaticamente il container rinnovando il cerficato e quest’ultimi sono raggiungibili all’intero del della directory /src/certs/$dominio.