feat: make GEMINI_AUTH=oauth authenticate in Docker
Some checks failed
Release / semantic-release (push) Successful in 25s
tests / Unit tests (Linux, Python 3.11) (push) Failing after 5m17s
Release / build-linux (push) Failing after 7m8s
Release / build-windows (push) Has been cancelled
Release / build-macos (arm64, macos-latest) (push) Has been cancelled
Release / build-macos (x64, macos-15-intel) (push) Has been cancelled
Release / release-main (push) Has been cancelled
Release / release-develop (push) Has been cancelled
Some checks failed
Release / semantic-release (push) Successful in 25s
tests / Unit tests (Linux, Python 3.11) (push) Failing after 5m17s
Release / build-linux (push) Failing after 7m8s
Release / build-windows (push) Has been cancelled
Release / build-macos (arm64, macos-latest) (push) Has been cancelled
Release / build-macos (x64, macos-15-intel) (push) Has been cancelled
Release / release-main (push) Has been cancelled
Release / release-develop (push) Has been cancelled
OAuth cannot be done interactively in the headless container, so the login
must be seeded into the mounted ~/.gemini. Three problems are fixed:
- Mount fragility on the Windows Docker Desktop target: the creds mount
defaulted to ${HOME}/.config/javis/gemini, but ${HOME} is often unset when
compose runs outside a WSL shell, silently mounting the wrong dir. Default is
now the project-local ./docker/gemini-oauth (cross-platform), GEMINI_OAUTH_DIR
still overrides.
- No visibility: when oauth is selected but no login is seeded, the path
silently degraded to DDG/Brave. Added gemini_oauth_ready() + a one-time debug
hint and a startup entrypoint warning (skipped on the browser role, fail-open).
- Seeding guidance: oauth_creds.json is the essential credential (refresh token;
GOOGLE_GENAI_USE_GCA=true forces OAuth), which is what the readiness check and
warning verify; docs recommend copying the whole ~/.gemini for convenience.
Adds docker/gemini-oauth/ seed dir (.gitkeep) with the login files gitignored,
GEMINI_OAUTH_DIR in .env.example, and updates DEPLOY.md, stream_browser_modes.md
and llm_contexts.md. Covered by 3 new tests (10 passed total).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
11
.env.example
11
.env.example
@@ -17,6 +17,8 @@ DISCORD_APP_ID=
|
||||
DISCORD_GUILD_ID=
|
||||
# Voice channel used by the stream-test scripts (bot/scripts/stream-test).
|
||||
DISCORD_VOICE_CHANNEL_ID=
|
||||
# Optional text channel for posting conversation transcripts (blank = disabled).
|
||||
DISCORD_TRANSCRIPT_CHANNEL_ID=
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Brain bridge (Python service in bridge/) — STT + reply engine + TTS
|
||||
@@ -75,6 +77,10 @@ OUTPUT_LANGUAGE=
|
||||
# ---------------------------------------------------------------------------
|
||||
# Docker desktop (VNC) — used only by the container image
|
||||
# ---------------------------------------------------------------------------
|
||||
# Host ports the container publishes the VNC + noVNC servers on. Defaults match
|
||||
# the compose file (5901 / 6080); override if the host already uses them.
|
||||
VNC_PORT=5901
|
||||
NOVNC_PORT=6080
|
||||
# VNC viewer password (max 8 chars effective). Watch the screen at localhost:5901.
|
||||
# Also used by the broadcast keepalive: TigerVNC only refreshes its framebuffer
|
||||
# while a VNC client is attached, so the stream keeps a tiny client connected to
|
||||
@@ -101,6 +107,11 @@ STREAM_BROWSER=true
|
||||
GEMINI_AUTH=oauth
|
||||
GEMINI_API_KEY=
|
||||
GEMINI_MODEL=gemini-2.0-flash
|
||||
# OAuth login source for Docker. The container mounts this into ~/.gemini.
|
||||
# Default (blank) = ./docker/gemini-oauth (project-local, cross-platform). Seed
|
||||
# it once: cp -r ~/.gemini/. docker/gemini-oauth/ (copy the whole login state).
|
||||
# Or point at an existing host login instead, e.g. GEMINI_OAUTH_DIR=~/.gemini
|
||||
GEMINI_OAUTH_DIR=
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# VNC screen broadcast
|
||||
|
||||
Reference in New Issue
Block a user