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 :

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