35 lines
1.3 KiB
Bash
Executable File
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"
|