When planning your Octopus installation, you need to decide how to host your packages. Your build server should create your packages and publish them to a package repository.
The Octopus Server includes a built-in repository and supports the following external repositories:
- Docker feeds.
- GitHub feeds.
- Maven feeds.
- NuGet feeds.
- AWS S3 Bucket feeds.
- Helm feeds.
- AWS ECR feeds.
- OCI-based registry feeds.
Octopus can consume packages from multiple feeds at once if necessary.
Your package repository will typically be:
- The built-in Octopus repository.
- A remote feed exposed over HTTP.
- A local NuGet feed exposed as a File Share or local directory.
- A maven feed.
- A JetBrains TeamCity server (version 7 and above).
- A MyGet server.
- An Azure DevOps or TFS Package Management.
Choosing the right repository
Because Octopus can consume packages from multiple feeds, we recommend using different repositories for different purposes as each repository provides different benefits. For instance, if you produce your own application library packages in addition to your deployment packages you might consider something like the following:
- Use the built-in repository for your deployment packages. This is generally the best choice as it offers better performance and through the retention policies you’ve configured, Octopus knows which packages are no longer required and can be cleaned up.
- For application library packages consider using the repository provided by your build server, a file-share, MyGet, or Azure DevOps Package Management.
- For deployment scripts that you want to store in your source control and where a build process is unnecessary, GitHub feeds might be suitable.
Planning package repository placement
By default, when you deploy a package to a Tentacle, the package will be pushed from the Octopus Server to the Tentacle. You can override this by changing the setting of the Action System Variable Octopus.Action.Package.DownloadOnTentacle
from False
to True
. When set to True
the package will be downloaded by the Tentacle, rather than pushed by the Octopus Server.
To reduce network latency, when your package repository is in close proximity to the Octopus Server leave Octopus.Action.Package.DownloadOnTentacle
set to the default value of False
. Alternatively, if you have explicitly set the Tentacles to download packages by the Tentacle to True
, you should consider placing your package repository in close proximity to your Tentacles.
Help us continuously improve
Please let us know if you have any feedback about this page.
Page updated on Sunday, January 1, 2023