summaryrefslogtreecommitdiff
path: root/hetzner-admin/install.sh
diff options
context:
space:
mode:
Diffstat (limited to 'hetzner-admin/install.sh')
-rwxr-xr-xhetzner-admin/install.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/hetzner-admin/install.sh b/hetzner-admin/install.sh
new file mode 100755
index 0000000..f175cf9
--- /dev/null
+++ b/hetzner-admin/install.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+# 初回セットアップ: SSH鍵生成 → authorized_keys登録 → コンテナ起動
+set -euo pipefail
+cd "$(dirname "$0")"
+
+KEY="$(pwd)/id_rsa"
+
+if [ ! -f "$KEY" ]; then
+ ssh-keygen -t rsa -b 4096 -f "$KEY" -N "" -C "hetzner-admin"
+ echo "SSH key generated: $KEY"
+fi
+
+PUBKEY=$(cat "${KEY}.pub")
+RESTRICTION='command="/app/infra/hetzner-admin/run-command.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty'
+ENTRY="$RESTRICTION $PUBKEY"
+
+AUTH_KEYS="${HOME}/.ssh/authorized_keys"
+mkdir -p "${HOME}/.ssh"
+chmod 700 "${HOME}/.ssh"
+
+if grep -qF "hetzner-admin" "$AUTH_KEYS" 2>/dev/null; then
+ echo "Key already present in $AUTH_KEYS"
+else
+ echo "$ENTRY" >> "$AUTH_KEYS"
+ chmod 600 "$AUTH_KEYS"
+ echo "Public key added to $AUTH_KEYS"
+fi
+
+chmod +x "$(pwd)/run-command.sh"
+
+docker compose up -d --build