# Mac で denpa 本体を動かす (install.sh が ~/denpa/compose.yml として置いて起こす)。 # # compose.prod.yml から tuner-agent を外したもの。denpa サービスは compose.prod.yml と揃える。 # Mac の Docker (Docker Desktop / OrbStack / colima) はコンテナに USB を渡せないので、 # エージェントは OS の上で直接動かし (LaunchAgent)、 # denpa はそれを host.docker.internal で呼ぶ。 # # **このファイルには手を入れない** (更新のたびに上書きする)。足したいものは # 同じ場所の compose.override.yml に書く (Compose が自分で読む)。 # # Windows (install.ps1) は wslc で起こすので、このファイルは使わない (前のバージョンの install.ps1 は使っていた)。 # main の install.sh はリリースのタグからこの名前で取るので、名前は変えない。 name: denpa services: denpa: image: ghcr.io/danything/denpa:latest restart: unless-stopped # compose.prod.yml と同じ。録画中に止めようとすると、録画が終わるまで待ってから止まる stop_grace_period: 6h5m # Docker Desktop と OrbStack は host.docker.internal を最初から引けるが、colima などは # 引けないことがある。host-gateway で OS 自身を指しておけば、どれでも通る extra_hosts: - "host.docker.internal:host-gateway" environment: TZ: Asia/Tokyo # 合言葉 (#pair=) は install.sh が同じ場所の .env に作り、エージェントの置き場 (config/tls/pair-token) にも同じものを書く (docs/agent.md) TUNER_AGENT_URL: "https://host.docker.internal:25252#pair=${AGENT_PAIR_TOKEN:?同じ場所の .env に AGENT_PAIR_TOKEN (合言葉) がありません。install.sh を流し直してください}" ENCODE_CONCURRENCY: "2" # **誰を通すか (docs/auth.md)。** compose.prod.yml と同じ家の中のネットワーク。 # Mac のブラウザから localhost で入ったときの送信元は Docker の作りで変わる (Docker Desktop なら 192.168.65.x で、これで通る)。 # 172.16.0.0/12 (Docker のネットワーク) は入れない (前段を同じネットワークに置くと、前段越しの人が全員当たる)。 # localhost で断られたら、画面に出る接続元を compose.override.yml の TRUSTED_NETWORKS に足す。 # LAN のほかの機器からも通る (家の外に出すなら OIDC を使う。docs/auth.md) TRUSTED_NETWORKS: 192.168.0.0/16,10.0.0.0/8 volumes: # DB は名前付きボリュームに置く (SQLite のロックが、OS から見せたフォルダ越しだと当てにならない) - denpa-data:/data # 元の TS の置き場は**エージェントと同じ OS のフォルダ** (エージェントの RAW_DIR)。 # 掛かったまま録れたものを後から復号するとき、エージェントが直に読み書きする # (置き場からの相対パスでリクエストされる)。HOME はシェルのものなので .env は要らない - ${HOME}/Movies/denpa/recorded:/media/raw # 出来上がった録画は Finder からも見える所に - ${HOME}/Movies/denpa/library:/media/encoded ports: - "3000:3000" volumes: denpa-data: