readysite / hosting / setup.sh
1.2 KB
setup.sh
#!/bin/bash
# Server setup script for hosting.readysite.org
# Run by launch tool on deployment

set -e

echo "==> Setting up Caddy reverse proxy"

# Create Caddy directories
mkdir -p /mnt/data/caddy/data
mkdir -p /mnt/data/caddy/config
mkdir -p /mnt/data/caddy/sites

# Write Caddyfile
cat > /mnt/data/caddy/Caddyfile <<'EOF'
readysite.org {
	reverse_proxy readysite-org:5000
}

hosting.readysite.org {
	reverse_proxy hosting:8080
}

import /etc/caddy/sites/*.caddy
EOF

echo "==> Caddy setup complete"

echo "==> Initializing Docker Swarm"

# Initialize Docker Swarm (idempotent)
docker info --format '{{.Swarm.LocalNodeState}}' | grep -q active || \
    docker swarm init --advertise-addr $(hostname -I | awk '{print $1}')

# Open Swarm ports
ufw allow 2377/tcp   # Cluster management
ufw allow 7946       # Inter-node communication (TCP+UDP)
ufw allow 4789/udp   # Overlay network traffic

echo "==> Generating SSH key for Pro server access"

# Generate SSH key for Pro server access (if not exists)
mkdir -p /mnt/data/hosting/ssh
[ -f /mnt/data/hosting/ssh/id_ed25519 ] || \
    ssh-keygen -t ed25519 -f /mnt/data/hosting/ssh/id_ed25519 -N ""
chmod 600 /mnt/data/hosting/ssh/id_ed25519

echo "==> Setup complete"
← Back