Files
playground/scripts/bootstrap-boka.sh
T
Frank Schwenk 8cdde429f5 feat: playground static site with cursor webhook deploy
Scaffold nginx + deploy-hook stack for playground.schwenk.online,
Gitea cursor workflow, directory-based public/ content, and boka
bootstrap via git clone.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-05 16:07:24 +02:00

51 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Bootstrap or refresh playground on boka from Gitea.
# Run from dev machine: ./scripts/bootstrap-boka.sh
set -euo pipefail
REMOTE_HOST="${REMOTE_HOST:-frank-schwenk.de}"
REMOTE_PATH="${REMOTE_PATH:-/home/frank/playground.schwenk.online}"
GITEA_REPO="ssh://git@gitea.schwenk.online:2222/froxxxy/playground.git"
ssh "${REMOTE_HOST}" bash -s <<EOF
set -euo pipefail
GITEA_REPO="${GITEA_REPO}"
REMOTE_PATH="${REMOTE_PATH}"
ENV_BACKUP=""
if [ -f "\${REMOTE_PATH}/.env" ]; then
ENV_BACKUP=\$(mktemp)
cp "\${REMOTE_PATH}/.env" "\${ENV_BACKUP}"
fi
if [ -d "\${REMOTE_PATH}" ]; then
cd "\${REMOTE_PATH}"
docker compose down 2>/dev/null || true
cd /home/frank
mv "\${REMOTE_PATH}" "\${REMOTE_PATH}.bak.\$(date +%s)"
fi
git clone "\${GITEA_REPO}" "\${REMOTE_PATH}"
cd "\${REMOTE_PATH}"
if [ -n "\${ENV_BACKUP}" ] && [ -f "\${ENV_BACKUP}" ]; then
cp "\${ENV_BACKUP}" .env
rm -f "\${ENV_BACKUP}"
elif [ ! -f .env ]; then
WEBHOOK_SECRET=\$(openssl rand -hex 32)
cat > .env <<ENVEOF
WEBHOOK_SECRET=\${WEBHOOK_SECRET}
DEPLOY_GIT_TOKEN=
HOST_UID=\$(id -u)
HOST_GID=\$(id -g)
ENVEOF
echo "Created .env with generated WEBHOOK_SECRET:"
grep WEBHOOK_SECRET .env
fi
docker compose up -d --build
docker compose ps
EOF
echo "Bootstrap finished: \${REMOTE_PATH} is a git clone of \${GITEA_REPO}"