Skip to content

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:

TargetMatches
role=apiEvery server with that label
role=api,region=euServers with both labels
allEvery server in the project
server:web-01One 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.