Skip to content

Chef Package Registry

Publish Chef cookbooks for your user or organization.

Requirements

To work with the Chef package registry, you have to use knife.

Authentication

The Chef package registry does not use an username:password authentication but signed requests with a private:public key pair. Visit the package owner settings page to create the necessary key pair. Only the public key is stored inside Forgejo. if you loose access to the private key you must re-generate the key pair. Configure knife to use the downloaded private key with your Forgejo username as client_name.

Configure the package registry

To configure knife to use the Forgejo package registry add the url to the ~/.chef/config.rb file.

knife[:supermarket_site] = 'https://forgejo.example.com/api/packages/{owner}/chef'
ParameterDescription
ownerThe owner of the package.

Publish a package

To publish a Chef package execute the following command:

Terminal window
knife supermarket share {package_name}
ParameterDescription
package_nameThe package name.

You cannot publish a package if a package of the same name and version already exists. You must delete the existing package first.

Install a package

To install a package from the package registry, execute the following command:

Terminal window
knife supermarket install {package_name}

Optional you can specify the package version:

Terminal window
knife supermarket install {package_name} {package_version}
ParameterDescription
package_nameThe package name.
package_versionThe package version.

Delete a package

If you want to remove a package from the registry, execute the following command:

Terminal window
knife supermarket unshare {package_name}

Optional you can specify the package version:

Terminal window
knife supermarket unshare {package_name}/versions/{package_version}
ParameterDescription
package_nameThe package name.
package_versionThe package version.