Skip to main content
Environment

Overview

Environments let you run multiple isolated copies of your solution. Every solution starts with two environments:
EnvironmentPurpose
devYour editable development workspace
productionYour protected live environment
production is isolated from direct changes. Make changes in dev or another non-production environment, test them there, then apply them to another environment with a merge request.
Cerebrum manages environments. Just say “create a staging environment from dev” or “open a merge request from feature-auth to production” — Cerebrum will handle it. The details below explain how environments work.
Our recommendation: Create an environment for each feature or task you’re working on, based on the environment you want to change. When the work is merged, delete the temporary environment. This keeps things clean and saves resources.
SetupEnvironmentsWhen to use
Defaultdev, productionEvery solution starts here
Per featurefeature-auth, bugfix-123Work on isolated changes, then merge them
Classic pipelinedevstagingproductionPromote changes through validation stages
Per developeralice-dev, bob-devEach dev has their own sandbox

Why Use Environments

Safe experimentation

Test new features, try risky changes, debug issues — without affecting production.

Team workflows

Developers work in editable environments, QA tests in staging, users see production. No conflicts.

Different configurations

Each environment can have its own resources, variables, and secrets.

Merge requests

Review isolated code and variable changes before applying them to another environment.

How Environments Work

Each environment belongs to a solution. It starts as a copy of another environment, then becomes independent: When you create an environment, Ardor copies the source environment’s services and settings. After that, changes in one environment do not automatically affect any other environment. What’s independent per environment:
  • Services code
  • Internal URLs
  • Public URLs
  • Environment variables and secrets
  • Deployment history
Changes in code and variables stay inside the environment where you made them until you apply them to another environment with a merge request.

Creating Environments

New environments are created from an existing environment. Ardor copies the source environment’s services and settings so the new environment starts from the same shape. Just ask Cerebrum to create an environment for you:
“Create a new environment called feature-auth from dev
“Create staging from production
Once created, you can switch between environments using the dropdown in the UI.
Environment names are flexible — use whatever makes sense for your workflow. feature-auth, staging, alice-dev, experiment-v2 — whatever helps you stay organized.

Environment Isolation

Environments are isolated after creation:
WhatIsolated?Notes
Services✅ YesCopied when the environment is created, then managed independently
Internal URLs✅ YesDifferent per environment
Public URLs✅ YesDifferent per environment
Variables & Secrets✅ YesConfigure independently per environment
Code✅ YesEach environment has its own service code state in an environment branch
Data✅ YesDatabases are separate
Logs✅ YesEach env has its own logs

Protected Production

production is protected from direct changes. This keeps the live version stable and makes production updates reviewable. Typical workflow:
  1. Make code or variable changes in dev, staging, or a feature environment
  2. Test the changed environment
  3. Open a merge request to apply the changes to production
  4. Review and merge when ready
Other environments are editable directly. Use merge requests when you want to move changes from one environment to another.

Code and Variables Per Environment

Each environment has its own code state, variables, and secrets. Changes stay local to that environment until merged:
Variabledevstagingproduction
DEBUGtruetruefalse
LOG_LEVELdebuginfowarn
DATABASE_HOSTservice-abc...:5432service-def...:5432service-ghi...:5432
API_KEYtest_key_xxxtest_key_yyylive_key_zzz
Use merge requests to apply code and variable changes from one environment to another.

Best Practices

Every solution includes dev. Make direct changes there or in feature environments, then promote reviewed changes with merge requests.
Production is protected for stable, live workloads. Apply production updates through merge requests.
Create staging or feature environments from the environment they should resemble. This keeps services, settings, and variables aligned from the start.
Same variable names across all environments. Only values differ. This keeps your code clean.
Delete feature branch environments after merging. They cost resources and add clutter.
Make it clear what each environment is for. Who uses it? What’s deployed there?

Troubleshooting

Double-check which environment is selected before deploying. The environment name is shown in the UI.
Check environment-specific variables and whether the latest changes were merged into staging. A missing, outdated, or wrong variable is the most common cause.
Environments are isolated — you can’t use dev’s internal URL from staging. Each environment has its own URLs.
Production is protected from direct changes. Open and merge a merge request from the environment that contains the tested changes.

What’s Next

Merge Requests

Apply code and variable changes between environments

Variables & Secrets

Configure environment-specific settings

Deployments

Deploy services to different environments

Networking

Understand how services connect within environments

Services Overview

Learn about services and their configuration