summaryrefslogtreecommitdiff
path: root/hetzner-admin/install.sh
blob: f175cf908dd18e55a4d63f985a2298dd77bd6c0a (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
#!/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