-
以下のアプリケーションをインストール&一度起動しておく
-
以下のZshコマンドを順番に実行
$git clone git@github.com:nrhrhysd616/dotfiles.git $chmod 744 dotfiles/init-mac.zsh $zsh dotfiles/init-mac.zsh
-
iTerm2の設定を反映
iTerm2を起動しメニューの「Settings...」から以下を設定
General -> Settings -> Import All Settings And Data...を選択
dotfiles/iterm2/iTerm2-all-settings.itermexportのファイルを選択してインポート -
.gitconfig.user.localファイルを編集- signingkey: ssh公開鍵の情報
- name: アルファベットフルネーム
- email: sshキーの設定と同一のGithubで利用しているメールアドレス
-
コミット署名のローカル検証用に
~/.ssh/allowed_signersファイルを作成git log --show-signatureで署名を検証できるようにするための設定
メールアドレスと公開鍵は.gitconfig.user.localに設定したものと同一にするecho "<email> <signingkeyの公開鍵>" > ~/.ssh/allowed_signers chmod 644 ~/.ssh/allowed_signers
-
sshdを再起動して設定を反映する
sudo launchctl stop com.openssh.sshd sudo launchctl start com.openssh.sshd
-
VSCodeのClineのCustom Instructionsを手動で設定する
現状設定のエクスポートなどができず、
settings.jsonファイルでの外出しも不可能なため手動 -
Tailscaleにサインインし、tailnetのHTTPS証明書を有効化する
後述の
csctlコマンドを使う場合のみ必要tailscale up
サインイン後、管理コンソールのDNS設定で 「HTTPS Certificates」をEnable HTTPSにする
これを有効にしないとtailscale certが証明書を発行できず、csctlが起動に失敗するサインインさえ済ませておけば接続は切っておいてよい
csctlが必要なときだけ自動で接続し、使い終わったら自動で切断する -
AWS CLIの認証設定
aws/configからコピーされた~/.aws/configを編集し、login_sessionにIAMユーザーのARNを設定する[default] login_session = arn:aws:iam::<account-id>:user/<iam-user-name> region = ap-northeast-1
認証は
aws loginで行う(AWS CLI 2.32.0以降が必要)
ブラウザでコンソールにサインインすると一時クレデンシャルが~/.aws/login/cacheに発行される
有効期限は最長12時間で、その間15分ごとに自動更新されるaws login aws sts get-caller-identity # ARNを確認この方式では長期のアクセスキーを一切作らないため、
~/.aws/credentialsは存在しないサインインにはMFAを設定したIAMユーザーを使うこと
ルートユーザーはアカウント解約・支払い情報の変更などルート専用の操作にのみ使い、 日常の操作やCLIからは使わない
miseは複数の言語のバージョン管理ツールです。Python、Node.js、Bunなどをmiseで管理しています。
-
インストール済みツールの確認
mise list
-
利用可能なバージョンの確認
mise ls-remote python mise ls-remote node
-
グローバルバージョンの変更
# 特定バージョンを指定 mise use -g python@3.12 mise use -g node@20 # 最新版にアップデート mise use -g python@latest mise use -g node@lts
-
プロジェクトごとのバージョン指定
# プロジェクトディレクトリで実行 cd /path/to/project mise use python@3.11 # .tool-versionsファイルが生成される
-
現在のバージョン確認
python --version node --version bun --version
csctlは任意のプロジェクトディレクトリをcode-server(ブラウザ版VS Code)として起動し、
Tailscale経由で公開するコマンドです。iPadなど同じtailnetに参加している端末のブラウザからプロジェクトを開けます。
各インスタンスはこのマシンのTailscale IPに直接バインドし、tailscale certが発行した証明書でTLSを終端するため、
https://<MagicDNS名>:<ポート>/でアクセスできます。インターネットには一切公開されません。
-
起動して公開する
# ディレクトリを指定するだけ(ポートは18080から空きを自動選択、インスタンス名はディレクトリ名) csctl start ~/Documents/Project/github.com/nrhrhysd616/dotfiles # カレントディレクトリを公開する csctl start # ポートと名前を明示する(複数プロジェクトを同時に公開できる) csctl start ~/work/api --port 18090 --name api
起動に成功するとURLとパスワードが表示されます。パスワードは全インスタンス共通で、初回に自動生成されます。
-
一覧・状態・ログ
csctl list # 全インスタンスの一覧 csctl status api # 1つの詳細(URL、PID、ログの場所など) csctl logs -f api # ログを追尾 csctl url api # URLだけを出力 csctl open api # ローカルのブラウザで開く
-
停止
csctl stop api # 名前で停止 csctl stop 18090 # ポートで停止 csctl stop all # 全部停止 csctl restart api # 同じディレクトリ・ポートで再起動
-
その他
csctl doctor # 依存コマンドとTailscaleの状態を確認 csctl password # 共通パスワードを表示 csctl password --reset # パスワードを再生成(再起動するまで既存インスタンスは旧パスワード) csctl cert # TLS証明書の発行・更新 csctl font install # Fira Codeをcode-server自身から配信する(後述) csctl help # 全コマンドのヘルプ
-
エディタ設定とテーマ
設定は
code-server/settings.jsonで管理し、csctlが各インスタンスのUser/settings.jsonからシンボリックリンクを張るため全インスタンスで共有される。 code-server上で設定を変更するとリポジトリ側のファイルが直接書き換わる。vscode/settings.json(デスクトップ版)とは別ファイルにしている。ブラウザ版では 拡張機能を入れ直す必要があり、外部アプリ連携も動かないため、 拡張機能に依存しない設定だけを持たせている。- テーマは組み込みの
Monokaiとアイコンテーマvs-setiを使う(拡張機能不要) - Monokai Proを使いたい場合はcode-server上で拡張機能
monokai.theme-monokai-pro-vscodeを インストールし、code-server/settings.jsonのworkbench.colorThemeを書き換える - 拡張機能は
~/.local/share/csctl/extensionsに置かれ全インスタンスで共有されるため、 インストールは一度だけでよい
- テーマは組み込みの
-
Fira Codeを全端末で使う
editor.fontFamilyはブラウザが動いている端末のフォントを参照するため、 Fira Codeが入っていないiPadなどでは効かずフォールバックされる。 以下を実行するとcode-server自身がWebフォントとして配信するようになり、どの端末でも適用される。csctl font install # 有効化(実行後、起動中のインスタンスはrestartが必要) csctl font status # 状態確認 csctl font remove # 元に戻す
この処理はcode-server本体のCSSに
@font-faceを追記し、~/Library/FontsのFira Codeを 配信ディレクトリへコピーする。code-serverを更新すると失われるが、 一度有効にしておけば次回のcsctl start時に自動で貼り直される。 -
動作のカスタマイズ
環境変数 説明 CSCTL_PORT_STARTポート自動選択の開始番号(既定: 18080、そこから20個スキャンする) CSCTL_AUTO_UP0を指定すると自動tailscale upを無効化するCSCTL_AUTO_DOWN0を指定すると自動tailscale downを無効化するCSCTL_CODE_SERVER_BINcode-serverのパスを明示する CSCTL_TAILSCALE_BINtailscaleのパスを明示する
Tailscaleの自動接続について:
- Tailscaleを常駐させる必要はありません。
csctl startが未接続(Stopped)を検出すると自動でtailscale upし、 最後のインスタンスを停止した時点で自動的にtailscale downします - 自動切断はcsctlが接続した場合のみ行われます。自分で
tailscale upした接続はcsctlが切ることはありません - サインインが必要な状態(NeedsLogin)ではブラウザ操作が要るため自動接続しません。手動で
tailscale upしてください
補足:
- 証明書は起動のたびに有効期限をチェックし、残り30日を切っていれば自動で更新されます
- 拡張機能と
settings.jsonは全インスタンスで共有されますが、開いているタブやウィンドウ状態などの ユーザーデータはインスタンスごとに分離されます(VS Codeは同じuser-data-dirを複数のサーバーで同時に使えないため) - Macがスリープするとインスタンスも応答しなくなります。常時アクセスしたい場合は
caffeinateなどで抑止してください - Macを再起動するとインスタンスは終了します(自動起動はしないため、再度
csctl startが必要)
-
iCloud
各種必要に応じて設定
-
アクセシビリティ > ディスプレイ
ポインタの枠線のカラー > 白 ポインタの塗りつぶしカラー > オレンジ
-
キーボード > キーボードショートカット…
スクリーンショット以外のショートカットをすべて削除
「F1、F2などのキーを標準のファンクションキーとして利用」はオン