a1331212cb
Self-hosted Minecraft modpack distribution + administration system.
- launcher/ Avalonia 12 desktop client; single-file win-x64 publish.
Microsoft auth via XboxAuthNet, manifest+SHA-1 mod sync,
portable install path, sidecar settings.
- server/ brass-sigil-server daemon (.NET 8, linux-x64). Wraps the
MC subprocess, embedded Kestrel admin panel with cookie
auth + rate limiting, RCON bridge, scheduled backups,
BlueMap CLI integration with player markers + skin proxy,
friend-side whitelist request flow, world wipe with seed
selection (keep current / random / custom).
- pack/ pack.lock.json (Modrinth + manual CurseForge entries),
data-only tweak source under tweaks/, build outputs in
overrides/ (gitignored).
- scripts/ Build-Pack / Build-Tweaks / Update-Pack / Check-Updates
plus Deploy-Brass.ps1 unified one-shot deploy with
version-bump pre-flight and daemon-state detection.
106 lines
4.8 KiB
Bash
106 lines
4.8 KiB
Bash
#!/usr/bin/env bash
|
|
# Sudo cleanup script -- review before running.
|
|
# Removes dormant game servers (ARK, Valheim, Terraria), trims journald logs,
|
|
# caps snap revision retention. Does NOT touch Bitbucket, TeamViewer, or the
|
|
# matt-wakeford.co.uk / sijbers.uk / diceheart.com websites.
|
|
#
|
|
# Run with: sudo bash /tmp/cleanup-sudo.sh
|
|
#
|
|
# Set -e: abort on first error so we don't cascade-damage state.
|
|
set -euo pipefail
|
|
|
|
echo "=== Pre-cleanup disk ==="
|
|
df -h / | grep -v Filesystem
|
|
|
|
# ────────────────────────────────────────────────
|
|
# 1. ARK server -- install, user, broken systemd unit
|
|
# ────────────────────────────────────────────────
|
|
echo
|
|
echo "=== ARK ==="
|
|
if systemctl list-unit-files ark.service &>/dev/null; then
|
|
echo " Disabling ark.service"
|
|
systemctl disable --now ark.service 2>/dev/null || true
|
|
fi
|
|
if [[ -f /lib/systemd/system/ark.service ]]; then
|
|
echo " Removing /lib/systemd/system/ark.service"
|
|
rm -f /lib/systemd/system/ark.service
|
|
fi
|
|
if [[ -f /etc/systemd/system/ark.service ]]; then
|
|
echo " Removing /etc/systemd/system/ark.service"
|
|
rm -f /etc/systemd/system/ark.service
|
|
fi
|
|
if id ark &>/dev/null; then
|
|
# Make sure no processes are running as ark before userdel.
|
|
pkill -u ark 2>/dev/null || true
|
|
sleep 1
|
|
echo " Removing 'ark' user + home"
|
|
userdel -r ark 2>/dev/null || userdel ark
|
|
fi
|
|
|
|
# ────────────────────────────────────────────────
|
|
# 2. Valheim (vhserver) -- LGSM stack
|
|
# ────────────────────────────────────────────────
|
|
echo
|
|
echo "=== Valheim (vhserver) ==="
|
|
if id vhserver &>/dev/null; then
|
|
pkill -u vhserver 2>/dev/null || true
|
|
sleep 1
|
|
echo " Removing 'vhserver' user + home (incl. orphaned LGSM backups)"
|
|
userdel -r vhserver 2>/dev/null || userdel vhserver
|
|
fi
|
|
|
|
# ────────────────────────────────────────────────
|
|
# 3. Terraria -- empty home, never used
|
|
# ────────────────────────────────────────────────
|
|
echo
|
|
echo "=== Terraria ==="
|
|
if id Terraria &>/dev/null; then
|
|
pkill -u Terraria 2>/dev/null || true
|
|
echo " Removing 'Terraria' user + home"
|
|
userdel -r Terraria 2>/dev/null || userdel Terraria
|
|
fi
|
|
|
|
# ────────────────────────────────────────────────
|
|
# 4. systemd reload to forget the gone units
|
|
# ────────────────────────────────────────────────
|
|
echo
|
|
echo "=== systemctl daemon-reload ==="
|
|
systemctl daemon-reload
|
|
systemctl reset-failed 2>/dev/null || true
|
|
|
|
# ────────────────────────────────────────────────
|
|
# 5. journald -- cap to 500 MB
|
|
# ────────────────────────────────────────────────
|
|
echo
|
|
echo "=== journald ==="
|
|
echo " Trimming /var/log/journal to 500 MB"
|
|
journalctl --vacuum-size=500M
|
|
|
|
# ────────────────────────────────────────────────
|
|
# 6. snap -- only keep current + 1 prior revision
|
|
# ────────────────────────────────────────────────
|
|
echo
|
|
echo "=== snap retention ==="
|
|
echo " Setting refresh.retain=2 (snap will auto-clean older revs over time)"
|
|
snap set system refresh.retain=2
|
|
|
|
# Force-clean orphaned _old.snap files older than 30 days. Snap will redo
|
|
# this organically but we can prod it now to reclaim immediately.
|
|
echo " Forcing snap to drop disabled revisions"
|
|
for snap in $(snap list --all | awk '/disabled/{print $1, $3}'); do
|
|
if [[ "$snap" == "disabled" ]]; then continue; fi
|
|
done
|
|
# Easier path: ask snap directly.
|
|
LANG=C snap list --all | awk '/disabled/{print $1, $3}' | \
|
|
while read -r name rev; do
|
|
echo " snap remove --revision=$rev $name"
|
|
snap remove --revision="$rev" "$name" || true
|
|
done
|
|
|
|
# ────────────────────────────────────────────────
|
|
echo
|
|
echo "=== Post-cleanup disk ==="
|
|
df -h / | grep -v Filesystem
|
|
echo
|
|
echo "Done. Bitbucket, TeamViewer, and websites untouched."
|