Skip to main content

When to choose self-hosting

Use self-hosted mode when you want always-on runs, recurring schedules, and full control over your app infrastructure. This path deploys only the app.
  • The landing site is deployed separately on Vercel
  • The docs are deployed separately on Mintlify

Requirements

  • A VPS running Ubuntu 22.04 or 24.04
  • A domain or temporary hostname
  • A residential proxy
  • An analysis LLM key
  • A local machine available for provider auth capture

1. Prepare .env

git clone https://github.com/aryamantodkar/oneglanse
cd oneglanse
cp .env.example .env
Update .env with the minimum required values:
# Required: analysis LLM
OPENAI_API_KEY=sk-...
# or ANTHROPIC_API_KEY + ANALYSIS_LLM_PROVIDER=claude

# Required: residential proxy
THORDATA_PROXY_API_URL=https://your-thordata-endpoint

# Required: auth upload token
AGENT_AUTH_UPLOAD_TOKEN=your-secret-token

# Public URL
APP_URL=https://your-domain.com
API_BASE_URL=https://your-domain.com
If BETTER_AUTH_SECRET or INTERNAL_CRON_SECRET are blank or still set to replace-me, bootstrap generates them automatically before the containers start.

2. Deploy the app

For the full production VPS flow with nginx, SSL, firewall setup, and the interactive installer, use VPS Deployment. At a high level, self-host bootstrap does this:
  • Pulls the latest published app images when they exist
  • Falls back to a local Docker build on unsupported architectures
  • Starts the OneGlanse stack with persistent storage at /opt/oneglanse/storage
Start the stack with:
node scripts/run-compose.mjs bootstrap
To update later:
git pull
node scripts/run-compose.mjs bootstrap

3. Configure the residential proxy

VPS environments usually run on datacenter IP ranges, and those IPs are often blocked, challenged, or rate-limited by AI providers. That means:
  • The VPS is excellent for scheduling and persistence
  • The VPS is a poor direct network origin for browser traffic to provider websites
So OneGlanse requires a residential proxy on VPS deployments. The browser still runs on your server, but outbound provider traffic exits through a residential IP instead of the VPS datacenter IP. OneGlanse integrates with ThorData:
THORDATA_PROXY_API_URL=https://your-thordata-api-endpoint
PROXY_SCHEME=http
Before each run, OneGlanse fetches a fresh proxy candidate, routes browser traffic through it, and releases it after completion.

4. Upload provider auth from your local machine

Auth must be captured locally and uploaded. It cannot be run directly on a headless VPS with the same reliability. On your local machine, set these in .env:
ONEGLANSE_VPS_IP=your-vps-ip
AGENT_AUTH_UPLOAD_TOKEN=your-secret-token
Then run:
pnpm auth
pnpm auth opens the provider sign-in browser, captures sessions, and then asks whether to upload them to the VPS. Answer y to transfer them immediately. When a session expires later and you want to re-upload without signing in again:
pnpm upload:vps

5. Run and schedule

After the app is live and provider sessions are uploaded:
  1. Open your deployed app
  2. Add prompts
  3. Run manually or configure recurring schedules