summaryrefslogtreecommitdiff
path: root/hetzner-admin/run-command.sh
diff options
context:
space:
mode:
Diffstat (limited to 'hetzner-admin/run-command.sh')
-rwxr-xr-xhetzner-admin/run-command.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/hetzner-admin/run-command.sh b/hetzner-admin/run-command.sh
new file mode 100755
index 0000000..50280b9
--- /dev/null
+++ b/hetzner-admin/run-command.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+# SSH authorized_keys の command= から呼ばれる。$SSH_ORIGINAL_COMMAND をホワイトリストで検証する。
+set -e
+
+case "$SSH_ORIGINAL_COMMAND" in
+ "docker ps")
+ exec docker ps
+ ;;
+ "docker compose -f /app/infra/caddy/docker-compose.yml restart")
+ exec docker compose -f /app/infra/caddy/docker-compose.yml restart
+ ;;
+ "docker compose -f /app/infra/mail/docker-compose.yml restart")
+ exec docker compose -f /app/infra/mail/docker-compose.yml restart
+ ;;
+ "docker compose -f /app/infra/cgit/docker-compose.yml restart")
+ exec docker compose -f /app/infra/cgit/docker-compose.yml restart
+ ;;
+ "docker compose -f /app/infra/hetzner-admin/docker-compose.yml restart")
+ exec docker compose -f /app/infra/hetzner-admin/docker-compose.yml restart
+ ;;
+ "reboot")
+ exec reboot
+ ;;
+ *)
+ echo "Not allowed: $SSH_ORIGINAL_COMMAND" >&2
+ exit 1
+ ;;
+esac