# Copy to Coolify environment variables (or .env.local for dev). Do not commit secrets.

# --- Postgres: local `next dev` (Coolify internal hostnames do NOT work on your laptop) ---
# npm run db:local:up   then   npm run db:local:push   with:
# DATABASE_URL=postgresql://vibn:vibn@localhost:5433/vibn
# POSTGRES_URL=postgresql://vibn:vibn@localhost:5433/vibn

# --- Postgres: production / Coolify (from Coolify UI, reachable from where the app runs) ---
# Coolify: open the Postgres service → expose/publish a host port → use SERVER_IP:HOST_PORT (not internal UUID host).
# From repo root, master-ai/.coolify.env with COOLIFY_URL + COOLIFY_API_TOKEN: npm run db:sync:coolify
# Example shape: postgresql://USER:PASSWORD@34.19.250.135:YOUR_PUBLISHED_PORT/vibn
# External/cloud: set DB_SSL=true if the DB requires TLS.
DATABASE_URL=
POSTGRES_URL=

# --- Public URL of this Next app (OAuth callbacks, runner callbacks) ---
# Local Google OAuth (must match the host/port you open in the browser):
#   NEXTAUTH_URL=http://localhost:3000
# Google Cloud Console → OAuth client → Authorized redirect URIs (exact):
#   http://localhost:3000/api/auth/callback/google
# If you use 127.0.0.1 or another port, use that consistently everywhere.
# Prisma adapter needs Postgres + tables: set DATABASE_URL then run: npx prisma db push
NEXTAUTH_URL=https://vibnai.com
NEXTAUTH_SECRET=
# NEXTAUTH_DEBUG=true

# --- Preview tab — experimental HTML proxy (inject bridge); OFF by default — breaks Next.js tunnel previews ---
# NEXT_PUBLIC_USE_PREVIEW_EMBED_PROXY=true
# NEXT_PUBLIC_PREVIEW_EMBED_PROXY_HOST_SUFFIXES=.trycloudflare.com

# Absolute URL to /vibn-preview-bridge.js so AI-added layouts can load it from tunnel previews (cross-origin)
# NEXT_PUBLIC_VIBN_BRIDGE_URL=https://your-dashboard-host/vibn-preview-bridge.js

# --- vibn-agent-runner (same Docker network: http://<service-name>:3333 — or public https://agents.vibnai.com) ---
AGENT_RUNNER_URL=http://localhost:3333

# --- Shared secret: must match runner. Required for PATCH session + POST /events ingest ---
AGENT_RUNNER_SECRET=

# --- Optional: one-shot DDL via POST /api/admin/migrate ---
# ADMIN_MIGRATE_SECRET=

# --- Gitea (git.vibnai.com) — admin token used to create per-workspace orgs/repos ---
# Token must have admin scope to create orgs. Per-workspace repos are created
# under "vibn-{workspace-slug}" orgs; legacy projects remain under GITEA_ADMIN_USER.
GITEA_API_URL=https://git.vibnai.com
GITEA_API_TOKEN=
GITEA_ADMIN_USER=mark
GITEA_WEBHOOK_SECRET=

# --- Coolify (coolify.vibnai.com) — admin token used to create per-workspace Projects ---
# Each Vibn workspace gets one Coolify Project (named "vibn-ws-{slug}") that
# acts as the tenant boundary. All apps + DBs for that workspace live there.
COOLIFY_URL=https://coolify.vibnai.com
COOLIFY_API_TOKEN=
COOLIFY_SERVER_UUID=jws4g4cgssss4cw48s488woc

# --- Coolify host SSH (required for dev containers: docker exec / shell.exec) ---
# Private key: PEM base64 (same host Docker runs on). SSH user must be in `docker` group.
# COOLIFY_SSH_HOST=
# COOLIFY_SSH_PORT=22
# COOLIFY_SSH_USER=vibn-logs
# COOLIFY_SSH_PRIVATE_KEY_B64=
# Local Next without SSH: VIBN_ALLOW_DEV_CONTAINER_WITHOUT_SSH=true

# --- Ops: GET /api/internal/infra-health (checks Coolify API + SSH + docker daemon) ---
# INFRA_HEALTH_SECRET=

# --- Google OAuth / Gemini (see .google.env locally) ---
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

# --- Local dev: skip Google (next dev only) ---
# NEXT_PUBLIC_DEV_LOCAL_AUTH_EMAIL=you@example.com
# Skip NextAuth session for API + project UI (same email must own rows in fs_users)
# NEXT_PUBLIC_DEV_BYPASS_PROJECT_AUTH=true
# Optional: require password for dev-local provider (omit to allow localhost Host only)
# DEV_LOCAL_AUTH_SECRET=
# Optional display name for the dev user row
# DEV_LOCAL_AUTH_NAME=Local dev

# --- Workspace sidebar chat (/api/chat): Gemini (default) or DeepSeek (OpenAI-compatible) ---
# Default: gemini — requires GOOGLE_API_KEY (Google AI Studio) and optional VIBN_CHAT_MODEL.
# DeepSeek: https://api-docs.deepseek.com/
# VIBN_CHAT_PROVIDER=deepseek
# DEEPSEEK_API_KEY=
# Optional overrides:
# VIBN_OPENAI_COMPATIBLE_CHAT_URL=https://api.deepseek.com/chat/completions
# VIBN_OPENAI_COMPATIBLE_MODEL=deepseek-chat
# (Alias: VIBN_OPENAI_COMPATIBLE_API_KEY instead of DEEPSEEK_API_KEY)
