Files
dotfiles/nix/homelab/helm/values/minecraft/main.yaml

118 lines
2.7 KiB
YAML

resources:
requests:
cpu: 1
memory: 500Mi
limits:
memory: 6Gi
cpu: 2500m
minecraftServer:
eula: "TRUE"
type: "PAPER"
version: "1.21.11"
difficulty: hard
motd: "A Minecraft Server."
memory: 6G
rcon:
enabled: true
withGeneratedPassword: false
port: 25575
existingSecret: rcon-credentials
secretKey: rcon-password
persistence:
dataDir:
enabled: true
Size: 4Gi
sidecarContainers:
- name: backup
image: itzg/mc-backup
imagePullPolicy: Always
env:
- name: RCON_PASSWORD
valueFrom:
secretKeyRef:
name: rcon-credentials
key: rcon-password
- name: BACKUP_METHOD
value: tar
- name: BACKUP_INTERVAL
value: "15m"
- name: INITIAL_DELAY
value: "5m"
- name: PRUNE_BACKUPS_COUNT
value: "15"
- name: DEST_DIR
value: /mnt/backups
- name: LINK_LATEST
value: "true"
- name: TAR_COMPRESS_METHOD
value: gzip
- name: BACKUP_NAME
value: minecraft-main
- name: TZ
value: "America/Vancouver"
volumeMounts:
- name: datadir
mountPath: /data
readOnly: true
- name: backups
mountPath: /mnt/backups
extraVolumes:
- volumeMounts:
- name: backups
mountPath: /mnt/backups
volumes:
- name: backups
nfs:
server: 192.168.27.2
path: /backup/minecraft
initContainers:
- name: world-restore
image: busybox:latest
command:
- sh
- -c
- |
set -e
echo "=== Minecraft World Restore ==="
BACKUP_FILE="/backups/latest.tgz"
# Check if backup exists
if [[ ! -f "$BACKUP_FILE" ]]; then
echo "Skipping restore, server will start with existing/new world"
exit 0
fi
echo "✓ Backup found: $BACKUP_FILE"
echo " Size: $(du -h $BACKUP_FILE | cut -f1)"
# Check if world already exists
if [ -f /data/world/level.dat ]; then
echo "⚠ World already exists at /data/world/"
echo " Replacing with backup..."
rm -rf /data/world /data/world_nether /data/world_the_end
fi
# Extract backup
echo "Extracting backup to /data/..."
tar -xzf "$BACKUP_FILE" -C /data/
echo "✓ Extraction complete"
echo ""
echo "=== Restore Complete ==="
echo "Restored world size: $(du -sh /data/world 2>/dev/null | cut -f1 || echo 'unknown')"
ls -lh /data/ | grep -E "^d" || true
echo ""
volumeMounts:
- name: datadir
mountPath: /data
- name: backup-volume
mountPath: /backup
readOnly: true