54 lines
1.1 KiB
Markdown
54 lines
1.1 KiB
Markdown
# 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, by using this command on the local machine
|
|
# whenever the hook is edited, this command has to be used again
|
|
scp post-receive dmeiburg:~/git/container/hooks/
|
|
```
|
|
|
|
## Local setup
|
|
```sh
|
|
# add bare repo 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.
|
|
|