60 lines
2.4 KiB
Bash
Executable File
60 lines
2.4 KiB
Bash
Executable File
#!/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"
|
|
SSH_OPTS="-o StrictHostKeyChecking=no"
|
|
|
|
# SSH-avain — yritetään yhdistää, jos ei onnistu, pyydetään avainta
|
|
if ! ssh $SSH_OPTS "$SERVER" "echo ok" >/dev/null 2>&1; then
|
|
echo "SSH-yhteys ei onnistu, lisätään avain..."
|
|
ssh-add "$HOME/.ssh/id_rsa" 2>/dev/null || ssh-add
|
|
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 (CACHEBUST pakottaa lähdekoodin uudelleenkopioinnin)
|
|
echo "[1/4] Docker build..."
|
|
docker build --platform linux/amd64 -f Dockerfile.prod \
|
|
--build-arg CACHEBUST="$(git rev-parse HEAD)" \
|
|
-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 ==="
|