opsdocsConsole

Ops platform / Concepts

Projects and environments

A project is one product; an environment is one running copy of it.

Updated 13 Oct 2026View as Markdown

Projects

A project holds everything one product needs: its services, databases, domains, secret groups, buckets and jobs, the repositories it builds from, its members and their roles, its tokens and its audit log. Its slug, such as rungholt, is fixed when it is created.

People reach a project through a membership with a role. The roles that come with ops:

rolemay
Project admineverything in the project: settings, members, resources
Developerbuild, deploy and operate services; no settings, no members
Viewerread everything, change nothing
Deployera machine that deploys what ops built

A project admin can make roles of the project's own under Settings, Access.

Environments

An environment is one running copy of the project, with its own services, databases, domains, secret groups and jobs. A bucket belongs to the project, not to one environment.

environmenthow it gets therewhat it runs
productionmade with the projectthe default branch, deployed on every push
staging, developmentadded in Settings, Environmentsa branch it follows, or only what you promote into it
preview-<n>opened by a pull requestthe pull request's branch, see previews

Leave an environment's branch empty and it changes only when you promote into it.

Each environment has its own private network. A service reaches the other services and databases of its own environment and nothing in another one, so a staging service is never handed production's database.

The console's sidebar picks the environment under the project name, and every page follows it. The CLI acts in production unless you pass --env:

sh
ops resources --env staging
ops deploy web --commit 7c1d0e2 --env staging

Quota

Each environment has a CPU and memory budget. Production gets 16 cores and 32 GB, every other environment half of that. A project admin can change an environment's figures in Settings, Quota.