tokenvault/deploy.sh
Rene Fichtmueller d43b9f5298 feat: TokenVault MVP — hybrid MCP + proxy for LLM token savings
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).
2026-04-14 10:10:22 +02:00

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"