rojiは設定ファイル、環境変数、CLIフラグで設定できます。

設定ファイル

場所: ~/.config/roji/config.yaml

network: roji                          # 監視するDockerネットワーク(カンマ区切り)
domain: dev.localhost                  # ベースドメイン
bind: 127.0.0.1,::1                    # 待ち受けアドレス(空で全インターフェース)
http_port: 80                          # HTTPポート(HTTPSにリダイレクト)
https_port: 443                        # HTTPSポート
certs_dir: ~/.local/share/roji/certs   # 証明書ディレクトリ
data_dir: ~/.local/share/roji          # データディレクトリ
dashboard: roji.dev.localhost          # ダッシュボードホスト名
log_level: info                        # ログレベル(debug, info, warn, error)
auto_cert: true                        # 証明書の自動生成

static_sites:                          # 静的ファイルホスティング(静的サイトガイド参照)
  - host: docs
    root: ~/projects/docs/build

設定ファイルの管理

roji config show     # 現在の設定を表示
roji config path     # 設定ファイルのパスを表示
roji config init     # デフォルト設定ファイルを作成
roji config edit     # $EDITORで開く

環境変数

変数説明デフォルト
ROJI_NETWORK監視するDockerネットワーク(カンマ区切り)roji
ROJI_DOMAINベースドメインdev.localhost
ROJI_BIND待ち受けアドレス(カンマ区切り、空で全インターフェース)127.0.0.1,::1
ROJI_HTTP_PORTHTTPポート80
ROJI_HTTPS_PORTHTTPSポート443
ROJI_CERTS_DIR証明書ディレクトリ~/.local/share/roji/certs
ROJI_DATA_DIRデータディレクトリ(プロジェクト履歴)~/.local/share/roji
ROJI_DASHBOARDダッシュボードホスト名roji.{domain}
ROJI_LOG_LEVELログレベルinfo
ROJI_AUTO_CERT証明書の自動生成true

待ち受けアドレス

roji はデフォルトで両方のループバックアドレスを待ち受けるため、動作している マシン自身からしか到達できない。

bind: 127.0.0.1,::1

roji はラベルを付けなくてもネットワーク上の全コンテナを公開し、ダッシュボードの Docker Compose エンドポイント(/_api/projects/{name}/up|down|restart)には 認証がない。roji に到達できる相手はコンテナを起動・停止できる。

ループバックアドレスを 2 つ挙げているのは、ブラウザが *.localhost を解決する 際にどちらを選ぶか分からないため。バインドできないアドレスは警告を出して スキップするので、IPv6 を無効化したマシンでも 127.0.0.1 だけで起動する。

別の端末から roji に到達する

同一ネットワーク上のスマートフォンや別マシンから確認したい場合は、その インターフェースも待ち受けに加える。

bind: 127.0.0.1,::1,192.168.1.5   # LAN アドレスを追加

全インターフェースで待ち受けることもできる(v1.1.0 より前の挙動)。

bind: ""

相手の端末側にも *.localhost を解決するための DNS 設定が必要で、かつ 自分と同じだけの無認証アクセス権をコンテナに対して持つことになる。 roji doctor は待ち受けアドレスを常に表示するので、ネットワークから到達可能な 状態かどうかは一目で分かる。

設定の優先順位

優先度の高い順:

  1. CLIフラグ (--network, --domain など)
  2. 環境変数 (ROJI_NETWORK, ROJI_DOMAIN など)
  3. 設定ファイル (~/.config/roji/config.yaml)
  4. デフォルト値

設定ファイルのバリデーション

rojiは起動時と roji doctor で設定ファイルを検証します:

  • 不明なキー: キー名のタイポを検出
  • 型チェック: 値の型(string, int, bool, array, object)を検証
  • 必須フィールド: static_sites の必須フィールド欠落をチェック

警告は起動時にログ出力されます。roji doctor で完全な検証レポートを確認できます。