An environment is an isolated space where your application services run. Think of them as different stages like development, staging, or production environments. Each environment has its own set of services, configurations, and network isolation.
Environments run on workmachines as isolated containers with their own network namespace. This provides:
Define services using Docker Compose and deploy instantly. No complex infrastructure setup required.
Each environment runs in its own network namespace, preventing conflicts and ensuring security between environments.
Define all your services using standard Docker Compose syntax. Databases, caches, APIs, message queues - anything that runs in a container can be deployed to your environment.
Manage environment variables, configuration files, and secrets at the environment level. All services can reference these configs, making it easy to update configuration without modifying service definitions.
Services within an environment can communicate using simple service names as DNS hostnames. Connect to your database using postgres:5432 instead of hardcoding IPs.
Workspaces can connect to environments to access their services. When connected, workspaces can access all environment services by name, making development and testing seamless.
Each environment runs on a workmachine with isolated networking:
Services are the containerized applications that run in your environment. They are defined using standard Docker Compose syntax and can include databases, caches, APIs, and any other containerized services your application needs.
Learn More
See the Services documentation for detailed information on defining and managing services.
Manage configuration and sensitive data at the environment level. All services in an environment can reference these configs and secrets, making it easy to update configuration without modifying service definitions.
Key-value pairs for simple configuration like database URLs, API keys, and feature flags.
Upload complete configuration files that services can mount and use.
Securely store sensitive data with encryption at rest. Secrets are only decrypted when injected into services.
Learn More
See the Configs & Secrets documentation for detailed information on managing configuration and secrets.
Each environment has its own isolated network namespace. Services within an environment can communicate with each other using service names as DNS hostnames, providing simple service discovery without hardcoding IPs.
postgres:5432, redis:6379)Create shared environments that your entire team can access. Everyone connects to the same services, ensuring consistent data and behavior across the team.
Spin up isolated environments for testing features without affecting other team members. Test integration with services in a controlled environment.
Create separate environments for different stages of development. Have dedicated environments for testing, staging, or demo purposes with their own configurations.
Develop and test microservices in an environment that mirrors production. Connect workspaces to test service integration and debug with real traffic using service intercepts.