blob: 548fb5dc338c2763aa143d34dbdc048279446628 (
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
32
33
34
35
36
37
|
#!/usr/bin/env bash
# 初回セットアップ: コンテナ起動 → 管理ユーザー作成 → status-app 用トークン発行
set -euo pipefail
cd "$(dirname "$0")"
USER_NAME="${1:-admin}"
TOPIC="${NTFY_TOPIC:-status}"
STATUS_ENV="$(pwd)/../status/.env"
bash ./deploy.sh
sleep 2
if docker exec ntfy ntfy user list 2>&1 | grep -q "^user $USER_NAME "; then
echo "User $USER_NAME already exists"
else
echo "Creating ntfy admin user: $USER_NAME"
docker exec -it ntfy ntfy user add --role=admin "$USER_NAME"
fi
# status ページは公開なので、通知トピックも誰でも購読(読み取り)できるようにする。送信はトークン必須
docker exec ntfy ntfy access "*" "$TOPIC" read-only
if grep -q '^NTFY_TOKEN=' "$STATUS_ENV" 2>/dev/null; then
echo "NTFY_TOKEN already set in $STATUS_ENV"
else
TOKEN=$(docker exec ntfy ntfy token add --label=status-app "$USER_NAME" | grep -o 'tk_[a-z0-9]*')
{
echo "NTFY_URL=http://ntfy/$TOPIC"
echo "NTFY_TOKEN=$TOKEN"
} >> "$STATUS_ENV"
chmod 600 "$STATUS_ENV"
echo "Token written to $STATUS_ENV"
bash ../status/deploy.sh
fi
echo ""
echo "購読: ntfy アプリで サーバー https://ntfy.yyamashita.com / トピック $TOPIC(ログイン不要)"
|