- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with chocolatey
- Usage - Configuration options and additional functionality
- Reference
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Sets up a Simple Server for Chocolatey packages. Allows you to host your own packages, many times as a private package repository (feed).
There are three types of package feeds for Chocolatey - local folder/CIFS (UNC) share, simple server, and the sophisticated package gallery. Simple server is in the middle and most widely used Chocolatey/NuGet Package Server format.
Advantages:
- Push over HTTP/HTTPS.
- API key for pushing packages.
- No direct access to packages - acls are locked down to just admins and push through api key.
- Package store is file system.
Disadvantages:
- Only one API key, so no multi user scenarios.
- Starts to affect choco performance once the source has over 500 packages (maybe?).
- No moderation.
- No website to view packages.
- No package statistics.
For more details about the other types of package feeds, see host your own feed.
- Will create files at c:\tools\chocolatey.server.
- Will install IIS and ASP.NET if not already installed.
- Will remove the default website.
- Sets up a website on port 80 (configurable) pointing to chocolatey.server
- Chocolatey installed
chocolatey/chocolatey
ORpuppetlabs/chocolatey
- Note: either or both of these modules can handle ensuring the install of Chocolatey.
Install this module via any of these approaches:
- puppet forge
- git-submodule (tutorial)
- librarian-puppet
- r10k
Ensure the server is installed and configured:
include chocolatey_server
class {'chocolatey_server':
port => '8080',
}
class {'chocolatey_server':
server_package_source => 'http://someinternal/nuget/odatafeed',
}
class {'chocolatey_server':
server_package_source => 'c:/folder/containing/packages',
}
class { 'chocolatey_server':
apikey => 'Sup3rS3cret',
allow_package_override => true,
}
class { 'chocolatey_server':
disable_default_website => false,
packages_folder => 'C:\Chocolatey',
port => '8080',
}
class { 'chocolatey_server':
packages_folder_permissions = [
{ identity => 'IIS APPPOOL\\chocolatey.server', rights => ['modify'] },
{ identity => 'IIS_IUSRS', rights => ['modify'] },
{ identity => 'Users', rights => ['read'] },
]
}
Host your own Chocolatey package repository
Controls whether or not packages can be overwritten if a package with the same id and version already exist. Defaults to 'false'.
Set the apikey for chocolatey server used to push packages. Defaults to 'chocolateyrocks'.
Set apppool name used by the chocolatey.server website. Defaults to 'chocolatey.server'.
Ensure the version of chocolatey server to install. Defaults to 'install'.
The default website is stopped to prevent conflicts with the chocolatey server website. An alternate port can be defined and this option can be set to disabled so it doesn't modify the default website. Defaults to 'true'.
If you want to allow larger files to be pushed via the chocolatey api, you can set this value in bytes to increase the limit. Defaults to '52428800' bytes.
An alternate folder can be defined for the .nupkg files. This is where the nuget packages are actually stored that will be served by the chocolatey server.
Note: This is different from 'server_package_source' as that defines where the chocolatey.server package is located.
Set permissions on packages folder. Defaults to:
- IIS APPOOL${chocolatey_server_app_pool_name} - modify
- IIS_IUSRS - modify
The permissions should be passed as an array of identity and permissions.
The port for the server website. Defaults to '80'.
Controls whether or not an apikey is required to push packages to the chocolatey server. Defaults to 'true'.
The Chocolatey source that contains the chocolatey.server
package.
Defaults to 'https://chocolatey.org/api/v2/'.
Works with Windows only.
We like Pull Requests!