From 052b2237a6862f2b15b7ea4ca2b5b417521b5031 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 12 Apr 2026 14:06:19 +0000 Subject: [PATCH] docker compose yml and backup script done by crone --- backup.sh | 19 +++++++++++++++ docker-compose.yml | 61 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100755 backup.sh create mode 100644 docker-compose.yml diff --git a/backup.sh b/backup.sh new file mode 100755 index 0000000..9dc25a3 --- /dev/null +++ b/backup.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +DATE=$(date +%F-%H-%M) +BACKUP_DIR="/root/gitea/backups" +SOURCE_DIR="/root/gitea" + +# Create temp SQL dump +docker exec gitea-db mysqldump -u root -prootstrongpassword gitea > $BACKUP_DIR/db-$DATE.sql + +# Create full backup archive +tar czf $BACKUP_DIR/gitea-backup-$DATE.tar.gz \ + -C $SOURCE_DIR \ + gitea mariadb + +# Optional: remove SQL dump after packing (keeps archive clean) +rm $BACKUP_DIR/db-$DATE.sql + +# Cleanup old backups (keep last 7 days) +find $BACKUP_DIR -type f -mtime +7 -delete diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..411fa2c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,61 @@ +services: + gitea: + image: gitea/gitea:latest + container_name: gitea + restart: always + depends_on: + - db + environment: + - USER_UID=1000 + - USER_GID=1000 + + # Database config + - GITEA__database__DB_TYPE=mysql + - GITEA__database__HOST=db:3306 + - GITEA__database__NAME=gitea + - GITEA__database__USER=gitea + - GITEA__database__PASSWD=strongpassword + + volumes: + - ./gitea:/data + + ports: + - "3000:3000" + - "222:22" + + networks: + - gitea + + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" + + db: + image: mariadb:11 + container_name: gitea-db + restart: always + + environment: + - MYSQL_ROOT_PASSWORD=rootstrongpassword + - MYSQL_DATABASE=gitea + - MYSQL_USER=gitea + - MYSQL_PASSWORD=strongpassword + + command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci + + volumes: + - ./mariadb:/var/lib/mysql + + networks: + - gitea + + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" + +networks: + gitea: