Docs Get started
Core concepts
Workspaces, projects, servers, labels, targets and releases, and how they relate.
Workspace
Your team’s account. A workspace has members, a plan and billing, and it contains one or more projects. Most teams have one workspace.
Projects
A project groups servers and everything that runs on them: services, jobs, backups, alert rules and secrets. Use projects to separate things that should never mix, like products or, for agencies, clients. Members can have a different role in each project.
Servers and labels
A server is any machine running the agent. Each server has key=value labels such as role=api or region=eu. You can add as many as you like.
Targets
Anything that runs on servers says where it runs with a target, a label selector:
| Target | Matches |
|---|---|
role=api | Every server with that label |
role=api,region=eu | Servers with both labels |
all | Every server in the project |
server:web-01 | One server by name |
When a new server gets a matching label, services deploy to it automatically and jobs include it on their next run.
Services and releases
A service is a Docker Compose application deployed to a target. Every deploy creates a release (r1, r2, …) that pins the images, the compose file and the secrets version it used. Rolling back means deploying an earlier release.
Jobs and runs
A job is a command on a schedule. Each execution is a run with its output, exit code and duration. Jobs can run on every matching server or on one healthy server picked from the target.
Backups and snapshots
A backup plan says what to back up, where to send it and how long to keep it. Each execution creates a snapshot in your bucket.
Environments and secrets
Secrets belong to an environment (for example production or staging) within a project. Every change creates a new version.
Configuration as code
Everything above can be described in a fwoop.yaml file and applied with fwoop apply. See the fwoop.yaml reference.