html | ||
.env.example | ||
.gitignore | ||
LICENSE | ||
print_stats.py | ||
README.md |
Sources du site de GNOUS
La dernière version stable est accessible à cette adresse : https://www.gnous.fr
Déploiement
Ce site est déployé au moyen d'un tour de passe-passe qui combine git et Docker.
Un hook post-receive (voir ci-dessous) permet d'automatiquement mettre à jour le dépôt git servant les sources à chaque événement de poussée concernant la branche master
.
Pour plus de simplicité, le dépôt est monté dans le conteneur applicatif de g² (Gitea).
#!/bin/bash
TARGET="/var/lib/apache"
REMOTE="local"
while read oldrev newrev ref
do
# only checking out the master (or whatever branch you would like to deploy)
if [ "$ref" = "refs/heads/master" ];
then
cd $TARGET
unset GIT_DIR
PROD_BR=`git rev-parse --abbrev-ref HEAD`
if [ $PROD_BR != "master" ];
then
echo "Production repo is on $PROD_BR branch. Aborting..."
else
echo "Ref $ref (${newrev:0:7}) received. Deploying master branch to production..."
git pull --ff-only $REMOTE master
fi
else
echo "Ref $ref received. Doing nothing: only the master branch may be deployed on this server."
fi
done
Testing
Une version de test tourne peut-être ici.
Protection basique du site en développement (testing)
Définition d'un fichier .htaccess
et .htpasswd
à la racine du répertoire web :
cat << EOF >> .htaccess
AuthName "Pages de test"
AuthType Basic
AuthUserFile "/var/www/html/.htpasswd"
Require valid-user
EOF
printf "USER:$(openssl passwd -apr1 PASSWORD)\n" >> .htpasswd