# ===================================================================== # ECHODO — Environment Variables # ===================================================================== # Local dev: copy this file to .env and adjust values. # Coolify (CT 107): paste these into the resource's "Environment Variables" # tab. Coolify also accepts a .env file uploaded via the UI. # # See AGENT-DEPLOY.md for shared CT 102 service credentials and the # CT 100 Traefik routing pattern. # ===================================================================== # ----- Database (CT 102 shared Postgres) ----- # Local dev: postgresql://postgres:postgres@localhost:5432/tasks # Production: dedicated `echodo` user/db on CT 102 DATABASE_URL="postgresql://echodo:CHANGE_ME@192.168.68.102:5432/echodo" # ----- Redis (CT 102 shared Redis) ----- # Use a dedicated DB index per AGENT-DEPLOY.md (ECHODO uses /11) # Local dev: redis://localhost:6379 REDIS_URL="redis://:CHANGE_ME@192.168.68.102:6379/11" # ----- Auth (NextAuth v5) ----- # Local: http://localhost:3000 • Prod: https://echodo.stillwell.cloud NEXTAUTH_URL="http://localhost:3000" # Generate with: openssl rand -base64 32 NEXTAUTH_SECRET="CHANGE_ME_RUN_openssl_rand_base64_32" AUTH_SECRET="CHANGE_ME_RUN_openssl_rand_base64_32" # Optional dev-only credentials provider (looks up users by email, # accepts this single password for everyone). Leave blank in prod. AUTH_DEV_PASSWORD="" # ----- OAuth Providers (all optional) ----- AUTH_GITHUB_ID="" AUTH_GITHUB_SECRET="" AUTH_GOOGLE_ID="" AUTH_GOOGLE_SECRET="" # Authentik SSO (CT 100 — auth.stillwell.cloud) # In Authentik admin → Applications → Create OAuth2/OpenID Provider. # Slug "echodo", redirect URI: /api/auth/callback/authentik AUTH_AUTHENTIK_ID="" AUTH_AUTHENTIK_SECRET="" AUTH_AUTHENTIK_ISSUER="https://auth.stillwell.cloud/application/o/echodo/" # ----- Realtime collab server (Hocuspocus / Yjs) ----- # Server-side reference (used by Next.js server actions, if any) COLLAB_SERVER_URL="ws://localhost:1234" # Browser-facing — must be wss:// in production because the page is https NEXT_PUBLIC_COLLAB_SERVER_URL="ws://localhost:1234" # ----- Umami Analytics (CT 107 — analytics.stillwell.cloud) ----- # In Umami: Settings → Websites → Add website. Copy the website UUID. NEXT_PUBLIC_UMAMI_SCRIPT="https://analytics.stillwell.cloud/script.js" NEXT_PUBLIC_UMAMI_WEBSITE_ID="" # ----- Libredesk Support Widget (CT 105 — support.stillwell.cloud) ----- NEXT_PUBLIC_LIBREDESK_URL="https://support.stillwell.cloud" NEXT_PUBLIC_LIBREDESK_WIDGET_ID="" # ----- Directus Feedback (CT 107 — directus.stillwell.cloud) ----- # Static token scoped write-only on the `feedback` collection NEXT_PUBLIC_DIRECTUS_URL="https://directus.stillwell.cloud" DIRECTUS_FEEDBACK_TOKEN="" # ----- AI Providers ----- # Use OPENAI_BASE_URL=http://192.168.68.108:11434/v1 to route through # local Ollama (CT 108) instead of the OpenAI API. OPENAI_API_KEY="" OPENAI_BASE_URL="" ANTHROPIC_API_KEY="" # ----- MCP Server ----- MCP_SERVER_PORT=3001 # ===================================================================== # Local Docker Compose only (docker/docker-compose.yml) # Not needed for Coolify (Coolify uses CT 102's shared Postgres/Redis). # ===================================================================== POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres POSTGRES_DB=tasks POSTGRES_PORT=5432 REDIS_PORT=6379 WEB_PORT=3000 COLLAB_PORT=1234