Initial commit: Headscale management scripts and configuration

- Add headscale binary and configuration files
- Include management scripts for API keys, nodes, and authentication
- Add Docker setup with docker-compose
- Include backup and restore functionality
- Add example scripts for creating API keys and pre-auth keys

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-03-24 10:08:28 +08:00
commit 1410ba6630
15 changed files with 744 additions and 0 deletions

33
create_headscale_api_key.sh Executable file
View File

@@ -0,0 +1,33 @@
#!/bin/bash
# Headscale 的 API 金鑰就像是你進入 Headscale API 世界的通行證。
# 有了這把鑰匙,只有你能開門進行操作,保證你是被認可的。
# 用這金鑰就能鎖住 API防止那些不速之客亂搞。
# 定義變數以便管理
CONTAINER_NAME="headscale"
COMMAND="headscale apikeys create"
EXPIRATION="87600h" # 等於 10 年
# 執行 Docker 指令來建立 API 金鑰,輸出為 JSON 格式
echo "Creating API key for Headscale with expiration of $EXPIRATION..."
response=$(docker exec -it "$CONTAINER_NAME" $COMMAND --expiration "$EXPIRATION" --output json 2>&1)
# 檢查指令是否成功執行
if [ $? -eq 0 ]; then
echo "API key created successfully!"
# 嘗試提取 API 金鑰
# 簡單檢查響應中是否包含 key 欄位,或者直接提取引號內的內容
api_key=$(echo "$response" | grep -o '"[^"]*"' | sed 's/"//g')
if [ -n "$api_key" ]; then
echo "API Key: $api_key"
else
echo "Warning: Could not extract API key from response."
echo "Raw response: $response"
fi
else
echo "Error: Failed to create API key."
echo "Error message: $response"
exit 1
fi