Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016h8oztcj2AdAUDyAKeXf6W
23 lines
1.4 KiB
Bash
23 lines
1.4 KiB
Bash
#!/bin/sh
|
|
# Zweiten Standort beitreten (sekundaerer DNS). Ein Aufruf, idempotent.
|
|
# GC_SECONDARY="<zone>@<primaer-ip>:53" GC_BIND_IP=<oeffentliche-IP> sh join.sh
|
|
# Das Projekt heisst standardmaessig gc-secondary (GC_PROJECT aenderbar). Beruehrt keine anderen Container, Netze oder Systemeinstellungen.
|
|
set -eu
|
|
: "${GC_SECONDARY:?GC_SECONDARY=zone@primaer-ip:53 setzen}"
|
|
P="${GC_PROJECT:-gc-secondary}"
|
|
D="${GC_DIR:-$HOME/$P}"
|
|
mkdir -p "$D" && cd "$D"
|
|
curl -fsSL https://git1.mrmoe.de/mscadm/ground-control-install/raw/branch/main/secondary/docker-compose.yml -o docker-compose.yml
|
|
printf 'GC_PROJECT=%s\nGC_SECONDARY=%s\nGC_BIND_IP=%s\n' "$P" "$GC_SECONDARY" "${GC_BIND_IP:-0.0.0.0}" > .env
|
|
IP="${GC_BIND_IP:-}"
|
|
if [ -n "$IP" ] && ss -lun 2>/dev/null | awk '{print $5}' | grep -Eq "^($IP|0\.0\.0\.0|\*):53$"; then echo "FEHLER: $IP:53 ist belegt (nicht von uns): "; ss -lunp | grep ':53 ' ; exit 1; fi
|
|
# Eigene, leere Docker-Konfiguration: das Image ist oeffentlich lesbar; evtl. vorhandene (veraltete) Registry-Logins
|
|
# des Hosts duerfen den anonymen Pull nicht stoeren und werden nicht veraendert.
|
|
export DOCKER_CONFIG="$D/.docker"; mkdir -p "$DOCKER_CONFIG"
|
|
[ -d "$HOME/.docker/cli-plugins" ] && ln -sfn "$HOME/.docker/cli-plugins" "$DOCKER_CONFIG/cli-plugins" || true
|
|
docker compose pull -q
|
|
docker compose up -d
|
|
sleep 3
|
|
docker compose ps
|
|
docker logs --tail 5 "${P}-dns" 2>&1 | cut -c1-160
|