Add internal daemon routes and service management scripts
This commit is contained in:
Executable
+81
@@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="/root/codex/source-gamepanel"
|
||||
PNPM="/root/.nvm/versions/node/v24.13.1/bin/pnpm"
|
||||
SERVICES=(
|
||||
"source-gamepanel-api.service"
|
||||
"source-gamepanel-web.service"
|
||||
"source-gamepanel-daemon.service"
|
||||
)
|
||||
|
||||
usage() {
|
||||
cat <<'EOF'
|
||||
Usage: panelctl <command>
|
||||
|
||||
Commands:
|
||||
start Start all services
|
||||
stop Stop all services
|
||||
restart Restart all services
|
||||
status Show status of all services
|
||||
logs Tail logs of all services
|
||||
rebuild Rebuild API/Web/Daemon binaries
|
||||
update Pull latest code, rebuild, migrate DB, restart services
|
||||
deploy Rebuild current code, migrate DB, restart services
|
||||
EOF
|
||||
}
|
||||
|
||||
rebuild_all() {
|
||||
cd "$ROOT"
|
||||
"$PNPM" install --frozen-lockfile
|
||||
"$PNPM" --filter @source/api build
|
||||
"$PNPM" --filter @source/web build
|
||||
source "$HOME/.cargo/env"
|
||||
cd "$ROOT/apps/daemon"
|
||||
cargo build --release
|
||||
}
|
||||
|
||||
migrate_db() {
|
||||
cd "$ROOT"
|
||||
"$PNPM" db:migrate
|
||||
}
|
||||
|
||||
cmd="${1:-}"
|
||||
case "$cmd" in
|
||||
start)
|
||||
systemctl start "${SERVICES[@]}"
|
||||
;;
|
||||
stop)
|
||||
systemctl stop "${SERVICES[@]}"
|
||||
;;
|
||||
restart)
|
||||
systemctl restart "${SERVICES[@]}"
|
||||
;;
|
||||
status)
|
||||
systemctl --no-pager --full status "${SERVICES[@]}"
|
||||
;;
|
||||
logs)
|
||||
journalctl -u "${SERVICES[0]}" -u "${SERVICES[1]}" -u "${SERVICES[2]}" -f
|
||||
;;
|
||||
rebuild)
|
||||
rebuild_all
|
||||
;;
|
||||
update)
|
||||
cd "$ROOT"
|
||||
git pull --ff-only
|
||||
rebuild_all
|
||||
migrate_db
|
||||
systemctl restart "${SERVICES[@]}"
|
||||
systemctl --no-pager --full status "${SERVICES[@]}"
|
||||
;;
|
||||
deploy)
|
||||
rebuild_all
|
||||
migrate_db
|
||||
systemctl restart "${SERVICES[@]}"
|
||||
systemctl --no-pager --full status "${SERVICES[@]}"
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
cd /root/codex/source-gamepanel/apps/api
|
||||
exec /root/.nvm/versions/node/v24.13.1/bin/pnpm dev
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
cd /root/codex/source-gamepanel/apps/daemon
|
||||
export DAEMON_CONFIG=/root/codex/source-gamepanel/daemon-dev.yml
|
||||
exec /root/codex/source-gamepanel/apps/daemon/target/release/gamepanel-daemon
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
cd /root/codex/source-gamepanel/apps/web
|
||||
exec /root/.nvm/versions/node/v24.13.1/bin/pnpm dev --host 0.0.0.0 --port 5173
|
||||
Reference in New Issue
Block a user