# 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://: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)