Self-contained authentication system with email/password login and optional Google OAuth integration.

Command: oxy serve (without args) or oxy serve --auth-mode built-in

Quick Setup

1. Basic Configuration

Create config.yml:

databases:
  - name: "local_db"
    type: "duckdb" 
    dataset: "/data/app.db"

models:
  - name: "gpt-4"
    vendor: "openai"
    model_ref: "gpt-4"
    key_var: "OPENAI_API_KEY"

authentication:
  basic:
    smtp_user: "noreply@yourdomain.com"
    smtp_password_var: "SMTP_PASSWORD"
    smtp_server: "smtp.gmail.com"
    smtp_port: 587

defaults:
  database: "local_db"

2. Environment Variables

OPENAI_API_KEY=sk-...
SMTP_PASSWORD=your-smtp-pass

3. Start Application

oxy serve --auth-mode built-in --config config.yml --port 3000

4. First User Setup

  1. Navigate to http://localhost:3000
  2. Click “Create Account”
  3. Enter email and password
  4. Verify email and login

SMTP Providers

Gmail

authentication:
  basic:
    smtp_server: "smtp.gmail.com"
    smtp_port: 587

AWS SES

authentication:
  basic:
    smtp_server: "email-smtp.us-west-2.amazonaws.com"
    smtp_port: 587

SendGrid

authentication:
  basic:
    smtp_server: "smtp.sendgrid.net"
    smtp_port: 587

Google OAuth

1. Create Google OAuth App

  1. Go to Google Cloud Console
  2. Enable Google+ API
  3. Create OAuth 2.0 Client ID
  4. Add redirect URI: http://localhost:3000/auth/google/callback

2. Update Configuration

authentication:
  basic:
    smtp_user: "noreply@yourdomain.com"
    smtp_password_var: "SMTP_PASSWORD"
  google:
    client_id: "your-client-id.apps.googleusercontent.com"
    client_secret_var: "GOOGLE_CLIENT_SECRET"

3. Add Environment Variable

GOOGLE_CLIENT_SECRET=your-google-client-secret