- New Express + TypeScript backend (server/) with pg, Better Auth, local file storage - De-Supabased Postgres schema (server/db) and TS reimplementations of DB functions - Frontend data layer rewired to REST (rest-client + backend-client compat shim) - Removed all Supabase references (code, config, deps, docs) - New brand assets: gradient favicon/app icons + dark/white wordmark logos Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
69 lines
2.4 KiB
Bash
69 lines
2.4 KiB
Bash
# ============================================
|
|
# AppForge - Environment Variables
|
|
# Stack: External Postgres + Better Auth + Local Storage + Express backend
|
|
# Copy this file to .env and fill in your values. Never commit .env!
|
|
# ============================================
|
|
|
|
# ============================================
|
|
# Database (Required)
|
|
# ============================================
|
|
# Postgres connection string for your external database
|
|
DATABASE_URL=postgres://user:password@host:5432/postgres
|
|
# Set to true to allow self-signed / non-verified TLS on the DB connection
|
|
PGSSL_NO_VERIFY=true
|
|
|
|
# ============================================
|
|
# Backend Server (Required)
|
|
# ============================================
|
|
# Port the Express API server listens on
|
|
PORT=8787
|
|
|
|
# ============================================
|
|
# Better Auth (Required)
|
|
# ============================================
|
|
# Generate a strong random secret for production (e.g. `openssl rand -hex 32`)
|
|
BETTER_AUTH_SECRET=change-me-to-a-long-random-string
|
|
# Public origin the browser uses (dev: the Vite app origin)
|
|
BETTER_AUTH_URL=http://localhost:8080
|
|
# Optional Google OAuth (leave blank to disable Google sign-in)
|
|
GOOGLE_CLIENT_ID=
|
|
GOOGLE_CLIENT_SECRET=
|
|
|
|
# ============================================
|
|
# Local File Storage
|
|
# ============================================
|
|
# Directory where uploaded files are stored (relative to project root or absolute)
|
|
STORAGE_DIR=./server/storage
|
|
# Public URL prefix used to serve stored files
|
|
STORAGE_PUBLIC_PREFIX=/storage
|
|
|
|
# ============================================
|
|
# Self-Hosting / App Defaults
|
|
# ============================================
|
|
# Email that is auto-assigned the admin role on first signup (optional)
|
|
INITIAL_ADMIN_EMAIL=admin@example.com
|
|
NODE_ENV=development
|
|
|
|
# ============================================
|
|
# Frontend (Vite)
|
|
# ============================================
|
|
# Base URL the frontend uses to reach the backend. Empty = same origin (Vite proxy).
|
|
VITE_API_URL=
|
|
# Demo mode: true | false | empty (defer to database setting)
|
|
VITE_DEMO_MODE=false
|
|
|
|
# ============================================
|
|
# Optional Integrations (server-side; fill when needed)
|
|
# ============================================
|
|
# STRIPE_SECRET_KEY=
|
|
# STRIPE_WEBHOOK_SECRET=
|
|
# PAYPAL_CLIENT_ID=
|
|
# PAYPAL_CLIENT_SECRET=
|
|
# COINBASE_API_KEY=
|
|
# COINBASE_WEBHOOK_SECRET=
|
|
# CODEMAGIC_API_TOKEN=
|
|
# CODEMAGIC_APP_ID=
|
|
# RESEND_API_KEY=
|
|
# OPENAI_API_KEY=
|
|
# APPETIZE_API_KEY=
|