diff --git a/README.md b/README.md index 5f278ba..9899c98 100644 --- a/README.md +++ b/README.md @@ -21,3 +21,5 @@ $ gpg -ear key@dmeiburg.de .env git remote add dmeiburg ssh://root@dmeiburg.de:/root/git/container.git git push dmeiburg ``` + +Make sure `post-receive` hook is installed in the bare repository. diff --git a/post-receive b/post-receive new file mode 100755 index 0000000..44d6f8b --- /dev/null +++ b/post-receive @@ -0,0 +1,24 @@ +#!/bin/sh +# +# This hook updates the working repository on dmeiburg.de +# It is meant to update the docker configs of my servers. + +WORK_TREE=~/container + +# get changed folders +changed=`GIT_WORK_TREE=$WORK_TREE git diff --dirstat=files,0 HEAD | cut -f3 -d' '` + +# update files in working direcotry +GIT_WORK_TREE=~/container git checkout -f + +# restart changed docker compose stacks +for app in $changed; do + cd $WORK_TREE/$changed + + # decrypt .env + [ -f .env.asc ] && gpg -d env.asc > .env + + docker compose down + docker compose up -d +done +exit