セットアップガイド

⚠️ 自己責任でご使用ください。 Reattachはマシン上でリモートコマンド実行を可能にします。使用前にセキュリティ上のリスクをご理解ください。reattachdにはデバイスベースの認証機能がありますが、インターネットに公開する場合は追加のセキュリティ対策(VPN、Cloudflare Zero Trustなど)を推奨します。

1 reattachdをインストール

オプションA: Homebrew (macOS)

brew tap kumabook/reattach
brew install reattachd

オプションB: インストールスクリプト (macOS / Linux)

curl -fsSL https://raw.githubusercontent.com/kumabook/Reattach/main/install.sh | sh
2 デーモンを設定

Homebrew services (macOS、最も簡単)

Homebrewでインストールした場合、以下のコマンド一つでバックグラウンドサービスとして起動できます:

brew services start reattachd

デフォルトの動作: 127.0.0.1:8787 に plain HTTP で bind します。brew services 経由で Tailscale 自動構成を有効にする方法は、下記の Tailscale + brew services を参照してください。

macOS (launchd)

# ログディレクトリを作成
mkdir -p ~/Library/Logs/Reattach

# plistファイルを作成
cat > ~/Library/LaunchAgents/com.kumabook.reattachd.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.kumabook.reattachd</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/reattachd</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>~/Library/Logs/Reattach/reattachd.log</string>
    <key>StandardErrorPath</key>
    <string>~/Library/Logs/Reattach/reattachd.error.log</string>
    <key>EnvironmentVariables</key>
    <dict>
        <key>REATTACHD_PORT</key>
        <string>8787</string>
        <!-- ローカルネットワークからのアクセスを許可する場合はコメント解除 (デフォルト: 127.0.0.1) -->
        <!-- <key>REATTACHD_BIND_ADDR</key> -->
        <!-- <string>0.0.0.0</string> -->
        <key>PATH</key>
        <string>/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin</string>
    </dict>
</dict>
</plist>
EOF

# 読み込んで開始
launchctl load ~/Library/LaunchAgents/com.kumabook.reattachd.plist

Linux (systemd)

# サービスファイルを作成
sudo tee /etc/systemd/system/reattachd.service << 'EOF'
[Unit]
Description=Reattach Daemon
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/reattachd
Restart=always
Environment=REATTACHD_PORT=8787
# ローカルネットワークからのアクセスを許可する場合はコメント解除 (デフォルト: 127.0.0.1)
# Environment=REATTACHD_BIND_ADDR=0.0.0.0

[Install]
WantedBy=multi-user.target
EOF

# 有効化して開始
sudo systemctl daemon-reload
sudo systemctl enable reattachd
sudo systemctl start reattachd
3 ネットワークアクセスを設定

iOSデバイスからreattachdへの接続方法を選択します:

ローカルネットワーク

直接接続

マシンのローカルIPアドレスを直接使用します。追加の設定は不要です。

URL: http://192.168.x.x:8787

VPN

VPNを設定している場合は、VPNネットワーク上のマシンのIPアドレスを使用します。

URL: http://<vpn-ip>:8787

リモートアクセス

Tailscale(推奨)

セキュアなリモートアクセスを最も簡単にセットアップする方法です。コマンド一つで TLS 証明書の取得、QRコード生成、サーバー起動までを処理します:

sudo reattachd --tailscale

Tailscale のホスト名と IP を自動検出し、tailscale cert で TLS 証明書を発行、Tailscale IPv4 アドレスのポート 8787 に bind します。デバイスが未登録の場合は QR コードも自動表示されます。

Linux では tailscale cert が証明書発行に root 権限を必要とするため sudo が必要です。

Tailscale + brew services

brew services は CLI 引数を pass-through できないため、Homebrew のデフォルト service は --tailscale なしで起動します。brew services 経由で Tailscale 自動構成を有効にするには、brew が管理する plist を直接編集してフラグを追加します:

brew services stop reattachd

# ~/Library/LaunchAgents/homebrew.mxcl.reattachd.plist を編集
# ProgramArguments に "--tailscale" を追加:
#   <key>ProgramArguments</key>
#   <array>
#       <string>/opt/homebrew/bin/reattachd</string>
#       <string>--tailscale</string>
#   </array>

brew services start reattachd

注意: brew services restartbrew upgrade reattachd を実行すると plist が Formula から再生成され、手動で加えた変更は失われます。アップグレードのたびに変更を入れ直す必要があります。頻繁にアップグレードする場合は、reattachd を sudo reattachd --tailscale で直接起動し、独自の launchd plist で管理することを検討してください。

Cloudflare Tunnel + Zero Trust Access(推奨)

ポートを公開せずにリモートアクセスを実現します。Cloudflare Zero TrustのAccess機能を使用することで、認証レイヤーを追加できます。

URL: https://your-domain.example.com

Cloudflareの詳細なセットアップガイドはこちら →

パブリックIP / ドメイン

パブリックIPやドメインで直接公開します。

URL: http://your-public-ip:8787
URL: https://your-domain.com:8787

⚠️ セキュリティ警告: この方法はマシンをインターネットに直接公開します。マシンが攻撃対象となり、デバイストークンが漏洩した場合、攻撃者がシステム上でコマンドを実行できる可能性があります。HTTPSを使用し、追加のセキュリティ対策(ファイアウォールルール、fail2banなど)を検討してください。

4 デバイスを登録

iOSデバイスを登録するためのQRコードを生成します:

reattachd setup --url <your-url>

Reattach iOSアプリでQRコードをスキャンして登録を完了します。

QRコードスキャン画面

サポートが必要ですか? 詳細やトラブルシューティングについてはGitHubリポジトリをご覧ください。