Files
whattoplay/deploy.sh
Felix Förtsch 109a9f383b add IGDB metadata enrichment, image proxy, rich game UI
server: metadata cache + fetch service, image proxy with disk cache,
POST /igdb/metadata + GET /igdb/image/:id/:size routes.
client: 002-metadata migration, enrichment wired into sync pipeline,
extracted SyncProgress component, square cover icons in list items,
genres/rating/summary on discover cards, tap-to-navigate on card stack,
rich game detail with screenshots, trailer embed, developer info.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 22:51:58 +01:00

66 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
eval "$(mise activate bash)"
UBERSPACE_HOST="${UBERSPACE_HOST:-serve}"
REMOTE_HTML_DIR="~/www/html/whattoplay"
REMOTE_SERVICE_DIR="~/services/whattoplay"
SERVICE_NAME="whattoplay"
PORT=3001
echo "==> building frontend..."
bun run build
echo "==> syncing frontend to $REMOTE_HTML_DIR/"
ssh "$UBERSPACE_HOST" "mkdir -p $REMOTE_HTML_DIR"
rsync -avz --delete dist/ "$UBERSPACE_HOST:$REMOTE_HTML_DIR/"
echo "==> syncing server to $REMOTE_SERVICE_DIR/"
ssh "$UBERSPACE_HOST" "mkdir -p $REMOTE_SERVICE_DIR/src $REMOTE_SERVICE_DIR/data/steam-icons $REMOTE_SERVICE_DIR/data/igdb-images/thumb $REMOTE_SERVICE_DIR/data/igdb-images/cover_big $REMOTE_SERVICE_DIR/data/igdb-images/screenshot_med"
rsync -avz --delete \
server/src/ "$UBERSPACE_HOST:$REMOTE_SERVICE_DIR/src/"
rsync -avz \
server/package.json "$UBERSPACE_HOST:$REMOTE_SERVICE_DIR/"
echo "==> installing server dependencies..."
ssh "$UBERSPACE_HOST" "cd $REMOTE_SERVICE_DIR && bun install --production"
echo "==> creating .env if missing..."
ssh "$UBERSPACE_HOST" "test -f $REMOTE_SERVICE_DIR/.env || cat > $REMOTE_SERVICE_DIR/.env" <<'ENV'
PORT=3001
ALLOWED_ORIGIN=https://serve.uber.space
TWITCH_CLIENT_ID=
TWITCH_CLIENT_SECRET=
ENV
echo "==> setting up web backend..."
ssh "$UBERSPACE_HOST" "uberspace web backend add /whattoplay/api port $PORT --remove-prefix --force" || true
echo "==> setting up systemd service..."
ssh "$UBERSPACE_HOST" "mkdir -p ~/.config/systemd/user"
ssh "$UBERSPACE_HOST" "cat > ~/.config/systemd/user/$SERVICE_NAME.service" <<'UNIT'
[Unit]
Description=WhatToPlay API server
After=network.target
[Service]
ExecStart=/usr/bin/bun run src/index.ts
WorkingDirectory=%h/services/whattoplay
Restart=always
RestartSec=5
EnvironmentFile=%h/services/whattoplay/.env
[Install]
WantedBy=default.target
UNIT
ssh "$UBERSPACE_HOST" "systemctl --user daemon-reload && systemctl --user enable $SERVICE_NAME && systemctl --user restart $SERVICE_NAME"
echo "==> checking service status..."
ssh "$UBERSPACE_HOST" "systemctl --user status $SERVICE_NAME --no-pager" || true
echo "==> deploy complete"
echo " frontend: https://serve.uber.space/whattoplay/"
echo " api: https://serve.uber.space/whattoplay/api/health"