Cloudのファイルとネットワーク
このページでは、マシンへのファイルとシークレットの転送、ポートとデスクトップの開き方、プライベートネットワークの仕組み、URLの公開方法を説明します。
ファイルのアップロードとダウンロード
cmux vm push はファイルまたはフォルダをマシンにアップロードします。転送はSHA-256で検証されます。デフォルトでは .git、node_modules、.venv、__pycache__、.DS_Store を除外します。これらを含めるには --no-default-excludes を、ほかのパスも除外するには --exclude を、保存するたびに変更を再アップロードするには --watch を使います。
cmux vm push brave-otter ./app ~/app
cmux vm push brave-otter . ~/repo --no-default-excludes
cmux vm push brave-otter . ~/repo --exclude dist --watch
cmux vm pull brave-otter ~/repo/report.html ./report.html1回のアップロードは最大256 MBです。大きなリポジトリはマシン内でcloneしてください。
cmux vm pull はマシンからファイルをダウンロードします。
シークレットファイル
cmux vm push --secret は、最大256 KBの小さなファイルを暗号化されたcmuxリンク経由でアップロードします。ファイルはデフォルトでモード0600で書き込まれます。鍵や認証情報には通常のアップロードではなくこちらを使ってください。
cmux vm push --secret brave-otter ~/.npmrc ~/.npmrc環境変数
cmux vm env は変数をマシンのディスク上の ~/.config/cmux/env に保存します。新しいシェルはすべてこれを読み込みます。値は暗号化されたリンクで送られ、表示されません。cmux vm env ls は --show を付けない限り値を隠します。
cmux vm env set brave-otter --from-file .env
op read op://dev/stripe/key | cmux vm env set brave-otter -
cmux vm env ls brave-otter
cmux vm env rm brave-otter STRIPE_KEYKEY=VALUE 形式の引数はローカルのシェル履歴に残る可能性があります。シークレットには --from-file または標準入力を使ってください。
ポートとアプリ内ブラウザ
マシンで開発サーバーを起動し、Cloudターミナル内のlocalhostのURLを⌘クリックします。cmuxがマシンのプライベートアドレスでブラウザペインを開きます。localhostだけで待ち受けるサーバーも動作します。VPNやポートフォワーディングは不要です。
cmux vm ports はマシンで開いているポートを一覧表示します。クラウドサイドバーでは「ポート」の下に表示されます。cmux vm open machine:port/number で1つを開きます。
cmux vm ports brave-otter
cmux vm open brave-otter:port/3000デスクトップ
すべてのマシンにLinuxデスクトップがあります。マシンのメニューの「デスクトップを開く」から開くか、cmux vm desktop を実行します。VNC経由でブラウザペインに開きます。GUIアプリ、Chrome、ブラウザ自動化はこのディスプレイ上で動作します。
cmux vm desktop brave-otterプライベートネットワーク
マシンには外部から接続できる公開ポートがありません。cmuxはアカウントごとにプライベートネットワークを用意し、各MacはそのMacから外に出ない独自のWireGuard鍵で接続します。接続はcmuxアプリ内で開始され、承認は不要です。
同じプライベートネットワーク上で、マシン同士は互いに通信できます。
cmux.comのCloud Mac accessページに、マシンに接続できるMacが一覧表示されます。そこでMacの名前を変更したり、アクセスを取り消したりできます。Macのアクセスを取り消すと、そのMacはサインアウトされ、すべてのマシンへのアクセスを失います。
システムVPN(任意)
cmux vpn up はシステムルートを追加し、別のブラウザやデータベースクライアントなど、Mac上のほかのアプリからマシンに接続できるようにします。cmux自体には必要ありません。初回は、システム設定 › 一般 › ログイン項目と機能拡張 でcmuxのネットワーク機能拡張を承認します。cmux vpn down でオフにします。
cmux vpn up
cmux vpn status
cmux vpn down公開URL
cmux cloud domains publish は、マシンのポートにHTTPSのURLを割り当てます。生成されるホスト名の末尾は .cmux.sh です。
cmux cloud domains publish brave-otter 3000
cmux cloud domains publish brave-otter 3000 --access team
cmux cloud domains publish brave-otter 8080 --access public --yes
cmux cloud domains list
cmux cloud domains grant <hostname> teammate@example.com
cmux cloud domains rm <hostname>各URLにはアクセスモードがあります。デフォルトはマシンの所有者です。つまりあなた、またはチームがマシンを所有している場合はそのチームです。
- personal:あなただけが開けます。
- team:マシンを所有するチームの現在のメンバーが開けます。
- public:URLを知っている人なら誰でも開けます。cmuxは確認を求めます。
personalとteamのURLでは、訪問者はまずcmuxのページでサインインします。マシンがcmuxのCookieを受け取ることはありません。cmux cloud domains grant を使うと、1つのURLへのアクセスを1つのメールアドレスに付与することもできます。
公開URLはパスワードと同じように扱ってください。URLを知っている人は誰でもサービスを使えます。
カスタムドメイン
cmux cloud domains verify は追加すべきDNSレコードを出力します。所有権確認用のTXTレコード、ルーティング用のレコード、証明書の委任です。これらを追加してから、もう一度 verify を実行します。検証後は、そのドメインまたはその1階層下のサブドメインで公開できます。
cmux cloud domains verify preview.example.com
cmux cloud domains publish brave-otter 3000 --domain app.preview.example.com