From 9b765024895de2b70af6c35144bc2e265e12462c Mon Sep 17 00:00:00 2001 From: Hans-Christian Payer Date: Wed, 27 May 2026 17:36:15 +0200 Subject: [PATCH] first commit --- docker-compose.yml | 34 ++++++++++++++++++++++++++++++++++ gitea_backup.sh | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 docker-compose.yml create mode 100644 gitea_backup.sh diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..6053b7c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,34 @@ +networks: + forgejo: + external: false + +services: + server: + image: gitea/gitea:latest + container_name: forgejo + environment: + - USER_UID=1000 + - USER_GID=1000 + - GITEA__server__DOMAIN=code.neugasse.lan + - GITEA__server__ROOT_URL=http://code.neugasse.lan + - GITEA__server__HTTP_PORT=3000 + - GITEA__server__SSH_DOMAIN=code.neugasse.lan + - GITEA__server__SSH_PORT=922 + - GITEA__service__DISABLE_REGISTRATION=true + # --- E-Mail via mailbox.org --- + - GITEA__mailer__ENABLED=true + - GITEA__mailer__FROM=minitux@mailbox.org + - GITEA__mailer__PROTOCOL=smtps + - GITEA__mailer__SMTP_ADDR=smtp.mailbox.org + - GITEA__mailer__SMTP_PORT=465 + - GITEA__mailer__USER=minitux@mailbox.org + - GITEA__mailer__PASSWD=4711Cayenne64 + restart: always + networks: + - forgejo + volumes: + - /home/hans/forgejo/data:/data + - /etc/localtime:/etc/localtime:ro + ports: + - '3000:3000' + - '922:22' \ No newline at end of file diff --git a/gitea_backup.sh b/gitea_backup.sh new file mode 100644 index 0000000..d7af927 --- /dev/null +++ b/gitea_backup.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# /usr/local/bin/gitea-backup.sh + +BACKUP_DIR="/backup/gitea" +DATA_DIR="/home/hans/forgejo/data" +CONTAINER_NAME="forgejo" # Dein container_name aus der Compose-Datei +RETENTION_DAYS=14 + +mkdir -p "$BACKUP_DIR" +TIMESTAMP=$(date +%Y%m%d-%H%M) + +echo "[$(date)] Starting Gitea backup..." + +# Backup im Container erstellen +docker exec -u git -w /data "$CONTAINER_NAME" \ + /app/gitea/gitea dump -c /data/gitea/conf/app.ini \ + --file /data/gitea-dump.zip + +# Vom gemappten Volume ins Backup-Verzeichnis verschieben +if [ -f "$DATA_DIR/gitea-dump.zip" ]; then + mv "$DATA_DIR/gitea-dump.zip" "$BACKUP_DIR/gitea-dump-$TIMESTAMP.zip" + chmod 600 "$BACKUP_DIR/gitea-dump-$TIMESTAMP.zip" + + # Alte Backups entfernen + find "$BACKUP_DIR" -name "gitea-dump-*.zip" -mtime +$RETENTION_DAYS -delete + + SIZE=$(du -h "$BACKUP_DIR/gitea-dump-$TIMESTAMP.zip" | cut -f1) + echo "[$(date)] Backup completed: gitea-dump-$TIMESTAMP.zip ($SIZE)" +else + echo "[$(date)] ERROR: Backup file not found!" + exit 1 +fi