diff --git a/docker-compose.yml b/docker-compose.yml index bc2fba9..b08a4b5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -85,3 +85,9 @@ services: - db site: image: abhin4v/abhinavsarkar.net:latest + hooks: + build: + context: ./webhooks + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - .:/opt/space diff --git a/nginx-conf/hooks.conf b/nginx-conf/hooks.conf new file mode 100644 index 0000000..39c218d --- /dev/null +++ b/nginx-conf/hooks.conf @@ -0,0 +1,23 @@ +server { + listen 443 ssl; + server_name hooks.abhinavsarkar.net; + + ssl_certificate /etc/nginx/certs/fullchain1.pem; + ssl_certificate_key /etc/nginx/certs/privkey1.pem; + + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_prefer_server_ciphers on; + ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; + + proxy_set_header X-Real-IP $remote_addr; # pass on real client IP + + location / { + proxy_pass http://hooks:9000; + } +} + +server { + listen 80; + server_name hooks.abhinavsarkar.net; + return 301 https://$host$request_uri; +} diff --git a/webhooks/Dockerfile b/webhooks/Dockerfile new file mode 100644 index 0000000..63ce6bd --- /dev/null +++ b/webhooks/Dockerfile @@ -0,0 +1,7 @@ +FROM almir/webhook +RUN apk add --update docker py-pip \ + && pip install docker-compose \ + && rm -rf /var/cache/apk/* +COPY hooks.json /etc/webhook/hooks.json +COPY redeploy-site.sh /var/scripts/redeploy-site.sh +CMD ["-verbose", "-hooks=/etc/webhook/hooks.json"] diff --git a/webhooks/hooks.json b/webhooks/hooks.json new file mode 100644 index 0000000..851902d --- /dev/null +++ b/webhooks/hooks.json @@ -0,0 +1,7 @@ +[ + { + "id": "redeploy-site", + "execute-command": "/var/scripts/redeploy-site.sh", + "command-working-directory": "/opt/space" + } +] diff --git a/webhooks/redeploy-site.sh b/webhooks/redeploy-site.sh new file mode 100755 index 0000000..1640654 --- /dev/null +++ b/webhooks/redeploy-site.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +docker-compose pull site +docker-compose up -d --build site