#!/bin/bash # Kipinä Studio — tuotanto-deploy kipina.studioon # Buildaa Docker-imagen (frontend + hub + wasm) ja vie palvelimelle # Käyttö: ./deploy-remote.sh set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" cd "$SCRIPT_DIR" SERVER="ubuntu@86.50.252.98" REMOTE_DIR="~/code/agentic-studio/network-poc" KEY="$HOME/.ssh/id_rsa" SSH_OPTS="-o StrictHostKeyChecking=no -i $KEY" # SSH-avain if ! ssh-add -l 2>/dev/null | grep -q id_rsa; then echo "SSH-avain puuttuu agentista..." ssh-add "$KEY" fi # Auto-commit if ! git diff --quiet HEAD 2>/dev/null || \ [ -n "$(git ls-files --others --exclude-standard 2>/dev/null)" ]; then echo "Uncommitted muutoksia — commitoidaan..." read -rp " Commit-viesti: " msg [ -z "$msg" ] && msg="Deploy $(date +%Y-%m-%d\ %H:%M)" git add -A && git commit -m "$msg" fi echo "=== Kipinä Studio Deploy → kipina.studio ===" # 1. Docker-image echo "[1/4] Docker build..." docker build --platform linux/amd64 -f Dockerfile.prod -t kipina-agentic:latest . # 2. Pakkaus echo "[2/4] Pakataan..." docker save kipina-agentic:latest | gzip > /tmp/kipina-agentic.tar.gz echo " $(du -h /tmp/kipina-agentic.tar.gz | cut -f1)" # 3. Siirto echo "[3/4] Siirretään..." scp $SSH_OPTS /tmp/kipina-agentic.tar.gz "$SERVER:/tmp/" scp $SSH_OPTS docker-compose.prod.yml Caddyfile.prod "$SERVER:$REMOTE_DIR/" # 4. Käynnistys echo "[4/4] Käynnistetään..." ssh $SSH_OPTS "$SERVER" "gunzip -c /tmp/kipina-agentic.tar.gz | docker load && rm /tmp/kipina-agentic.tar.gz" ssh $SSH_OPTS "$SERVER" "cd $REMOTE_DIR && docker compose -f docker-compose.prod.yml down && docker compose -f docker-compose.prod.yml up -d" # Discord WEBHOOK="https://discord.com/api/webhooks/1489504066898755687/8U02d0wug-3MkVax0xMmRoj0s_-V1psnNLPWdSOjnGnKRBUpPjaU6XiX9Iu8DgJI69AP" HASH=$(git log -1 --pretty=format:"%h" 2>/dev/null || echo "?") MSG=$(git log -1 --pretty=format:"%s" 2>/dev/null || echo "?") PAYLOAD=$(python3 -c "import json,sys; print(json.dumps({'content':sys.argv[1]}))" \ "🚀 **Kipinä Studio julkaistu!** \`${HASH}\` ${MSG} https://kipina.studio") curl -sf -H "Content-Type: application/json" -d "$PAYLOAD" "$WEBHOOK" >/dev/null || true echo "=== Valmis! https://kipina.studio ==="