auto-save 2026-04-19 21:06 (+6, ~4)
This commit is contained in:
70
scripts/deploy.sh
Executable file
70
scripts/deploy.sh
Executable file
@@ -0,0 +1,70 @@
|
||||
#!/bin/bash
|
||||
# Deploy orchestrator to VPS.
|
||||
# Idempotent: safe to run for updates (just re-syncs code and restarts).
|
||||
set -euo pipefail
|
||||
|
||||
VPS="${VPS:-root@2.24.28.41}"
|
||||
REMOTE_DIR="/opt/lobe-sandbox"
|
||||
ENV_FILE="/etc/lobe-sandbox/orchestrator.env"
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
|
||||
log() { echo "==> $*"; }
|
||||
|
||||
log "1/6 Ensure Bun on VPS"
|
||||
ssh "$VPS" '
|
||||
command -v bun >/dev/null || {
|
||||
curl -fsSL https://bun.sh/install | env BUN_INSTALL=/usr/local bash
|
||||
}
|
||||
bun --version
|
||||
'
|
||||
|
||||
log "2/6 Ensure remote dirs"
|
||||
ssh "$VPS" "mkdir -p $REMOTE_DIR /etc/lobe-sandbox /var/lib/lobe-sandbox"
|
||||
|
||||
log "3/6 Sync orchestrator source"
|
||||
rsync -az --delete \
|
||||
--exclude node_modules --exclude dist --exclude .env --exclude .env.local \
|
||||
"$PROJECT_ROOT/orchestrator/" \
|
||||
"$VPS:$REMOTE_DIR/orchestrator/"
|
||||
|
||||
log "4/6 bun install on VPS"
|
||||
ssh "$VPS" "cd $REMOTE_DIR/orchestrator && bun install --production --frozen-lockfile 2>/dev/null || bun install --production"
|
||||
|
||||
log "5/6 Env file (only if missing — do not overwrite)"
|
||||
ssh "$VPS" "
|
||||
if [ ! -f $ENV_FILE ]; then
|
||||
cat > $ENV_FILE <<'ENV'
|
||||
PORT=8700
|
||||
HOST=127.0.0.1
|
||||
SANDBOX_ORCH_SECRET=CHANGEME_RUN_openssl_rand_base64_32
|
||||
INCUS_PROJECT=lobe-sandbox
|
||||
INCUS_PROFILE=sandbox-default
|
||||
INCUS_BASE_IMAGE=lobe-sandbox-base
|
||||
INCUS_CONTAINER_PREFIX=sb-
|
||||
IDLE_TIMEOUT_MS=1800000
|
||||
STATE_DB_PATH=/var/lib/lobe-sandbox/state.sqlite
|
||||
S3_ENDPOINT=http://192.168.2.221:9000
|
||||
S3_REGION=us-east-1
|
||||
S3_BUCKET=lobe-sandbox-exports
|
||||
S3_ACCESS_KEY_ID=admin
|
||||
S3_SECRET_ACCESS_KEY=CHANGEME
|
||||
S3_FORCE_PATH_STYLE=true
|
||||
ENV
|
||||
chmod 600 $ENV_FILE
|
||||
echo '!!! First deploy. Edit $ENV_FILE before starting service !!!'
|
||||
fi
|
||||
"
|
||||
|
||||
log "6/6 Install systemd unit and reload"
|
||||
scp "$PROJECT_ROOT/deploy/sandbox-orchestrator.service" \
|
||||
"$VPS:/etc/systemd/system/sandbox-orchestrator.service"
|
||||
ssh "$VPS" 'systemctl daemon-reload'
|
||||
|
||||
log "DONE"
|
||||
log ""
|
||||
log "Next: ssh $VPS and run:"
|
||||
log " 1. nano $ENV_FILE # set SANDBOX_ORCH_SECRET + S3_SECRET_ACCESS_KEY"
|
||||
log " 2. systemctl enable --now sandbox-orchestrator"
|
||||
log " 3. journalctl -u sandbox-orchestrator -f"
|
||||
log " 4. curl http://127.0.0.1:8700/health"
|
||||
0
scripts/host-init.sh
Normal file → Executable file
0
scripts/host-init.sh
Normal file → Executable file
Reference in New Issue
Block a user