Table des matières
Site web de Federez
Le site web à l'adresse federez.net est hébergé sur hexagon. Il est versionné sur GitLab : https://gitlab.federez.net/federez/federez.net.
Modifier le site
Version courte
Modifier la branche master
:
git clone git@gitlab.federez.net:federez.net cd federez.net ... git push
On pourra utiliser la version de développement sur hexagon dans /srv/dev.federez.net accessible à : https://dev.federez.net/ (avec une authentification LDAP pour garder cette version privée).
Se connecter à hexagon pour mettre à jour le site :
cd /srv/federez.net sudo git pull
Version longue
Modifier sa branche <perso>
:
git clone git@gitlab.federez.net:federez.net cd federez.net git checkout -b <perso> ... git push -u origin <perso>
Se connecter à hexagon pour mettre à jour la version de développement :
cd /srv/dev.federez.net sudo git checkout <perso> sudo git pull
Si tout fonctionne, faire la fusion sur son dépôt local (pas sur hexagon !) :
git checkout master git merge <perso> git pull
Enfin, mettre à jour le site sur hexagon :
cd /srv/federez.net sudo git pull
Configuration du déploiement
Le serveur utilise une clé SSH de déploiement pour se connecter à GitLab (voir
/root/.ssh/id_gitlab
et /root/.ssh/config
sur hexagon) . C'est pour cette raison que le déploiement est fait avec sudo git pull
. La configuration sur GitLab est à l'adresse suivante : https://gitlab.federez.net/federez/federez.net/deploy_keys.
Le déploiement est fait via un transfert d'agent SSH, aucune clef n'est présente sur dodecagon (elle n'existait pas sur hexagon).
Redirections pour les journées
Pour faciliter l'accès à la page consacrée aux journées, http://journees.federez.net et http://2016.federez.net (et les noms correspondant aux autres années) redirigent vers la page pertinente.
Pour cela, il faut :
- avoir les noms déclarés dans le DNS ;
- avoir le certificat généré par letsencrypt valide pour ces zones ;
- avoir une configuration d'Apache adaptée, telle que décrite ci-dessous.
Configuration d'apache
La configuration est faite en deux parties, la première dans le fichier /etc/apache2/sites-available/000-default.conf
pour le site en entier (et afin de s'assurer que ce soit le premier VHOST configuré afin que ce soit aussi celui servir par défaut), le reste dans /etc/apache2/sites-available/www-journees.conf
pour la configuration spécifique aux journées.
- /etc/apache2/sites-available/000-default.conf
<VirtualHost *:443> ServerName www.federez.net ServerAlias federez.net DocumentRoot /srv/federez.net/ LogLevel warn ErrorLog ${APACHE_LOG_DIR}/www-error.log CustomLog ${APACHE_LOG_DIR}/www-access.log combined SSLEngine on SSLCertificateFile /etc/letsencrypt/live/federez.net/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/federez.net/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf <Directory /srv/federez.net/> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory> <Directory /srv/federez.net/.git> Require all denied </Directory> <Directory /srv/federez.net/media/journees/2015/photo/> Include /etc/apache2/ldap.conf </Directory> <Directory /srv/federez.net/media/journees/2016/photo/> Include /etc/apache2/ldap.conf </Directory> </VirtualHost>
- /etc/apache2/sites-available/www-journees.conf
<VirtualHost *:443> ServerName journees.federez.net ServerAlias 20??.federez.net RewriteEngine On # Redirections pour les différentes années (de 2000 à 2099) RewriteCond %{HTTP_HOST} ^(20[0-9][0-9])\.federez\.(fr|eu|org|net) RewriteRule ^.*$ https://federez.net/journees/%1/%{REQUEST_URI} [NC,L,R=permanent] # Redirection pour journees.federez.net RewriteCond %{HTTP_HOST} ^journees.federez.net RewriteRule ^.*$ https://federez.net/journees/2017/%{REQUEST_URI} [NC,L,R=permanent] # À mettre à jour tous les ans ^^^^ LogLevel warn ErrorLog ${APACHE_LOG_DIR}/redirection-journees-error.log CustomLog ${APACHE_LOG_DIR}/redirection-journees-access.log combined SSLEngine on SSLCertificateFile /etc/letsencrypt/live/federez.net/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/federez.net/privkey.pem </VirtualHost>
On activera les VHOST pour finir :
a2ensite 000-default www-journees apache2ctl gracefull