Skip to content

Servers, hosts and applications

Most confusing vops workflows become simple once the three main resource types are separated.

Server: the provider resource

A server belongs to a provider account and has a billable plan, location, image and lifecycle. The vops providers, vops compare and vops servers topics operate at this layer.

Provisioning is intentionally split:

Terminal window
vops servers plan --provider hetzner --plan cx22 --location nbg1
vops servers create --from-plan ./vops-plan.json --yes

The plan is a visible local artifact. Creation requires explicit confirmation. Monthly-commitment providers are guidance-only: vops can show their offering without silently creating a recurring commitment.

Host: the SSH target

A host is a local inventory entry with an address, SSH user, port, key reference and optional tags. Registering one changes no remote state:

Terminal window
vops host add web-1 --address 203.0.113.10 --key personal
vops host status web-1

vops host import creates the same kind of inventory entry from a server already visible through a configured provider. Once registered, host commands work over SSH whether vops provisioned the machine or not.

The inventory enables:

  • live health checks and package inspection;
  • firewall and SSH hardening;
  • updates across one host or a tagged set;
  • application, ingress and backup operations.

Application: the workload install

An application is a named install on one host. It may start from:

  • a bundled catalog entry, selected with vops app catalog; or
  • a repository manifest, described by flui.yaml.

The install record lets vops find the application’s services, status, logs, exposure, credentials and persistent volumes later. Removing an application and forgetting a host are therefore different operations with different effects.

The normal flow

provider research
server plan and creation ──────┐
existing server ───────────→ host inventory
preflight and setup
application plan and deploy
status, logs, ingress, backup

You can enter at either server path. The application layer only needs a known, reachable host.