From 3dda08d6abc5efbe1e9910e2feaea5567bbe65d1 Mon Sep 17 00:00:00 2001 From: Simon C Date: Thu, 8 Dec 2022 16:09:06 +0100 Subject: [PATCH] feat: Update deploy --- .dockerignore | 3 -- .drone.yml | 47 ++++++++++++++++++++++ .env | 5 --- .gitignore | 1 + .gitmodules | 2 +- Dockerfile | 4 -- config.toml | 3 ++ docker-compose.yml | 42 -------------------- run | 98 ---------------------------------------------- 9 files changed, 52 insertions(+), 153 deletions(-) delete mode 100644 .dockerignore create mode 100644 .drone.yml delete mode 100644 .env delete mode 100644 Dockerfile delete mode 100644 docker-compose.yml delete mode 100755 run diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 392c3c8..0000000 --- a/.dockerignore +++ /dev/null @@ -1,3 +0,0 @@ -** -!public -!.env diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..0d4367e --- /dev/null +++ b/.drone.yml @@ -0,0 +1,47 @@ +--- +# drone encrypt kosssi/slides.lamelio.fr $AWS_ACCESS_KEY_ID +kind: secret +name: PRODUCTION_AWS_ACCESS_KEY_ID +data: SzwoRUH77HIgApNSr4pIWzShKEqfrjDY6wm/KICad7+LoJAC/CB/l2KV9QB++RmbtT1Liy2C + +--- +# drone encrypt kosssi/slides.lamelio.fr $AWS_SECRET_ACCESS_KEY +kind: secret +name: PRODUCTION_AWS_SECRET_ACCESS_KEY +data: E7w1BA/oedq53fzYAemHlUP6UX84ejtnapAXt1M0d/O7z4iV4KjTzv2tr8dDZaomBSR3DiZtA4lx/irnzkhPyYHnWF1eF9MQSA70ijMP+Aq2cP/ED8mULYFkzBs= + +--- +kind: pipeline +type: docker +name: prod + +platform: + os: linux + arch: arm64 + +steps: +- name: install submodule + image: drone/git + commands: + - git submodule update --init + +- name: build website + image: klakegg/hugo:0.107.0-ext-debian-ci + commands: + - hugo --minify + +- name: deploy + image: klakegg/hugo:0.107.0-ext-debian-ci + environment: + AWS_ACCESS_KEY_ID: + from_secret: PRODUCTION_AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY: + from_secret: PRODUCTION_AWS_SECRET_ACCESS_KEY + commands: + - hugo deploy + +trigger: + event: + - push + branch: + - master diff --git a/.env b/.env deleted file mode 100644 index 808e890..0000000 --- a/.env +++ /dev/null @@ -1,5 +0,0 @@ -DOCKER_HOST=ssh://kosssi@vert:42422 -NAME=slides -URL=slides.lamelio.fr - -LOG_PATH=/var/log/nginx/access.log diff --git a/.gitignore b/.gitignore index 5d2fac3..d56b5df 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ resources public backups +.hugo_build.lock diff --git a/.gitmodules b/.gitmodules index 9f54a88..d419312 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "themes/reveal-hugo"] path = themes/reveal-hugo - url = git@github.com:dzello/reveal-hugo.git + url = https://github.com/dzello/reveal-hugo.git diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index fe82c9c..0000000 --- a/Dockerfile +++ /dev/null @@ -1,4 +0,0 @@ -FROM registry.weko.io/nginx-lowtech:0.0.8 - -# Copie des sources du site -COPY public /usr/share/nginx/html diff --git a/config.toml b/config.toml index 64772d5..e483816 100644 --- a/config.toml +++ b/config.toml @@ -11,3 +11,6 @@ unsafe = true baseName = "index" mediaType = "text/html" isHTML = true + +[[deployment.targets]] + URL = "s3://slides.lamelio.fr?endpoint=http://10.20.20.10:3900&disableSSL=true&s3ForcePathStyle=true®ion=garage" diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 24fc598..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,42 +0,0 @@ -version: "3.8" - -volumes: - slides-log: - name: slides-log - slides-stats: - name: slides-stats - -services: - slides-logs: - container_name: slides-logs - image: registry.weko.io/goaccess:1.4.6 - restart: always - volumes: - - slides-log:/var/log/nginx - - slides-stats:/usr/share/nginx/html/stats - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - labels: - com.centurylinklabs.watchtower.enable: true - - slides: - container_name: ${NAME} - image: registry.weko.io/slides - restart: always - volumes: - - slides-log:/var/log/nginx - - slides-stats:/usr/share/nginx/html/stats - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - labels: - traefik.enable: "true" - - traefik.http.routers.slides.rule: "Host(`${URL}`)" - traefik.http.routers.slides.entrypoints: "web" - - com.centurylinklabs.watchtower.enable: true - -networks: - default: - external: - name: traefik diff --git a/run b/run deleted file mode 100755 index 368ac52..0000000 --- a/run +++ /dev/null @@ -1,98 +0,0 @@ -#!/bin/bash - -# -e Exit immediately if a command exits with a non-zero status. -# -u Treat unset variables as an error when substituting. -set -eu - -START=`date +%s` -DOCKER_CONTEXT=vert -BACKUP_DATE=`date +%Y%m%d` -PROJECT=slides - -logs_backup() { - mkdir -p backups - ssh $DOCKER_CONTEXT mkdir -p backups/slides - docker --context $DOCKER_CONTEXT run -t --rm -v $HOME/backups/slides:/backup -v slides-log:/logs alpine:3.11.6 ash -c "cd /logs && tar cvf /backup/${BACKUP_DATE}_logs.tar ." - ssh $DOCKER_CONTEXT "sudo chown kosssi:docker $HOME/backups/slides/${BACKUP_DATE}_logs.tar" - scp $DOCKER_CONTEXT:$HOME/backups/slides/${BACKUP_DATE}_logs.tar backups -} - -logs_restore() { - ssh $DOCKER_CONTEXT mkdir -p backups/slides - scp backups/${BACKUP_DATE}_logs.tar $DOCKER_CONTEXT:$HOME/backups/slides/ - docker --context $DOCKER_CONTEXT run -t --rm -v $HOME/backups/slides:/backup -v slides-log:/logs alpine:3.11.6 ash -c "cd /logs && tar xvf /backup/${BACKUP_DATE}_logs.tar --strip 1" -} - -logs_update() { - docker --context $DOCKER_CONTEXT exec -it slides-logs ash /bin/stats.sh generate -} - -build_production() { - echo "👷 Construction du site en mode production" - rm -rf public - hugo --environment production --minify -} - -help() { - echo "💡 Aide" - echo "-------" - echo - echo "Commandes :" - echo "- ./run install 📦 Installation des dépendances" - echo "- ./run dev 🚧 Lancement du serveur pour le développement" - echo "- ./run build 👷 Construction du site en mode production" - echo "- ./run docker 🐳 Création de l'image Docker" - echo "- ./run deploy 🚀 Déploiement avec docker-compose" - echo "- ./run logs backup 📥 Sauvegarde les logs" - echo "- ./run logs restore 📤 Restore les logs" - echo "- ./run logs update 🌠 Mise à jour de GoAccess" - echo -} - -install() { - echo "📦 Installation des dépendances" - git submodule update --init -} - -if [ $# -ge 1 ]; then - if [ $1 == "logs" ]; then - if [ $# -ge 2 ]; then - if [ $2 == "backup" ]; then - echo "📥 Sauvegarde les logs" - logs_backup - elif [ $2 == "restore" ]; then - echo "📤 Restore les logs" - logs_restore - elif [ $2 == "update" ]; then - echo "🌠 Mise à jour de GoAccess" - logs_update - else - help - fi - else - help - fi - elif [ $1 == "dev" ]; then - echo "🚧 Lancement du serveur pour le développement" - hugo server -D - elif [ $1 == "build" ]; then - build_production - elif [ $1 == "docker" ]; then - echo "🐳 Création de l'image Docker" - echo - docker build . -t kosssi/$PROJECT - docker tag kosssi/$PROJECT registry.weko.io/$PROJECT - docker push registry.weko.io/$PROJECT - elif [ $1 == "deploy" ]; then - echo "🚀 Déploiement avec docker-compose" - echo - docker-compose up -d - elif [ $1 == "install" ]; then - install - fi -else - help -fi - -END=`date +%s` -echo "✨ Done in $((END-START))s"