refactored container image and gitea workflows
All checks were successful
/ build-docker-image (push) Successful in 1m2s

This commit is contained in:
2025-09-21 15:51:47 +01:00
parent 9fd2b7dd8b
commit 886cbb292f
9 changed files with 185 additions and 63 deletions

View File

@@ -2,17 +2,20 @@
<https://www.borgbackup.org/>
- [container image](#container-image)
- [environment variables](#environment-variables)
- [borg repo init](#borg-repo-init)
- [creating a backup](#creating-a-backup)
- [using a bash script](#using-a-bash-script)
- [dev](#dev)
## container image
## environment variables
### environment variables
<https://borgbackup.readthedocs.io/en/stable/usage/general.html#environment-variables>
``` bash
docker run git.limbosolutions.com/kb/borg-backup:latest
```
## repo init
### borg repo init
```bash
services:
@@ -20,28 +23,39 @@ services:
image: git.limbosolutions.com/kb/borg-backup:latest
restart: no
tty: true
entrypoint: [ "bash", "-c", "loadenv && /init-repo"]
environment:
- BORG_REPO: ssh://user@server/home/user/borg-repo
- BORG_RSH: "-o StrictHostKeyChecking=no -o LogLevel=ERROR"
configs:
- source: id_ed25519 # required for ssh client
target: /home/borg/.ssh/id_ed25519
- source: borg_init_repo_sh
target: /init-repo
configs:
create.sh:
content:
while true; do
sleep 5
done
# execute for example
#borg init --encryption=keyfile-blake2 $BORG_REPO
# dont forget to copy key file content on borg folder (/root/.borg/keys/*) and BORG_PASSPHRASE
borg_init_repo_sh:
# Example, execute
# borg init --encryption=keyfile-blake2 $BORG_REPO
# don't forget to copy key file content on borg folder (/root/.borg/keys/*) and BORG_PASSPHRASE used during initialization
content:
while true; do
sleep 5
done
id_ed25519:
content: |
-----BEGIN OPENSSH PRIVATE KEY-----
**************
**************
-----END OPENSSH PRIVATE KEY-----
```
``` bash
docker run git.limbosolutions.com/kb/borg-backup:latest
```
### docker compose
Example of simple usage for creating a backup
### creating a backup
```yaml
services:
@@ -54,16 +68,17 @@ services:
- ./home/user:/mnt/user # Mount local folder to container
environment:
- BORG_REPO=?????
- BORG_REPO: "?????"
- BORG_RSH: "-o StrictHostKeyChecking=no -o LogLevel=ERROR"
- BORG_PASSPHRASE=????
- BORG_PASSPHRASE: "????"
configs:
- source: id_ed25519 # required for ssh client
target: /home/borg/.ssh/id_ed25519
mode: 0400
target: /root/.ssh/id_ed25519
- source: borg_key # required for borg client
target: /app/borg/key
mode: 0400
configs:
@@ -79,26 +94,27 @@ configs:
BORG_KEY ???????
????????????????
????????????????
```
Example using an bash script
### using a bash script
```yaml
services:
borg-backup:
restart: no
image: git.limbosolutions.com/kb/borg-backup:latest
entrypoint: ["bash", "backup.sh"]
# execute loadenv before you re scripts
# so some enviromnent variables are set
entrypoint: ["bash", "loadenv & /backup"]
configs:
- source: backup_script
target: /backup.sh
target: /backup
- source: id_ed25519
target: /root/.ssh/id_ed25519
mode: 0400
- source: borg_key
target: /app/borg/key
mode: 0400
environment:
BORG_REPO: ssh://user@server/path
BORG_RSH: "ssh -o StrictHostKeyChecking=no"
@@ -107,12 +123,15 @@ services:
volumes:
- /home/mf/repos:/mnt/repos
- /home/user/repos:/mnt/repos
configs:
# $$ instead of $ so it replaced during runtime and not on docker compose up
backup_script:
content: |
source loadenv
#/!bin/bash
set -e
# while true; do
@@ -161,20 +180,17 @@ configs:
### dev
For development environment and testing this docker compose files.
``` bash
BUILD=""
# uncomment do force build
#BUILD="--build"
docker compose \
--project-name borg-backup-dev \
-f docker-compose.dev.yaml \
-f docker-compose.dev.local.yaml \
up
```
Force Build:
``` bash
docker compose \
--project-name borg-backup-dev \
-f docker-compose.dev.yaml \
-f docker-compose.dev.local.yaml \
up --build
up $BUILD
```