Downloads of v 0.1.1:


Last Update:

20 Sep 2014

Package Maintainer(s):

Software Author(s):

  • Rob Reynolds


nuget odata iis repository chocolatey

Chocolatey Server (Simple)

This is not the latest version of Chocolatey Server (Simple) available.

  • 1
  • 2
  • 3

0.1.1 | Updated: 20 Sep 2014



Downloads of v 0.1.1:


Software Author(s):

  • Rob Reynolds

  • 1
  • 2
  • 3
Chocolatey Server (Simple) 0.1.1

This is not the latest version of Chocolatey Server (Simple) available.

  • 1
  • 2
  • 3

Some Checks Have Failed or Are Not Yet Complete

Not All Tests Have Passed

Validation Testing Unknown

Verification Testing Passed


Scan Testing Successful:

No detections found in any package files


To install Chocolatey Server (Simple), run the following command from the command line or from PowerShell:


To upgrade Chocolatey Server (Simple), run the following command from the command line or from PowerShell:


To uninstall Chocolatey Server (Simple), run the following command from the command line or from PowerShell:


NOTE: This applies to both open source and commercial editions of Chocolatey.

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Enter your internal repository url

(this should look similar to

4. Choose your deployment method:

choco upgrade chocolatey.server -y --source="'STEP 3 URL'" [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:

choco upgrade chocolatey.server -y --source="'STEP 3 URL'"

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0

Exit $exitCode

- name: Ensure chocolatey.server installed
    name: chocolatey.server
    state: present
    version: 0.1.1
    source: STEP 3 URL

See docs at

chocolatey_package 'chocolatey.server' do
  action    :install
  version  '0.1.1'
  source   'STEP 3 URL'

See docs at

    Name: chocolatey.server,
    Version: 0.1.1,
    Source: STEP 3 URL

Requires Otter Chocolatey Extension. See docs at

cChocoPackageInstaller chocolatey.server
   Name     = 'chocolatey.server'
   Ensure   = 'Present'
   Version  = '0.1.1'
   Source   = 'STEP 3 URL'

Requires cChoco DSC Resource. See docs at

package { 'chocolatey.server':
  provider => 'chocolatey',
  ensure   => '0.1.1',
  source   => 'STEP 3 URL',

Requires Puppet Chocolatey Provider module. See docs at

salt '*' chocolatey.install chocolatey.server version="0.1.1" source="STEP 3 URL"

See docs at

5. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

This package was approved by moderator mwrock on 26 Oct 2014.


Chocolatey Server is a simple OData feed built on top of NuGet.Server.

Chocolatey Server builds on NuGet.Server with a few minor adjustments:

  • This is a packaged site, ready to deploy.
  • The apikey is already set.
  • There is more helpful information on the site when accessing locally:
    • There is a link to the Elmah logs
    • The api key is given on the page.
  • The location of packages defaults to a more secure location.

To add packages to the feed put package files (.nupkg files) in this folder.
<?xml version="1.0" encoding="utf-8"?>
  <package id="elmah" version="1.2.2" targetFramework="net40" />
  <package id="elmah.corelibrary" version="1.2.2" targetFramework="net40" />
  <package id="Microsoft.Web.Infrastructure" version="" targetFramework="net40" />
  <package id="Microsoft.Web.Xdt" version="2.1.1" targetFramework="net40" />
  <package id="Ninject" version="" targetFramework="net40" />
  <package id="NuGet.Core" version="2.8.2" targetFramework="net40" />
  <package id="NuGet.Server" version="2.8.2" targetFramework="net40" />
  <package id="RouteMagic" version="1.2" targetFramework="net40" />
  <package id="WebActivatorEx" version="2.0.2" targetFramework="net40" />
<?xml version="1.0"?>
  For more information on how to configure your ASP.NET application, please visit
    <sectionGroup name="elmah">
      <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah"/>
      <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah"/>
      <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah"/>
      <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah"/>
    <compilation debug="false" targetFramework="4.0"/>
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah"/>
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/>
    <httpRuntime maxRequestLength="31457280"/>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true">
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler"/>
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler"/>
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler"/>
      <mimeMap fileExtension=".nupkg" mimeType="application/zip"/>
        See for 
        more information on remote access and securing ELMAH.
    <security allowRemoteAccess="false"/>
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/Logs"/>
  <location path="elmah.axd" inheritInChildApplications="false">
        <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/>
        See for 
        more information on using ASP.NET authorization securing ELMAH.

        <allow roles="admin" />
        <deny users="*" />  
        <add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode"/>
            Determines if an Api Key is required to push\delete packages from the server. 
    <add key="requireApiKey" value="true"/>
            Set the value here to allow people to push/delete packages from the server.
            NOTE: This is a shared key (password) for all users.
    <add key="apiKey" value="chocolateyrocks"/>
            Change the path to the packages folder. Default is ~/Packages.
            This can be a virtual or physical path.
    <add key="packagesPath" value="~/App_Data/Packages"/>
            Set allowOverrideExistingPackageOnPush to false if attempts to upload a package that already exists
            (same id and same version) should fail.
    <add key="allowOverrideExistingPackageOnPush" value="false"/>
            Set enableDelisting to true to enable delist instead of delete as a result of a "nuget delete" command.
            - delete: package is deleted from the repository's local filesystem.
            - delist: 
              - "nuget delete": the "hidden" file attribute of the corresponding nupkg on the repository local filesystem is turned on instead of deleting the file.
              - "nuget list" skips delisted packages, i.e. those that have the hidden attribute set on their nupkg.
              - "nuget install packageid -version version" command will succeed for both listed and delisted packages.
                 e.g. delisted packages can still be downloaded by clients that explicitly specify their version.
    <add key="enableDelisting" value="true"/>
      Set enableFrameworkFiltering to true to enable filtering packages by their supported frameworks during search.
    <add key="enableFrameworkFiltering" value="false"/>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
$packageName = 'chocolatey.server'

try { 
  $toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
  $webToolsDir = Join-Path $toolsDir $packageName
  $installDir = Get-BinRoot
  $webInstallDir = Join-Path $installDir $packageName
  #Enable Web Services
  #cinst IIS-WebServerRole -source WindowsFeatures
  #cinst IIS-ISAPIFilter -source WindowsFeatures
  #cinst IIS-ISAPIExtensions -source WindowsFeatures
  # cinst ASPNET -source webpi
  # cinst ASPNET_REGIIS -source webpi
  # cinst DefaultDocument -source webpi
  # cinst DynamicContentCompression -source webpi
  # cinst HTTPRedirection -source webpi
  # cinst IIS7_ExtensionLessURLs -source webpi
  # cinst IISManagementConsole -source webpi
  # cinst ISAPIExtensions -source webpi
  # cinst ISAPIFilters -source webpi
  # cinst NETExtensibility -source webpi
  # cinst RequestFiltering -source webpi
  # cinst StaticContent -source webpi
  # cinst StaticContentCompression -source webpi
  # cinst UrlRewrite2 -source webpi

  # W3SVC should be running
  $osVersion = [Environment]::OSVersion.Version
  if ($osVersion -ge [Version]'6.2') #8/2012+
    #cinst IIS-NetFxExtensibility45 -source WindowsFeatures
    #cinst NetFx4Extended-ASPNET45 -source WindowsFeatures
    #cinst IIS-ASPNet45 -source WindowsFeatures
  } else { #Windows 7/2008 and below
    ."$env:windir\\framework\v4.0.30319\aspnet_regiis.exe" -i
  Copy-Item $webToolsDir $webInstallDir -recurse -force
  #Import-Module WebAdministration
  #Remove-WebSite -Name "Default Web Site" -ErrorAction SilentlyContinue
  #Remove-WebSite -Name "ChocolateyServer" -ErrorAction SilentlyContinue
  #New-WebSite -ID 1 -Name "ChocolateyServer" -Port 80 -PhysicalPath "$webInstallDir" -Force

  # Write-Host "Setting folder permissions on `'$webInstallDir`' to 'Read' for user $networkSvc"
  # $acl = Get-Acl $webInstallDir
  # $acl.SetAccessRuleProtection($False, $True)
  # $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("$networkSvc","Read", "ContainerInherit, ObjectInherit", "None", "Allow");
  # $acl.AddAccessRule($rule);
  # Set-Acl $webInstallDir $acl  
  # $webInstallAppDataDir = Join-Path $webInstallDir 'App_Data'
  # Write-Host "Setting folder permissions on `'$webInstallAppDataDir`' to 'Modify' for user $networkSvc"
  # $acl = Get-Acl $webInstallAppDataDir
  # $acl.SetAccessRuleProtection($False, $True)
  # $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("$networkSvc","Modify", "ContainerInherit, ObjectInherit", "None", "Allow");
  # $acl.AddAccessRule($rule);
  # Set-Acl $webInstallAppDataDir $acl
  # Import-Module WebAdministration
  # $appPoolPath = "IIS:\AppPools\$projectName"
  # #$pool = new-object
  # Write-Warning "You can safely ignore the next error if it occurs related to getting an app pool that doesn't exist"
  # $pool = Get-Item $appPoolPath
  # if ($pool -eq $null) {
  #   Write-Host "Creating the app pool `'$appPoolPath`'"
  #   $pool = New-Item $appPoolPath 
  # }
  # $pool.processModel.identityType = "NetworkService" 
  # $pool | Set-Item
  # Set-itemproperty $appPoolPath -Name "managedRuntimeVersion" -Value "v4.0"
  # #Set-itemproperty $appPoolPath -Name "managedPipelineMode" -Value "Integrated"
  # Start-WebAppPool "$projectName"
  # Write-Host "Creating the site `'$projectName`' with appPool `'$projectName`'"
  # New-WebApplication "$projectName" -Site "Default Web Site" -PhysicalPath $srcDir -ApplicationPool "$projectName" -Force

  #Client SKUs need to enable firewall
  #netsh advfirewall firewall add rule name="Open Port 80" dir=in action=allow protocol=TCP localport=80

  Write-ChocolateySuccess "$packageName"
} catch {
  Write-ChocolateyFailure "$packageName" "$($_.Exception.Message)"

Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Version Downloads Last Updated Status
Chocolatey Server (Simple) 0.2.5-beta-20180418 393 Wednesday, April 18, 2018 Approved
Chocolatey Server (Simple) 0.2.4 2607 Monday, February 26, 2018 Approved
Chocolatey Server (Simple) 0.2.3 566 Sunday, February 11, 2018 Approved
Chocolatey Server (Simple) 0.2.2 818 Thursday, January 11, 2018 Approved
Chocolatey Server (Simple) 0.2.1 378 Monday, January 8, 2018 Approved
Chocolatey Server (Simple) 0.2.0 440 Thursday, January 4, 2018 Approved
Chocolatey Server (Simple) 0.1.4 387 Tuesday, January 2, 2018 Approved
Chocolatey Server (Simple) 0.1.3 1304 Friday, October 6, 2017 Approved
Chocolatey Server (Simple) 0.1.2 2684 Thursday, November 17, 2016 Approved


  • Small fix to not do anything with respect to making changes.
  • Cleaned up files


  • Initial Release
Discussion for the Chocolatey Server (Simple) Package

Ground Rules:

  • This discussion is only about Chocolatey Server (Simple) and the Chocolatey Server (Simple) package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or Chocolatey Server (Simple), or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus