Overview
Oxy supports two deployment modes to accommodate different use cases:- Local Mode (Default) - Traditional folder-based deployment for development and self-hosted environments
- Cloud Mode - Location-independent deployment designed for cloud platforms with centralized workspace management
Deployment Modes Comparison
| Feature | Local Mode | Cloud Mode (--cloud) |
|---|---|---|
| Project Location | Must run within project directory | Can start from any location |
| File Editing | Full IDE editing capabilities | Read-only project files |
| Project Source | Local file system | Synced from GitHub repositories |
| Configuration | File-based (config.yml) | Environment variables + database |
| Workspace Management | Single project per instance | Multi-project workspaces |
| Use Case | Development, self-hosted | Cloud deployments, SaaS |
Cloud Mode Architecture
Key Components
How It Works
In cloud mode, Oxy operates differently from local mode:-
Location Independence: The server doesn’t require a fixed project directory. You can start it from anywhere:
- Workspace Organization: Projects are organized within workspaces, allowing multiple isolated environments in a single deployment.
- GitHub Synchronization: Project files (agents, workflows, SQL queries) are synced from GitHub repositories rather than edited locally.
- Read-Only IDE: The web interface provides read-only access to project files. Changes must be made via Git and synced.
-
Environment-Based Configuration: Database connections and other settings are read from environment variables and stored in the database, not from local
config.ymlfiles.
Starting in Cloud Mode
Basic Usage
Environment Variables
Cloud mode relies on environment variables for configuration:Workspace Management
Creating Workspaces
Workspaces organize multiple projects and users in cloud deployments:Managing Projects
Projects within workspaces are synced from GitHub:Project Synchronization
When a project is created or updated:- Oxy clones the GitHub repository
- Project files (
.agent.yml,.workflow.yml,.sql) are imported - Configuration is merged with environment variables
- Database schemas are synced
- Vector embeddings are built for semantic search
Configuration in Cloud Mode
Database Configuration
Instead ofconfig.yml, databases are configured via environment variables:
Secret Management
Secrets are stored in the database and scoped to projects:Read-Only Project Files
In cloud mode, project files are synchronized from GitHub and are read-only in the web interface:What’s Read-Only
- Agent configurations (
.agent.yml) - Workflow definitions (
.workflow.yml) - SQL queries (
.sql) - Semantic layer schemas
- Application configurations (
.app.yml)
Making Changes
To update project files in cloud mode:- Commit to GitHub: Make changes in your Git repository
- Sync Project: Trigger a sync via the web interface or API
- Changes Applied: Updated files are pulled and become available
Authentication in Cloud Mode
Cloud mode uses the same built-in authentication as local mode:- Email/password authentication with SMTP verification
- Optional Google OAuth integration
- User management via the web interface
- Workspace-based access control
Deployment Scenarios
Docker Container
Kubernetes Deployment
AWS ECS with Cloud Mode
Local Mode (Default)
For comparison, local mode operates traditionally:Local Mode Features
- Full File Editing: Edit agents, workflows, and SQL directly in the IDE
- Local Configuration: Uses
config.ymlin the project directory - Single Project: One project per server instance
- Development Friendly: Rapid iteration with immediate file changes
- Git Optional: Can work without Git integration
Migration Guide
From Local to Cloud Mode
If you’re migrating from local mode to cloud mode:- Push to GitHub: Ensure your project is in a Git repository
- Extract Secrets: Move secrets from
config.ymlto environment variables - Create Workspace: Set up a workspace in cloud mode
- Create Project: Link your GitHub repository
- Configure Environment: Set all required environment variables
- Test: Verify agents and workflows work as expected
From Cloud to Local Mode
To move from cloud to local development:- Clone Repository: Clone your project from GitHub
- Create config.yml: Add database connections and model configurations
- Set Environment: Add secrets to
.envfile - Start Locally: Run
oxy servewithout--cloudflag
Best Practices
For Cloud Mode
- Version Control: Keep all project files in Git
- Environment Separation: Use different workspaces for dev/staging/prod
- Secret Rotation: Regularly rotate API keys and database credentials
- Monitoring: Set up health checks and logging
- Backup: Regular database backups for workspace and project data
For Local Mode
- Git Tracking: Track changes to agents and workflows
- Environment Files: Use
.envfor local secrets (never commit) - Documentation: Document local setup requirements
- Testing: Test workflows locally before deploying to cloud
Troubleshooting
Cloud Mode Issues
Server won’t start without project directoryLocal Mode Issues
Configuration not foundAPI Differences
Cloud Mode APIs
Cloud mode exposes additional workspace management endpoints:Local Mode APIs
Local mode focuses on project execution:Security Considerations
Cloud Mode
- Multi-tenancy: Workspaces provide isolation between organizations
- Access Control: Role-based permissions within workspaces
- Secret Storage: Encrypted secrets in database
- Audit Logging: Track all operations for compliance
- Network Isolation: Configure security groups appropriately
Local Mode
- Single User: Designed for individual developers
- File System: Secrets in local
.envfiles - Network: Typically runs on localhost
- Access: SSH or local access only
Summary
Cloud mode enables Oxy to run as a multi-tenant platform with:- ✅ Location-independent deployment
- ✅ GitHub project synchronization
- ✅ Workspace organization
- ✅ Environment-based configuration
- ✅ Read-only project files
- ✅ Centralized secret management
- ✅ Direct file editing
- ✅ Rapid iteration
- ✅ Simple setup
- ✅ Single project focus
- ✅ Full Git control