4-package monorepo: - @tokenvault/core: Fastify 5.x proxy server, 7-stage pipeline, 3 provider adapters (Anthropic, OpenAI, Ollama), PostgreSQL ticket system, cost calculator with real provider pricing - @tokenvault/mcp: MCP server (stdio) with tv_ticket, tv_cost, tv_health tools for IDE integration - @tokenvault/client: TypeScript SDK with createTokenVaultClient() - @tokenvault/dashboard: Single-file HTML dashboard with MAGATAMA CI style (indigo #6366f1), bilingual DE+EN, 4 tabs OpenAI-compatible proxy at /v1/chat/completions — drop-in replacement. Every LLM request becomes a trackable ticket (TV-00001).
42 lines
1.3 KiB
Bash
Executable File
42 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
REMOTE="root@82.165.222.127"
|
|
REMOTE_DIR="/opt/tokenvault"
|
|
LOCAL_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
echo "=== TokenVault Deploy ==="
|
|
|
|
# 1. Build locally
|
|
echo "[1/5] Building..."
|
|
cd "$LOCAL_DIR"
|
|
pnpm build
|
|
|
|
# 2. Sync to Erik
|
|
echo "[2/5] Syncing to Erik..."
|
|
rsync -avz --delete \
|
|
--exclude='node_modules' \
|
|
--exclude='.env' \
|
|
--exclude='.git' \
|
|
--exclude='coverage' \
|
|
"$LOCAL_DIR/" "$REMOTE:$REMOTE_DIR/"
|
|
|
|
# 3. Install dependencies on Erik
|
|
echo "[3/5] Installing dependencies..."
|
|
ssh "$REMOTE" "cd $REMOTE_DIR && pnpm install --prod --frozen-lockfile 2>/dev/null || npm install --omit=dev"
|
|
|
|
# 4. Create DB if needed
|
|
echo "[4/5] Setting up database..."
|
|
ssh "$REMOTE" "sudo -u postgres psql -tc \"SELECT 1 FROM pg_roles WHERE rolname='tokenvault'\" | grep -q 1 || sudo -u postgres createuser tokenvault"
|
|
ssh "$REMOTE" "sudo -u postgres psql -tc \"SELECT 1 FROM pg_database WHERE datname='tokenvault'\" | grep -q 1 || sudo -u postgres createdb -O tokenvault tokenvault"
|
|
ssh "$REMOTE" "mkdir -p $REMOTE_DIR/logs"
|
|
|
|
# 5. Start/restart PM2
|
|
echo "[5/5] Starting PM2 processes..."
|
|
ssh "$REMOTE" "cd $REMOTE_DIR && pm2 startOrRestart ecosystem.config.cjs && pm2 save"
|
|
|
|
echo ""
|
|
echo "=== Deploy complete ==="
|
|
echo "Core: http://localhost:3300/health"
|
|
echo "Dashboard: http://localhost:3301"
|