# Container This project contains my personal docker compose configurations. #### Operating principle: Changes in this repo get pushed to a bare repo on dmeiburg.de. Whenever a push is received a post-receive hook runs. The post-receive hook then: - deploys the code into a working directory - decrypts .env.gpg files - restarts stacks with changed compose files The env files are encrypted for key@dmeiburg.de and server@dmeiburg.de. #### Server setup ```sh # create bare repo on dmeiburg.de mkdir -p git/container.git cd git/container.git git init --bare ``` ```sh # install the post receive hook # whenever the hook is edited, this command has to be used again scp post-receive dmeiburg:~/git/container/hooks/ ``` #### Local setup ```sh # add bare repos as remote on local machine git remote add dmeiburg ssh://root@dmeiburg.de:/root/git/container.git ``` #### Encrypting .env files To encrypt an .env files, the following command is used: ```sh $ gpg -er key@dmeiburg.de -r server@dmeiburg.de .env ``` #### Deployment ```bash git push dmeiburg ``` If necessary the post-receive hook has to be updated via scp.