codex-asr 0.1.2

Unofficial Codex Desktop ASR client that reuses local ChatGPT auth for one-shot transcription
Documentation
services:
  codex-asr:
    image: ghcr.io/wangnov/codex-asr:latest
    restart: unless-stopped
    expose:
      - "8788"
    environment:
      CODEX_ASR_SERVER_KEY: ${CODEX_ASR_SERVER_KEY:?set CODEX_ASR_SERVER_KEY}
      CODEX_ASR_PROXY: ${CODEX_ASR_PROXY:-}
      CODEX_ASR_SILK_DECODER: ${CODEX_ASR_SILK_DECODER:-/usr/local/bin/rust-silk}
      CODEX_ASR_MAX_UPLOAD_MB: ${CODEX_ASR_MAX_UPLOAD_MB:-50}
      CODEX_ASR_REQUEST_TIMEOUT_SECONDS: ${CODEX_ASR_REQUEST_TIMEOUT_SECONDS:-300}
      CODEX_ASR_CONNECT_TIMEOUT_SECONDS: ${CODEX_ASR_CONNECT_TIMEOUT_SECONDS:-15}
    command:
      - serve
      - --host
      - 0.0.0.0
      - --port
      - "8788"
      - --auth-file
      - /run/secrets/codex_auth
      - --concurrency
      - ${CODEX_ASR_CONCURRENCY:-16}
    volumes:
      - ${CODEX_ASR_AUTH_FILE:?set CODEX_ASR_AUTH_FILE}:/run/secrets/codex_auth:ro

  caddy:
    image: caddy:2-alpine
    restart: unless-stopped
    depends_on:
      - codex-asr
    ports:
      - "80:80"
      - "443:443"
    environment:
      CODEX_ASR_DOMAIN: ${CODEX_ASR_DOMAIN:?set CODEX_ASR_DOMAIN}
    volumes:
      - ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
      - caddy_data:/data
      - caddy_config:/config

volumes:
  caddy_data:
  caddy_config: