The documentation for werf consists of over a hundred articles. They include common use cases (getting started, deploying to Kubernetes, CI/CD integration, and more), a thorough description of functions & architecture, CLI, and commands.

We recommend starting with our Guides section:

  • Installation describes werf dependencies and various installation methods.
  • Getting started describes how to use werf with regular Dockerfiles. Learn how to integrate werf into your project smoothly and effortlessly.
  • Deploying to Kubernetes is a basic example of deploying an application.
  • Generic CI/CD integration is a generalized howto on using werf with any CI/CD system.
  • GitLab CI integration has all the necessary information about werf integration with GitLab CI: build, publish, deploy, and schedule Docker registry cleanup.
  • GitHub Actions integration has all the necessary information about werf integration with GitHub Actions: build, publish, deploy, and clean up.
  • In the Advanced build section, you can learn more about our image description syntax to take advantage of incremental rebuilds based on git history, as well as about other carefully crafted tools. We recommend starting with the First application guide.

The next step is the Configuration section.

To use werf, an application should be configured in werf.yaml file.

The configuration includes:

  1. Definition of the project meta information such as a project name (it will affect build, deploy, and other commands).
  2. Definition of images to be built.

In the Overview article you can find information about:

  • Structure and config sections.
  • Organization approaches.
  • Config processing steps.
  • Supported Go templates functions.

Other section articles provide detailed information about Dockerfile Image, Stapel Image and Stapel Artifact directives and their features.

The Reference section covers essential werf processes:

Each article describes specific process: its composition, available options and features.

Also, this section includes articles with base primitives and general tools:

Since werf is a CLI utility, you may find a thorough description of basic commands required for the CI/CD process as well as service commands that provide advanced functionality in the CLI Commands section.

The Development section contains service and maintenance manuals and other docs that help developers to understand how a specific werf subsystem works, how to maintain said subsystem in the actual state, how to write and build new code for the werf, etc.