blob: ce2ad873fc93e3121a58b06234ec32636c1c4346 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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"
|