Skip to content

The flui.yaml manifest

flui.yaml describes what an application needs without embedding the commands used to install it on a particular server. It is the contract between an application repository and the deployment layer.

What belongs in the manifest

A manifest records stable application intent:

  • identity and manifest version;
  • image build strategy or deployable image;
  • container port and health check;
  • public or internal exposure;
  • declared runtime configuration;
  • persistent volumes;
  • domain and TLS intent where applicable.

Secret values do not belong in it. A manifest declares which values are required; vops receives them through a credential-aware input at planning or deployment time.

Two application sources

An Application describes a repository that produces its own image. vops does not build that image on the developer’s laptop or the target VPS. It can trigger a GitHub Actions workflow using a locally held PAT, or accept an image that already exists.

A packaged catalog application already points at published images and provides its expected configuration. It can be installed without giving vops a source repository to build.

Generate, inspect and validate

The CLI exposes the spec as a first-class topic:

Terminal window
vops spec templates
vops spec generate --template node --name my-api --output-file flui.yaml
vops spec validate flui.yaml
vops spec schema

Generation creates a starting point; it cannot infer every requirement of a real repository. Review ports, health checks, persistent data and required configuration before planning a deployment.

Validation is deterministic and local. It catches structural errors before any provider or host operation starts.

The manifest is not an operations script

Do not put arbitrary SSH commands or provider API calls in flui.yaml. vops translates the semantic application declaration into its own host operations. That separation is what allows the same manifest to remain portable and lets the safety layer reason about what a deployment can change.