Pulls in template changes: export_serving.py for atomic DuckDB swap, supervisor export step, SQLMesh glob macro, server provisioning script, imprint template, and formatting improvements. Template scaffold SQL models excluded (padelnomics has real models). Web app routes/analytics unchanged (padelnomics-specific customizations). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
52 lines
1.3 KiB
Bash
52 lines
1.3 KiB
Bash
#!/bin/bash
|
|
# One-time server setup: create app directory and GitLab deploy key.
|
|
# Run as root on a fresh server before deploying.
|
|
#
|
|
# Usage:
|
|
# bash infra/setup_server.sh
|
|
|
|
set -euo pipefail
|
|
|
|
APP_DIR="/opt/padelnomics"
|
|
KEY_PATH="$HOME/.ssh/padelnomics_deploy"
|
|
|
|
# Create app directory
|
|
mkdir -p "$APP_DIR"
|
|
echo "Created $APP_DIR"
|
|
|
|
# Generate deploy key if not already present
|
|
if [ ! -f "$KEY_PATH" ]; then
|
|
mkdir -p "$HOME/.ssh"
|
|
ssh-keygen -t ed25519 -f "$KEY_PATH" -N "" -C "padelnomics-server"
|
|
chmod 700 "$HOME/.ssh"
|
|
chmod 600 "$KEY_PATH"
|
|
chmod 644 "$KEY_PATH.pub"
|
|
|
|
# Configure SSH to use this key for gitlab.com
|
|
if ! grep -q "# padelnomics" "$HOME/.ssh/config" 2>/dev/null; then
|
|
cat >> "$HOME/.ssh/config" <<EOF
|
|
|
|
# padelnomics
|
|
Host gitlab.com
|
|
IdentityFile $KEY_PATH
|
|
EOF
|
|
chmod 600 "$HOME/.ssh/config"
|
|
fi
|
|
|
|
echo "Generated deploy key: $KEY_PATH"
|
|
else
|
|
echo "Deploy key already exists, skipping"
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== Next steps ==="
|
|
echo "1. Add this deploy key to GitLab (Settings → Repository → Deploy Keys, read-only):"
|
|
echo ""
|
|
cat "$KEY_PATH.pub"
|
|
echo ""
|
|
echo "2. Clone the repo:"
|
|
echo " git clone git@gitlab.com:YOUR_USER/padelnomics.git $APP_DIR"
|
|
echo ""
|
|
echo "3. Deploy:"
|
|
echo " cd $APP_DIR && bash deploy.sh"
|