What is an Environment?
An environment is an isolated namespace where you deploy your application:- Isolated Infrastructure - Each environment has its own services, volumes, and configuration
- Separate Secrets - Environment variables don’t leak between environments
- Independent Scaling - Production can have 5 replicas while dev has 1
- Version Control - Full deployment history with rollback to any previous state
Common Environment Types
| Environment | Purpose | Typical Configuration |
|---|---|---|
| production | Live customer-facing | High resources, redundancy |
| staging | Pre-production testing | Production-like, test data |
| development | Active feature work | Minimal resources |
Creating an Environment
From the environment dropdown:- Click “Create New Environment”
- Choose to fork an existing environment or start blank
- Enter environment name
- Deploy when ready
Hobby plans have environment limits. Pro/Enterprise: unlimited.
Environment Isolation
Each environment is completely isolated: Separate Namespaces:- Services in “production” cannot communicate with services in “staging”
- Private networking only works within the same environment
- Different environment variables per environment
- Different secrets (database passwords, API keys)
- Different resource allocations (CPU, memory, replicas)
- Deploy to production without affecting staging
- Each environment has its own deployment history
- Rollback independently per environment
Environment Forking
Forking creates a complete, isolated copy of your infrastructure. All services, configuration, and volume definitions are duplicated to a new environment where you can experiment safely.What Gets Forked
Copied:- All services (containers and functions) with their images
- Resource allocations (CPU, memory, replicas)
- Networking configuration (HTTPS endpoints, TCP proxies)
- Volume definitions and mount paths
- Service connections and dependencies
- Environment variable values (keys are copied, values must be set)
- Volume data (volumes are created empty)
- Deployment history (starts fresh)
- Logs and metrics
After Forking
- Set Environment Variables - Keys are copied but values are empty for security. Set passwords, API keys, and secrets.
- Deploy - The forked environment starts undeployed. Deploy to provision infrastructure.
- Populate Data - Volumes are empty. Load data from backups or seed manually if needed.
Fork vs. Create Blank
Fork when:- Testing changes to existing infrastructure
- Need environment parity (staging matching production)
- Debugging issues requiring exact replication
- Starting a new architecture from scratch
- Existing environments don’t match what you need
- Experimenting with a completely different setup
Switching Environments
- Click the environment dropdown in the top-right
- Select the environment
- The canvas updates to show that environment’s infrastructure
Deleting Environments
Common Questions
Can services in different environments communicate?
Can services in different environments communicate?
No, environments are isolated. Private networking only works within the same environment. For cross-environment communication, use public networking (HTTPS/TCP).
Can I fork while the environment is running?
Can I fork while the environment is running?
Yes. Forking captures configuration, not running state. The fork is instant.
Does forking copy volume data?
Does forking copy volume data?
No, volumes are created empty. Load data from backups or seed manually if needed.
Can I have different Docker images per environment?
Can I have different Docker images per environment?
Yes. Each environment can use different image tags (e.g., production uses
v1.0.0 while staging uses v1.1.0-beta).Can I fork between projects?
Can I fork between projects?
No, forking only works within the same project.
Can I merge changes back?
Can I merge changes back?
Environment merging is planned for a future release. Currently, manually apply changes from the forked environment to the original.