Christian P. MOMON 9e8269c035 | ||
---|---|---|
README.md |
README.md
Service STATUS
Service d'information sur l'état des service du Chalec, le chaton de Libre en communs, basé sur le logiciel libre TinyStatus : https://github.com/bderenzo/tinystatus
Équipe : neox + Cpm. Anciennement : n/a.
Date création : octobre 2022.
Installation
Prérequis système
Vérifier que le fichier /etc/hosts.deny
ne bloque pas les connexions ssh :
#sshd: ALL
NGinx
Installer les paquets :
apt-get install nginx python3-certbot-nginx
Ouvrir les ports http (80) et https (443) :
ufw allow 'Nginx HTTP'
ufw allow 'Nginx HTTPS'
ufw allow 444
Configurer a minima le site web dans /etc/nginx/sites-available/status.chalec.org
:
server
{
listen 80;
listen [::]:80;
server_name status.chalec.org;
access_log /var/log/nginx/status.chalec.org-access.log;
error_log /var/log/nginx/status.chalec.org-error.log;
}
Activer la configuration :
cd /etc/nginx/sites-enabled/
ln -s ../sites-available/status.chalec.org
Vérifier que c'est bon et recharger :
nginx -t && systemctl reload nginx
Configurer le certificat SSl :
certbot --nginx
Créer un fichier générique cat /etc/nginx/statoolinfos.conf
qui sera includé plus tard :
location /.well-known/statoolinfos/
{
types
{
text/plain properties;
}
alias /srv/statoolinfos/well-known/statoolinfos/;
autoindex on;
}
Mettre beau le fichier /etc/nginx/sites-enabled/status.chalec.org
:
server
{
listen 80;
listen [::]:80;
server_name status.chalec.org;
access_log /var/log/nginx/status.chalec.org-access.log;
error_log /var/log/nginx/status.chalec.org-error.log;
#return 302 https://$host$request_uri;
return 302 https://status.chalec.org$request_uri;
}
server
{
set_real_ip_from 192.169.1.1;
real_ip_header proxy_protocol;
listen [::]:443 ssl;
listen 444 ssl proxy_protocol;
server_name status.chalec.org;
access_log /var/log/nginx/status.chalec.org-access.log;
error_log /var/log/nginx/status.chalec.org-error.log;
ssl_certificate /etc/letsencrypt/live/status.chalec.org/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/status.chalec.org/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
# StatoolInfos.
include /etc/nginx/statoolinfos.conf;
root /var/www/status.chalec.org;
location = /
{
index index.html;
}
}
Vérifier que c'est bon et recharger :
nginx -t && systemctl reload nginx
Déploiement de l'application
Prodécure de référence : https://github.com/bderenzo/tinystatus#setup
Créer le dossier web cible :
mkdir -p /var/www/status.chalec.org/
chown www-data /var/www/status.chalec.org/
Récupérer l'application :
cd /srv/
git clone https://github.com/bderenzo/tinystatus.git
Paramétrer les éléments à surveiller, en éditant le fichier checks.csv
:
http, 200, Chalec website, https://www.chalec.org/
http4, 200, Chalec website, https://www.chalec.org/
http6, 200, Chalec website, https://www.chalec.org/
Programmer un cron dans /etc/cron.d/tinystatus
:
5 * * * * root /srv/tinystatus/tinystatus > /var/www/status.chalec.org/index.html
Personnaliser le UserAgent
Important de mettre un UserAgent identifiable en tant que bot. Éditer le fichier tinystatus
:
-useragent="User-Agent: Mozilla/5.0 (X11; Linux x86_64; Debian) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
+useragent="User-Agent: TinyStatus bot"