Files
minecraft/scripts/apple-container-dev.sh
T
2026-10-05 18:34:53 -05:00

35 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Native macOS control process + Apple Linux containers for local server testing.
set -euo pipefail
project_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
local_dir="$project_dir/data/apple-native"
command -v container >/dev/null
container system status >/dev/null
mkdir -p "$local_dir/project"
if [[ ! -f "$local_dir/panel.env" ]]; then
python3 - "$local_dir/panel.env" <<'PY'
import os, secrets, sys
fd=os.open(sys.argv[1],os.O_WRONLY|os.O_CREAT|os.O_EXCL,0o600)
with os.fdopen(fd,'w') as f:
for key in ('PANEL_SESSION_SECRET','PANEL_ADMIN_PASSWORD','RCON_PASSWORD'):
f.write(key+'='+secrets.token_hex(24)+'\n')
PY
fi
set -a
source "$local_dir/panel.env"
set +a
export CONTAINER_RUNTIME=apple
export APPLE_CONTAINER_CLI="$(command -v container)"
export APP_DATA_DIR="$local_dir/dashboard"
export MC_DATA_DIR="$local_dir/mc"
export BACKUPS_DIR="$local_dir/backups"
export PROJECT_DIR="$local_dir/project"
export RESTORE_HELPER="$project_dir/dashboard/scripts/restore_data.py"
export RESTORE_WORK_DIR="$local_dir/recovery"
export NEXT_TELEMETRY_DISABLED=1
export PORT="${CRAFTDECK_LOCAL_PORT:-8081}"
echo "Native Apple runtime panel: http://localhost:$PORT/network"
echo "Login: admin; password is PANEL_ADMIN_PASSWORD in $local_dir/panel.env"
cd "$project_dir/dashboard"
exec npm run dev -- --hostname 127.0.0.1 --port "$PORT"