#!/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" <