summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/server-setup.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/scripts/server-setup.sh b/scripts/server-setup.sh
new file mode 100644
index 0000000..ce2ad87
--- /dev/null
+++ b/scripts/server-setup.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+# Run once on a fresh Hetzner VPS (as root). Run this first before other app setups.
+set -e
+
+APP_DIR=/app/infra
+REPO_DIR=/var/git/hetzner-infra.git
+
+# Install Docker
+curl -fsSL https://get.docker.com | sh
+
+# Create shared Docker network
+docker network create web || true
+
+mkdir -p "$APP_DIR"
+
+mkdir -p "$REPO_DIR"
+git init --bare "$REPO_DIR"
+
+cat > "$REPO_DIR/hooks/post-receive" << 'EOF'
+#!/bin/bash
+set -e
+APP_DIR=/app/infra
+GIT_WORK_TREE=$APP_DIR git checkout -f
+cd $APP_DIR
+docker compose up -d
+docker compose exec -T caddy caddy reload --config /etc/caddy/Caddyfile
+echo "Deploy complete: hetzner-infra"
+EOF
+
+chmod +x "$REPO_DIR/hooks/post-receive"
+
+echo ""
+echo "Setup complete. On your local machine, run:"
+echo " git remote add hetzner root@<server-ip>:$REPO_DIR"
+echo " git push hetzner master"
+echo ""
+echo "Then run setup scripts for each app:"
+echo " tokyo-livehouse-events/scripts/server-setup.sh"
+echo " whois-band/scripts/server-setup.sh"