docs: add mutli database backup example

This commit is contained in:
Jonas Kaninda
2024-10-09 12:45:29 +02:00
parent 431d0cdde9
commit 361626b84e
2 changed files with 57 additions and 3 deletions

View File

@@ -6,11 +6,12 @@ nav_order: 8
--- ---
# Encrypt backup # Encrypt backup
The image supports encrypting backups using one of two available methods: GPG with passphrase or GPG with a public key The image supports encrypting backups using one of two available methods: GPG with passphrase or GPG with a public key.
## Using GPG passphrase
The image supports encrypting backups using GPG out of the box. In case a `GPG_PASSPHRASE` or `GPG_PUBLIC_KEY` environment variable is set, the backup archive will be encrypted using the given key and saved as a sql.gpg file instead or sql.gz.gpg. The image supports encrypting backups using GPG out of the box. In case a `GPG_PASSPHRASE` or `GPG_PUBLIC_KEY` environment variable is set, the backup archive will be encrypted using the given key and saved as a sql.gpg file instead or sql.gz.gpg.
Suppose you used a GPG public key during the backup process. In that case, you need to decrypt your backup before restoration because decryption using a `GPG private` key is not fully supported.
{: .warning } {: .warning }
To restore an encrypted backup, you need to provide the same GPG passphrase used during backup process. To restore an encrypted backup, you need to provide the same GPG passphrase used during backup process.
@@ -33,7 +34,7 @@ Using your private key
```shell ```shell
gpg --output database_20240730_044201.sql.gz --decrypt database_20240730_044201.sql.gz.gpg gpg --output database_20240730_044201.sql.gz --decrypt database_20240730_044201.sql.gz.gpg
``` ```
### Backup ## Using GPG passphrase
```yml ```yml
services: services:
@@ -61,3 +62,32 @@ services:
networks: networks:
web: web:
``` ```
## Using GPG Public Key
```yml
services:
pg-bkup:
# In production, it is advised to lock your image tag to a proper
# release version instead of using `latest`.
# Check https://github.com/jkaninda/pg-bkup/releases
# for a list of available releases.
image: jkaninda/pg-bkup
container_name: pg-bkup
command: backup -d database
volumes:
- ./backup:/backup
environment:
- DB_PORT=5432
- DB_HOST=postgres
- DB_NAME=database
- DB_USERNAME=username
- DB_PASSWORD=password
## Required to encrypt backup
- GPG_PUBLIC_KEY=/config/public_key.asc
# pg-bkup container must be connected to the same network with your database
networks:
- web
networks:
web:
```

View File

@@ -37,4 +37,28 @@ databases:
user: joplin user: joplin
password: password password: password
path: /s3-path/joplin #For SSH or FTP you need to define the full path (/home/toto/backup/) path: /s3-path/joplin #For SSH or FTP you need to define the full path (/home/toto/backup/)
```
## Docker compose file
```yaml
services:
pg-bkup:
# In production, it is advised to lock your image tag to a proper
# release version instead of using `latest`.
# Check https://github.com/jkaninda/pg-bkup/releases
# for a list of available releases.
image: jkaninda/pg-bkup
container_name: pg-bkup
command: backup
volumes:
- ./backup:/backup
environment:
## Multi backup config file
- BACKUP_CONFIG_FILE=/backup/config.yaml
# pg-bkup container must be connected to the same network with your database
networks:
- web
networks:
web:
``` ```