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.
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
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.
In this section
The following topics are explained further in this section:
- Built-in Octopus repository
- Docker Container Registry
- GitHub Repository feeds
- Maven feeds
- NuGet feeds
- AWS S3 Bucket feeds
Need support? We're here to help.