Version
Arch
Installation method

Installation

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 alpha)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 alpha)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 beta)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 beta)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 ea)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 ea)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 stable)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 stable)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 rock-solid)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 rock-solid)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 alpha)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 alpha)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 beta)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 beta)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 ea)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 ea)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 stable)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 stable)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 rock-solid)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. To run werf as a regular user you should have access to the Docker daemon.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this is achieved by adding the activation command to ~/.bashrc for Bash or ~/.zshrc for Zsh, but this depends on the OS/distro/your own configuration. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 rock-solid)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 alpha)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 alpha)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 beta)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 beta)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 ea)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 ea)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 stable)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 stable)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 rock-solid)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.2 rock-solid)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 alpha)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 alpha)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 beta)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 beta)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 ea)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 ea)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 stable)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 stable)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 rock-solid)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed.

Install trdl to ~/bin/trdl, which will manage werf installation and updates. Add ~/bin to your $PATH.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new shell session. Often this can be achieved by adding the activation command to ~/.zshrc (for Zsh), ~/.bashrc (for Bash) or to the one of the profile files. Refer to your shell/terminal manuals for more information. This is the werf activation command for the current shell-session:

source "$(trdl use werf 1.1 rock-solid)"

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.2 alpha)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.2 alpha)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.2 beta)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.2 beta)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.2 ea)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.2 ea)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.2 stable)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.2 stable)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.2 rock-solid)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.2 rock-solid)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.1 alpha)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.1 alpha)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.1 beta)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.1 beta)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.1 ea)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.1 ea)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.1 stable)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.1 stable)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.1 rock-solid)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Git 2.18.0 or newer, gpg and Docker installed. Following instructions should be executed in PowerShell.

Grant your user the permission to create symbolic links

You can do the same via the GUI if you don’t want to execute this PowerShell script.

Run as the administrator:

$ntprincipal = new-object System.Security.Principal.NTAccount "$env:UserName"
$sidstr = $ntprincipal.Translate([System.Security.Principal.SecurityIdentifier]).Value.ToString()
$tmp = [System.IO.Path]::GetTempFileName()
secedit.exe /export /cfg "$($tmp)"
$currentSetting = ""
foreach($s in (Get-Content -Path $tmp)) {
    if ($s -like "SECreateSymbolicLinkPrivilege*") {
        $x = $s.split("=",[System.StringSplitOptions]::RemoveEmptyEntries)
        $currentSetting = $x[1].Trim()
    }
}
if ($currentSetting -notlike "*$($sidstr)*") {
    if ([string]::IsNullOrEmpty($currentSetting)) {
        $currentSetting = "*$($sidstr)"
    } else {
        $currentSetting = "*$($sidstr),$($currentSetting)"
    }
    $tmp2 = [System.IO.Path]::GetTempFileName()
    @"
[Unicode]
Unicode=yes
[Version]
signature="`$CHICAGO`$"
Revision=1
[Privilege Rights]
SECreateSymbolicLinkPrivilege = $($currentSetting)
"@ | Set-Content -Path $tmp2 -Encoding Unicode -Force
    cd (Split-Path $tmp2)
    secedit.exe /configure /db "secedit.sdb" /cfg "$($tmp2)" /areas USER_RIGHTS
}

Now log out from the Windows OS, then log back in and run the following command:

gpupdate /force

Install trdl to <disk>:\Users\<your username>\bin\trdl, which will manage werf installation and updates. Add <disk>:\Users\<your username>\bin\ to your $PATH environment variable.

Add werf repo to trdl:

trdl add werf https://tuf.werf.io 1 b7ff6bcbe598e072a86d595a3621924c8612c7e6dc6a82e919abe89707d7e3f468e616b5635630680dd1e98fc362ae5051728406700e6274c5ed1ad92bea52a2

To use werf on a workstation we recommend setting up werf automatic activation. For this the activation command should be executed for each new PowerShell session. For PowerShell this is usually achieved by adding the activation command to $PROFILE file. This is the werf activation command for the current PowerShell-session:

. $(trdl use werf 1.1 rock-solid)

