chg: pkg: remove all minio related stuff - & clean up and unificate the storage related code #16
Deploy to Production / deploy (push) Successful in 36s

This commit is contained in:
Lang
2026-10-24 18:09:58 +02:00
parent 7de1514cd9
commit 721eada72f
20 changed files with 196 additions and 595 deletions
-42
View File
@@ -1,42 +0,0 @@
#!/bin/sh
set -eu
PROJECT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
cd "$PROJECT_DIR"
CONTAINER_ID=$(docker compose ps -q minio)
if [ -z "$CONTAINER_ID" ]; then
echo "Error: The MineSeeker MinIO service is not running."
exit 1
fi
VOLUME_NAME=$(docker inspect "$CONTAINER_ID" --format '{{range .Mounts}}{{if eq .Destination "/data"}}{{.Name}}{{end}}{{end}}')
if [ -z "$VOLUME_NAME" ]; then
echo "Error: Could not determine the MinIO data volume."
exit 1
fi
BACKUP_DIR=${1:-"$PROJECT_DIR/backups"}
mkdir -p "$BACKUP_DIR"
BACKUP_DIR=$(CDPATH= cd -- "$BACKUP_DIR" && pwd)
TIMESTAMP=$(date +%Y-%m-%d.%H%M%S)
BACKUP_FILE="mineseeker-minio.${TIMESTAMP}.tar.gz"
BACKUP_PATH="$BACKUP_DIR/$BACKUP_FILE"
umask 077
restart_minio() {
docker compose start minio || echo "Warning: Failed to restart MinIO."
}
trap restart_minio EXIT
echo "Stopping MinIO for a consistent backup..."
docker compose stop minio
echo "Creating MinIO backup: $BACKUP_PATH"
docker run --rm \
--volume "$VOLUME_NAME:/data:ro" \
--volume "$BACKUP_DIR:/backup" \
busybox tar czf "/backup/$BACKUP_FILE" -C /data .
echo "Backup complete: $BACKUP_PATH"
+54
View File
@@ -0,0 +1,54 @@
#!/bin/sh
set -eu
PROJECT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
cd "$PROJECT_DIR"
CONTAINER_ID=$(docker compose ps -q rustfs)
if [ -z "$CONTAINER_ID" ]; then
echo "Error: The MineSeeker RustFS service is not running."
exit 1
fi
VOLUME_NAME=$(docker inspect "$CONTAINER_ID" --format '{{range .Mounts}}{{if eq .Destination "/data"}}{{.Name}}{{end}}{{end}}')
if [ -z "$VOLUME_NAME" ]; then
echo "Error: Could not determine the RustFS data volume."
exit 1
fi
BACKUP_DIR=${1:-"$PROJECT_DIR/backups"}
mkdir -p "$BACKUP_DIR"
BACKUP_DIR=$(CDPATH= cd -- "$BACKUP_DIR" && pwd)
TIMESTAMP=$(date +%Y-%m-%d.%H%M%S)
BACKUP_FILE="mineseeker-rustfs.${TIMESTAMP}.tar.gz"
BACKUP_PATH="$BACKUP_DIR/$BACKUP_FILE"
TEMP_PATH="$BACKUP_PATH.tmp"
umask 077
APP_WAS_RUNNING=0
SCHEDULER_WAS_RUNNING=0
RUSTFS_WAS_RUNNING=1
[ -z "$(docker compose ps -q app)" ] || APP_WAS_RUNNING=1
[ -z "$(docker compose ps -q scheduler)" ] || SCHEDULER_WAS_RUNNING=1
restart_services() {
result=$?
rm -f "$TEMP_PATH"
[ "$RUSTFS_WAS_RUNNING" -eq 0 ] || docker compose start rustfs || true
[ "$APP_WAS_RUNNING" -eq 0 ] || docker compose start app || true
[ "$SCHEDULER_WAS_RUNNING" -eq 0 ] || docker compose start scheduler || true
return "$result"
}
trap restart_services EXIT
echo "Stopping MineSeeker writers and RustFS for a consistent backup..."
docker compose stop app scheduler rustfs
echo "Creating RustFS backup: $BACKUP_PATH"
docker run --rm \
--volume "$VOLUME_NAME:/data:ro" \
--volume "$BACKUP_DIR:/backup" \
busybox tar czf "/backup/$BACKUP_FILE.tmp" -C /data .
mv "$TEMP_PATH" "$BACKUP_PATH"
echo "Backup complete: $BACKUP_PATH"
-61
View File
@@ -1,61 +0,0 @@
#!/bin/sh
set -eu
PROJECT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
cd "$PROJECT_DIR"
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <backup-file>"
echo "Example: $0 backups/mineseeker-minio.2026-08-18.120000.tar.gz"
exit 1
fi
BACKUP_FILE=$1
if [ ! -f "$BACKUP_FILE" ]; then
echo "Error: Backup file not found: $BACKUP_FILE"
exit 1
fi
BACKUP_DIR=$(CDPATH= cd -- "$(dirname -- "$BACKUP_FILE")" && pwd)
BACKUP_NAME=$(basename "$BACKUP_FILE")
CONTAINER_ID=$(docker compose ps -q minio)
if [ -z "$CONTAINER_ID" ]; then
echo "Error: The MineSeeker MinIO service is not running."
exit 1
fi
VOLUME_NAME=$(docker inspect "$CONTAINER_ID" --format '{{range .Mounts}}{{if eq .Destination "/data"}}{{.Name}}{{end}}{{end}}')
if [ -z "$VOLUME_NAME" ]; then
echo "Error: Could not determine the MinIO data volume."
exit 1
fi
echo "Verifying MinIO archive..."
docker run --rm \
--volume "$BACKUP_DIR:/backup:ro" \
busybox tar -tzf "/backup/$BACKUP_NAME" > /dev/null
echo "Archive OK."
printf 'WARNING: This erases all current MineSeeker MinIO data. Type yes to continue: '
read -r CONFIRM
if [ "$CONFIRM" != 'yes' ]; then
echo "Aborted."
exit 1
fi
restart_minio() {
docker compose start minio || echo "Warning: Failed to restart MinIO."
}
trap restart_minio EXIT
echo "Stopping MinIO before restore..."
docker compose stop minio
echo "Restoring MinIO backup: $BACKUP_FILE"
docker run --rm \
--volume "$VOLUME_NAME:/data" \
--volume "$BACKUP_DIR:/backup:ro" \
busybox sh -c 'find /data -mindepth 1 -maxdepth 1 -exec rm -rf {} + && tar xzf "/backup/$1" -C /data' sh "$BACKUP_NAME"
echo "Restore complete."
+77
View File
@@ -0,0 +1,77 @@
#!/bin/sh
set -eu
PROJECT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
cd "$PROJECT_DIR"
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <backup-file>"
echo "Example: $0 backups/mineseeker-rustfs.2026-10-24.120000.tar.gz"
exit 1
fi
BACKUP_FILE=$1
if [ ! -f "$BACKUP_FILE" ]; then
echo "Error: Backup file not found: $BACKUP_FILE"
exit 1
fi
BACKUP_DIR=$(CDPATH= cd -- "$(dirname -- "$BACKUP_FILE")" && pwd)
BACKUP_NAME=$(basename "$BACKUP_FILE")
CONTAINER_ID=$(docker compose ps -q rustfs)
if [ -z "$CONTAINER_ID" ]; then
echo "Error: The MineSeeker RustFS service must be running before restore."
exit 1
fi
VOLUME_NAME=$(docker inspect "$CONTAINER_ID" --format '{{range .Mounts}}{{if eq .Destination "/data"}}{{.Name}}{{end}}{{end}}')
if [ -z "$VOLUME_NAME" ]; then
echo "Error: Could not determine the RustFS data volume."
exit 1
fi
echo "Verifying RustFS archive..."
docker run --rm \
--volume "$BACKUP_DIR:/backup:ro" \
busybox tar -tzf "/backup/$BACKUP_NAME" > /dev/null
echo "Archive OK."
printf 'WARNING: This erases all current MineSeeker RustFS data. Type yes to continue: '
read -r CONFIRM
if [ "$CONFIRM" != 'yes' ]; then
echo "Aborted."
exit 1
fi
APP_WAS_RUNNING=0
SCHEDULER_WAS_RUNNING=0
RUSTFS_WAS_RUNNING=1
[ -z "$(docker compose ps -q app)" ] || APP_WAS_RUNNING=1
[ -z "$(docker compose ps -q scheduler)" ] || SCHEDULER_WAS_RUNNING=1
RESTORE_COMPLETE=0
restart_services() {
result=$?
if [ "$RESTORE_COMPLETE" -eq 1 ]; then
[ "$RUSTFS_WAS_RUNNING" -eq 0 ] || docker compose start rustfs || true
[ "$APP_WAS_RUNNING" -eq 0 ] || docker compose start app || true
[ "$SCHEDULER_WAS_RUNNING" -eq 0 ] || docker compose start scheduler || true
elif [ "$result" -ne 0 ]; then
echo "Restore did not complete; RustFS and application services remain stopped for safety." >&2
fi
return "$result"
}
trap restart_services EXIT
echo "Stopping MineSeeker writers and RustFS before restore..."
docker compose stop app scheduler rustfs
echo "Restoring RustFS backup: $BACKUP_FILE"
docker run --rm \
--volume "$VOLUME_NAME:/data" \
--volume "$BACKUP_DIR:/backup:ro" \
busybox sh -c 'find /data -mindepth 1 -maxdepth 1 -exec rm -rf {} + && tar xzf "/backup/$1" -C /data' sh "$BACKUP_NAME"
RESTORE_COMPLETE=1
echo "Restore complete."