56 lines
1.8 KiB
Markdown
56 lines
1.8 KiB
Markdown
# 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](https://git-scm.com/docs/githooks#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).
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
TARGET="/var/lib/apache"
|
|
REMOTE="local"
|
|
|
|
while read oldrev newrev ref
|
|
do
|
|
echo "Ref $ref (${newrev:0:7}) received."
|
|
# 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 "Doing nothing: production repo is on $PROD_BR branch."
|
|
else
|
|
echo "Deploying master branch to production..."
|
|
git pull --ff-only $REMOTE master
|
|
fi
|
|
else
|
|
echo "Doing nothing: only the master branch may be deployed on this server."
|
|
fi
|
|
done
|
|
```
|
|
|
|
## Testing
|
|
|
|
Une version de test tourne peut-être [ici](https://www.test.gnous.fr).
|
|
|
|
### Protection basique du site en développement (testing)
|
|
|
|
Définition d'un fichier `.htaccess` et `.htpasswd` à la racine du répertoire web :
|
|
```bash
|
|
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
|
|
```
|