To use werf in CI prefer activating werf manually instead. For this execute the activation command in the beginning of your CI job, before calling the werf binary.

After activation werf should be available in the PowerShell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel alpha

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 alpha)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel alpha

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 alpha)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel beta

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 beta)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel beta

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 beta)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel ea

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 ea)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel ea

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 ea)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel stable

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 stable)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel stable

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 stable)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel rock-solid

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 rock-solid)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel rock-solid

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 rock-solid)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version
Activating experimental Buildah-backend in werf

For now Buildah mode can be activated only if werf.yaml contains only Dockerfile builds, but not Stapel builds.

If you want to run werf in containers/Kubernetes, then follow these Docker or Kubernetes instructions. But if you want to run werf in Buildah mode outside of containers or want to build images bundled with werf in Buildah mode from scratch, then:

  • If your Linux kernel version is 5.13+ (5.11+ for some distros), make sure overlay kernel module is loaded with lsmod | grep overlay. If your kernel is older or if you can’t activate overlay kernel module, then install fuse-overlayfs, which should be available in your distro package repos.
  • Command sysctl kernel.unprivileged_userns_clone should return 1. Else execute:
    echo 'kernel.unprivileged_userns_clone = 1' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • Command sysctl user.max_user_namespaces should return at least 15000. Else execute:
    echo 'user.max_user_namespaces = 15000' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  • If files /etc/subuid and /etc/subgid do not exist, then, in most distros, you should install a package that creates them. Current user should have at least 65536 subordinate UIDs/GUIDs reserved — this will look like a line current_username:1000000:65536 in /etc/subuid and /etc/subgid. If there is no such a line you should add it yourself. After changing these files reboot might be necessary. More info: man subuid, man subgid.
  • Path ~/.local/share/containers should exist and the current user should have write/read permissions for it.
  • To use werf outside of containers, install one of crun/runc/kata/runsc, which are usually available in distro package repos.
  • Install package which provides newuidmap and newgidmap binaries.

Now activate the Buildah backend and try to build your project:

export WERF_BUILDAH_MODE=auto
werf build

If there were errors running werf, try:

  • Fix permissions for newuidmap and newgidmap:
    sudo setcap cap_setuid+ep /usr/bin/newuidmap
    sudo setcap cap_setgid+ep /usr/bin/newgidmap
    sudo chmod u-s,g-s /usr/bin/newuidmap /usr/bin/newgidmap
    
  • If you experience problems with OverlayFS try VFS:
    export WERF_BUILDAH_STORAGE_DRIVER=vfs
    
  • When werf is not containerized then consider switching from native rootless mode to less isolated chroot mode:
    export WERF_BUILDAH_MODE=native-chroot
    

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel alpha

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 alpha)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel alpha

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 alpha)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel beta

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 beta)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel beta

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 beta)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel ea

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 ea)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel ea

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 ea)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel stable

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 stable)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel stable

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 stable)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel rock-solid

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 rock-solid)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel rock-solid

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 rock-solid)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel alpha

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 alpha)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel alpha

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 alpha)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel beta

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 beta)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel beta

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 beta)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel ea

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 ea)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel ea

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 ea)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel stable

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 stable)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel stable

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 stable)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel rock-solid

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 rock-solid)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.2 --channel rock-solid

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.2 rock-solid)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel alpha

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 alpha)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel alpha

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 alpha)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel beta

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 beta)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel beta

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 beta)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel ea

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 ea)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel ea

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 ea)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel stable

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 stable)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel stable

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 stable)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel rock-solid

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 rock-solid)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version

Make sure you have Docker, git 2.18.0+ and gpg installed.

Download werf installer:

curl -sSLO https://werf.io/install.sh && chmod +x install.sh

To use werf on a workstation install werf and configure its automatic activation (open a new shell-session afterwards):

./install.sh --version 1.1 --channel rock-solid

To use werf in CI install werf and activate it manually:

./install.sh --ci
source "$(~/bin/trdl use werf 1.1 rock-solid)"

List of installation options:

./install.sh --help

After activation werf should be available in the shell-session from which it was activated:

werf version