Skip to main content
Glama
setup-ngrok-service.sh5.98 kB
#!/bin/bash # ngrok systemd サービスセットアップスクリプト # ngrokを常駐サービスとして動作させます echo "==========================================" echo "⚙️ ngrok systemd サービスセットアップ" echo "==========================================" echo "" # rootチェック if [ "$EUID" -eq 0 ]; then echo "⚠️ このスクリプトはroot権限で実行しないでください" echo " 必要に応じてsudoパスワードを求めます" exit 1 fi # ngrokがインストールされているか確認 if ! command -v ngrok &> /dev/null; then echo "❌ ngrokがインストールされていません" echo "" echo "インストール方法:" echo " ./install-ngrok.sh" exit 1 fi NGROK_PATH=$(which ngrok) echo "✅ ngrokが見つかりました: $NGROK_PATH" echo "" # 設定を取得 read -p "ポート番号を入力してください [3000]: " PORT PORT=${PORT:-3000} read -p "リージョンを入力してください (jp/us/eu/au/ap/sa/in) [jp]: " REGION REGION=${REGION:-jp} read -p "認証トークンを使用しますか? (Y/n): " -n 1 -r echo "" USE_AUTH=true if [[ $REPLY =~ ^[Nn]$ ]]; then USE_AUTH=false fi if [ "$USE_AUTH" = true ]; then # 認証トークンの確認 NGROK_CONFIG="$HOME/.config/ngrok/ngrok.yml" if [ -f "$NGROK_CONFIG" ] && grep -q "authtoken:" "$NGROK_CONFIG"; then echo "✅ 認証トークンが設定されています" else echo "⚠️ 認証トークンが設定されていません" echo "" read -p "認証トークンを入力してください: " AUTHTOKEN if [ -n "$AUTHTOKEN" ]; then $NGROK_PATH config add-authtoken "$AUTHTOKEN" echo "✅ 認証トークンを設定しました" else echo "❌ 認証トークンが入力されませんでした" exit 1 fi fi fi echo "" echo "==========================================" echo "📝 設定内容" echo "==========================================" echo "ポート: $PORT" echo "リージョン: $REGION" echo "認証: $([ "$USE_AUTH" = true ] && echo "あり" || echo "なし")" echo "ユーザー: $USER" echo "ngrokパス: $NGROK_PATH" echo "" read -p "この設定でサービスを作成しますか? (Y/n): " -n 1 -r echo "" if [[ $REPLY =~ ^[Nn]$ ]]; then echo "キャンセルしました" exit 0 fi # サービスファイルを作成 SERVICE_FILE="/tmp/ngrok.service" cat > "$SERVICE_FILE" << EOF [Unit] Description=ngrok tunnel After=network.target [Service] User=$USER ExecStart=$NGROK_PATH http --region=$REGION $PORT Restart=on-failure RestartSec=5 StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target EOF echo "" echo "==========================================" echo "📄 サービスファイル" echo "==========================================" cat "$SERVICE_FILE" echo "" read -p "このサービスをインストールしますか? (Y/n): " -n 1 -r echo "" if [[ $REPLY =~ ^[Nn]$ ]]; then echo "キャンセルしました" rm "$SERVICE_FILE" exit 0 fi # サービスファイルをインストール echo "" echo "インストール中(sudo必要)..." sudo cp "$SERVICE_FILE" /etc/systemd/system/ngrok.service sudo systemctl daemon-reload if [ $? -eq 0 ]; then echo "✅ サービスファイルをインストールしました" else echo "❌ インストールに失敗しました" rm "$SERVICE_FILE" exit 1 fi rm "$SERVICE_FILE" echo "" # サービスを有効化 read -p "サービスを有効化して起動しますか? (Y/n): " -n 1 -r echo "" if [[ ! $REPLY =~ ^[Nn]$ ]]; then echo "" echo "有効化と起動中..." sudo systemctl enable ngrok.service sudo systemctl start ngrok.service sleep 2 # ステータス確認 echo "" echo "==========================================" echo "📊 サービスステータス" echo "==========================================" sudo systemctl status ngrok.service --no-pager echo "" # URL取得 sleep 3 echo "==========================================" echo "🌐 ngrok URL" echo "==========================================" # ngrok APIから情報取得(ポート4040または4041) for port in 4040 4041; do TUNNELS=$(curl -s http://localhost:$port/api/tunnels 2>/dev/null) if [ -n "$TUNNELS" ]; then HTTPS_URL=$(echo "$TUNNELS" | jq -r '.tunnels[] | select(.proto == "https") | .public_url' 2>/dev/null) if [ -n "$HTTPS_URL" ] && [ "$HTTPS_URL" != "null" ]; then echo "✅ 公開URL: $HTTPS_URL" echo " 管理画面: http://localhost:$port" break fi fi done echo "" else echo "" echo "✅ サービスファイルのみインストールしました" echo "" echo "手動で起動する場合:" echo " sudo systemctl enable ngrok.service" echo " sudo systemctl start ngrok.service" fi echo "" echo "==========================================" echo "✅ セットアップ完了!" echo "==========================================" echo "" echo "🎮 サービス管理コマンド:" echo "" echo "ステータス確認:" echo " sudo systemctl status ngrok.service" echo "" echo "起動:" echo " sudo systemctl start ngrok.service" echo "" echo "停止:" echo " sudo systemctl stop ngrok.service" echo "" echo "再起動:" echo " sudo systemctl restart ngrok.service" echo "" echo "ログ確認:" echo " sudo journalctl -u ngrok.service -f" echo "" echo "サービス無効化:" echo " sudo systemctl disable ngrok.service" echo "" echo "サービス削除:" echo " sudo systemctl stop ngrok.service" echo " sudo systemctl disable ngrok.service" echo " sudo rm /etc/systemd/system/ngrok.service" echo " sudo systemctl daemon-reload" echo ""

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Amana03/universal-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server