You can use boolean logic (e.g. AND/OR/NOT) for complex search queries. For more help and examples, see the search documentation.
Search by package name:
my-package
(implicit)
name:my-package
(explicit)
Search by package filename:
my-package.ext
(implicit)
filename:my-package.ext
(explicit)
Search by package tag:
latest
(implicit)
tag:latest
(explicit)
Search by package version:
1.0.0
(implicit)
version:1.0.0
(explicit)
prerelease:true
(prereleases)
prerelease:false
(no prereleases)
Search by package architecture:
architecture:x86_64
Search by package distribution:
distribution:el
Search by package license:
license:MIT
Search by package format:
format:deb
Search by package status:
status:in_progress
Search by package file checksum:
checksum:5afba
Search by package security status:
severity:critical
Search by package vulnerabilities:
vulnerabilities:>1
vulnerabilities:<1000
Search by # of package downloads:
downloads:>8
downloads:<100
Search by package type:
type:binary
type:source
Search by package size (bytes):
size:>50000
size:<10000
Search by dependency name/version:
dependency:log4j
dependency:log4j=1.0.0
dependency:log4j>1.0.0
Search by uploaded date:
uploaded:>"1 day ago"
uploaded:<"August 14, 2022 EST"
Search by entitlement token (identifier):
entitlement:3lKPVJPosCsY
Search by policy violation:
policy_violated:true
deny_policy_violated:true
license_policy_violated:true
vulnerability_policy_violated:true
Search by repository:
repository:repo-name
Search queries for all Debian-specific (and related) package types
Search by component:
deb_component:unstable
Search queries for all Maven-specific (and related) package types
Search by group ID:
maven_group_id:org.apache
Search queries for all Docker-specific (and related) package types
Search by image digest:
docker_image_digest:sha256:7c5..6d4
(full hashref only)
Search by layer digest:
docker_layer_digest:sha256:4c4..ae4
(full hashref only)
Field type modifiers (depending on the type, you can influence behaviour)
For all queries, you can use:
~foo
for negation
For string queries, you can use:
^foo
to anchor to start of term
foo$
to anchor to end of term
foo*bar
for fuzzy matching
For number/date or version queries, you can use:
>foo
for values greater than
>=foo
for values greater / equal
<foo
for values less than
<=foo
for values less / equal
Need a secure and centralised artifact repository to deliver Alpine,
Cargo,
CocoaPods,
Composer,
Conan,
Conda,
CRAN,
Dart,
Debian,
Docker,
Go,
Helm,
Hex,
LuaRocks,
Maven,
npm,
NuGet,
P2,
Python,
RedHat,
Ruby,
Swift,
Terraform,
Vagrant,
Raw & More packages?
Cloudsmith is the new standard in Package / Artifact Management and Software Distribution.
With support for all major package formats, you can trust us to manage your software supply chain.
Format-Specific Setup
To find out how to get setup locally so you can easily install packages, please select one of the formats from the tabs above.
Please note that the term repository here is Cloudsmith's concept of a package or artifact collection, and should not be confused with other package format specific meanings (such as the term as it is used by Docker, to mean a tagged image).
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Alpine Repository Setup
Alpine is the package manager of choice for Alpine Linux distributions.
The following instructions are for Alpine or compatible packages only.
Distribution Setup
To install packages, you can quickly setup the repository automatically (recommended):
sudo apk add --no-cache bash
curl -1sLf \
'https://dl.cloudsmith.io/public/tvheadend/tvheadend/setup.alpine.sh' \
| sudo -E bash
If you need to force a specific distribution, release/version, or architecture, you can also do that (e.g. if your system is compatible but not identical):
sudo apk add --no-cache bash
curl -1sLf \
'https://dl.cloudsmith.io/public/tvheadend/tvheadend/setup.alpine.sh' \
| sudo -E distro=DISTRO codename=CODENAME arch=ARCH bash
or ... you can manually configure it yourself before installing packages:
curl -1sLf 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/rsa.6EBE35F156C21101.key' > /etc/apk/keys/tvheadend@tvheadend-6EBE35F156C21101.rsa.pub
curl -1sLf 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/config.alpine.txt?distro=alpine&codename=v3.8' >> /etc/apk/repositories
apk update
Note: Please replace v3.8 above with your actual distribution version.
Removing Setup
If you no longer want to install packages from the repository, you can remove it with:
$EDITOR /etc/apk/repositories
Remove /alpine/v3.8/main
line, save then execute:
rm -f /etc/apk/keys/tvheadend@tvheadend-6EBE35F156C21101.rsa.pub
apk update
Note: Please replace v3.8 above with your actual distribution version.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Cargo Registry Setup
A fully-fledged Cargo registry, the package manager for Rust!
The following instructions are for Cargo or compatible packages only.
Registry Setup
Assuming you have Rust and Cargo already installed (if not, see the official docs), it is straight-forward to add a Cloudsmith-based Cargo registry.
First, the name and config for the registry must be added to your .cargo/config.toml
or .cargo/config
file as follows:
[registries.tvheadend-tvheadend]
index = "sparse+https://cargo.cloudsmith.io/tvheadend/tvheadend/"
First, the name and URL for the registry must be added to your .cargo/config.toml
or .cargo/config
file as follows:
[registries]
tvheadend-tvheadend = { index = "https://dl.cloudsmith.io/public/tvheadend/tvheadend/cargo/index.git" }
The index
key is a URL to a git repository with the registry's metadata index.
Registry Authentication
When using a public registry, no authentication is required.
Installing a Crate
Once configured as above, a crate can then depend on a crate from your registry by specifying the registry
key and a value of the registry's name in that dependency's entry in Cargo.toml
:
[package]
name = "my-project"
version = "0.1.0"
[dependencies]
other-crate = { version = "1.0", registry = "tvheadend-tvheadend" }
You can also install a crate directly by specifying the registry on the command line:
cargo install my-project --registry tvheadend-tvheadend
Removing a Registry
To remove a Cargo registry from your system, you need to remove it from your .cargo/config.toml
or .cargo/config
file.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
CocoaPods Repository Setup
CocoaPods is the package manager of choice for the Objective-C and Swift ecosystems. Cloudsmith is fully compatible as a CocoaPods private repository.
The following instructions are for CocoaPods or compatible packages only.
Adding your private repository
Before you can install packages from your Cloudsmith repository you'll need to
add your repository to your project's Podfile. This can be done using the
source
keyword in your project's Podfile.
NOTE: Cloudsmith CocoaPods repositories don't (currently) proxy upstream sources, and so can only serve packages which have been explicitly pushed.
To add the repository to your project's Podfile, add the following:
source 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/cocoapods/index.git'
The source
keyword is a URL to a git repository with the metadata index of all of your repository's private pods.
Repository Authentication
When using a public registry, no authentication is required.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Composer Repository Setup
Composer is the package manager of choice for the PHP language.
The following instructions are for Composer or compatible packages only.
Composer Setup
To enable the retrieval of Cloudsmith hosted packages via Composer, the first step is to add your repository to the repositories section of your composer.json file.
Add the following JSON to your project composer.json file:
{
"repositories": [
{
"type": "composer",
"url": "https://composer.cloudsmith.io/tvheadend/tvheadend/",
"options": {
"http": {
"header": [
"X-API-KEY: YOUR-API-KEY"
]
}
}
},
{
"packagist.org": false
}
]
}
After the repository is added to the composer.json file, all that is left is to specify the dependency in the require section of the project composer.json file.
To do this add the following JSON to your project composer.json file:
{
"require": {
"package/name": "version"
}
}
Note: You'll need to replace package/name and version with your own uploaded package details.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Conan Repository Setup
A fully-fledged Conan package repository, the package manager for C++! Cloudsmith is fully compatible as a conan-like repository.
The following instructions are for Conan or compatible packages only.
Registry Setup and Authentication
Assuming you have Conan already installed (if not, see the official docs).
First, the remote repository must be created:
conan remote add tvheadend-tvheadend https://conan.cloudsmith.io/tvheadend/tvheadend/
Then you have to configure the credentials for the remote. This command slightly varies depending on if you are using Conan v1 or v2.
If you are using Conan v1:conan user -p YOUR-ENTITLEMENT-TOKEN -r tvheadend-tvheadend tvheadend/tvheadend
If you are using Conan v2:
conan remote login -p YOUR-ENTITLEMENT-TOKEN tvheadend-tvheadend tvheadend/tvheadend
Note: Please replace the example password above with your actual password.
Removing a Registry
To remove a Cloudsmith registry from your system, you need to remove it from Conan's remotes and users as follows.
First logout of the remote, this command is slightly different depending on if you are using Conan v1 or v2
If you are using Conan v1:conan user remove username
If you are using Conan v2:
conan remote logout tvheadend-tvheadend
Then remove the remote from your configuration:
conan remote remove tvheadend-tvheadend
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Conda Repository Setup
Package, dependency and environment management for any language - Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN, and more. Cloudsmith is fully compatible as a conda repository/channel.
The following instructions are for Conda or compatible packages only.
Registry Setup and Authentication
Adding a new channel can be accomplished by using the conda
CLI:
conda config --add channels https://conda.cloudsmith.io/tvheadend/tvheadend/
Alternatively, the channel can be added directly to your .condarc
:
channels:
- https://conda.cloudsmith.io/tvheadend/tvheadend/
- defaults
Or if you prefer, directly in your environment.yml
file:
name: env-name
channels:
- https://conda.cloudsmith.io/tvheadend/tvheadend/
- defaults
dependencies:
- python=3.7
- codecov
Installing Packages from your Channel
Once configured, you can install packages from your channel using the conda
CLI:
conda install your-package=1.2.3
Note: You'll need to replace your-package and 1.2.3 with your own awesome Conda packages and versions.
If necessary, you can explicitly declare the channel from which to install:
conda install your-package=1.2.3 -c https://conda.cloudsmith.io/tvheadend/tvheadend/
Note: You'll need to replace your-package and 1.2.3 with your own awesome Conda packages and versions.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
CRAN Repository Setup
A fully-fledged CRAN package repository, the package manager for R!
The following instructions are for CRAN or compatible packages only.
Repository configuration via command-line
You can install packages directly by using the install.packages
method within your R session.
install.packages(
"your-package",
repos = c(cloudsmith = "https://dl.cloudsmith.io/public/tvheadend/tvheadend/cran/")
)
If needed, you can also specify the upstream CRAN repository as a fallback for any packages that aren't stored in Cloudsmith:
install.packages(
"your-package",
repos = c(
cloudsmith = "https://dl.cloudsmith.io/public/tvheadend/tvheadend/cran/",
cran = "http://cran.us.r-project.org"
)
)
Note: You'll need to replace your-package with your own package name.
Persistent configuration via startup command file
For most use cases, users will probably want to persist their repository settings
and not specify them every time. To set the repository and avoid having to
specify this during every package installation, create the R startup command file
.Rprofile
in your home directory and add the following R code to it:
print("Configuring CRAN repositories")
r = getOption("repos")
r["cloudsmith"] = "https://dl.cloudsmith.io/public/tvheadend/tvheadend/cran/"
r["CRAN"] = "https://cloud.r-project.org"
options(repos = r)
rm(r)
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Dart Repository Setup
A fully-fledged Dart package repository, the package manager for Dart and Flutter! Cloudsmith is fully compatible as a pub-like repository.
The following instructions are for Dart or compatible packages only.
Installing Packages
Installing packages from this repository varies, depending on the version of the Dart SDK in use.
A dependency may be manually added to your project pubspec.yaml
:
dependencies:
your-package:
hosted:
name: your-package
url: https://dart.cloudsmith.io/tvheadend/tvheadend/
version: 1.2.3
dart pub
is capable of adding a dependency from this repository to your package pubspec.yaml
automatically:
dart pub add your-package:1.2.3 --hosted-url https://dart.cloudsmith.io/tvheadend/tvheadend/
(out)Resolving dependencies...
(out)+ your-package 1.2.3
(out)Downloading your-package 1.2.3...
Changed 1 dependency!
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Debian Repository Setup
Apt/Dpkg is the package manager of choice for Debian-like systems (such as Ubuntu, Linux Mint, Raspbian, etc.)
The following instructions are for Debian or compatible packages only.
Distribution Setup
To install packages, you can quickly setup the repository automatically (recommended):
curl -1sLf \
'https://dl.cloudsmith.io/public/tvheadend/tvheadend/setup.deb.sh' \
| sudo -E bash
If you need to force a specific distribution, release/version, architecture, or component (if supported), you can also do that (e.g. if your system is compatible but not identical):
curl -1sLf \
'https://dl.cloudsmith.io/public/tvheadend/tvheadend/setup.deb.sh' \
| sudo -E distro=DISTRO codename=CODENAME arch=ARCH component=COMPONENT bash
or ... you can manually configure it yourself before installing packages:
apt-get install -y debian-keyring # debian only
apt-get install -y debian-archive-keyring # debian only
apt-get install -y apt-transport-https
# For Debian Stretch, Ubuntu 16.04 and later
keyring_location=/usr/share/keyrings/tvheadend-tvheadend-archive-keyring.gpg
# For Debian Jessie, Ubuntu 15.10 and earlier
keyring_location=/etc/apt/trusted.gpg.d/tvheadend-tvheadend.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/gpg.C6CC06BD69B430C6.key' | gpg --dearmor >> ${keyring_location}
curl -1sLf 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/config.deb.txt?distro=ubuntu&codename=xenial&component=main' > /etc/apt/sources.list.d/tvheadend-tvheadend.list
sudo chmod 644 ${keyring_location}
sudo chmod 644 /etc/apt/sources.list.d/tvheadend-tvheadend.list
apt-get update
Note: Please replace ubuntu, xenial and main above with your actual operating system (distribution and distribution release/version) and components (based on what's in this repository).
Removing Setup
If you no longer want to install packages from the repository, you can remove it with:
rm /etc/apt/sources.list.d/tvheadend-tvheadend.list
apt-get clean
rm -rf /var/lib/apt/lists/*
apt-get update
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Docker Registry Setup
A fully-fledged Docker registry.
The following instructions are for Docker or compatible packages only.
Overview
For an overview an additional documentation on the Cloudsmith Docker registry, please refer to our help documentation.
Authentication
As this is a public registry, you don't need to authenticate to pull images.
Pulling Images
Pulling (downloading) an image from the Cloudsmith Docker registry can be done using the standard docker pull
command:
docker pull docker.cloudsmith.io/tvheadend/tvheadend/your-image:latest
Note: You should replace your-image and latest in the above with your own image name and tag.
Dockerfile Usage
To refer to images after pulling in a Dockerfile, specify the following:
FROM docker.cloudsmith.io/tvheadend/tvheadend/your-image:latest
Note: As above, you can replace your-image and latest in the above with your own image name and tag.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Go Repository Setup
A fully-fledged Go module repository!
The following instructions are for Go or compatible packages only.
Configuring your repository for access
Before you can install modules from your Cloudsmith repository you'll need to
configure your environment for access. Configuration is defined using the
GOPROXY
environment variable.
NOTE: Cloudsmith Go repositories don't (currently) proxy upstream sources, and so can only serve modules which have been explicitly pushed. If you require the ability to pull modules from public/upstream sources then you must use Go 1.13 or greater to avail of the fallback repository support.
On Linux or Mac you can use export
:
export GOPROXY=https://dl.cloudsmith.io/public/tvheadend/tvheadend/go/,https://proxy.golang.org,direct
On Windows you can use set
:
set GOPROXY=https://dl.cloudsmith.io/public/tvheadend/tvheadend/go/,https://proxy.golang.org,direct
Or with Powershell you can use $env
:
$env:GOPROXY=https://dl.cloudsmith.io/public/tvheadend/tvheadend/go/,https://proxy.golang.org,direct
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Helm Repository Setup
Helm is the package manager of choice for managing application definitions within the Kubernetes (k8s) ecosystem.
The following instructions are for Helm or compatible packages only.
Repository Setup
Assuming you have helm already installed, it is straight-forward to add a Cloudsmith-based chart repository:
helm repo add tvheadend-tvheadend \
'https://dl.cloudsmith.io/public/tvheadend/tvheadend/helm/charts/'
helm repo update
Installing a Helm Chart
You can install a chart by using the following command:
helm install tvheadend-tvheadend/my-awesome-helm-chart
You can also install a chart directly by specifying the repository on the command line:
helm install my-awesome-helm-chart \
--repo 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/helm/charts/'
Removing Setup
If you no longer want to install packages from the repository, you can remove it with:
Helm provides a very clean method of removing a chart repository, simply run the following command:
helm repo remove tvheadend-tvheadend
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
(BETA) Hex Registry Setup
Hex is the package manager of choice for the Erlang/Elixir and Rebar ecosystems. Cloudsmith is fully compatible as a Hex repository.
The following instructions are for Hex or compatible packages only.
Beta: This package format is in beta, and as such functionality may not be complete. Any problems should be immediately reported to us.
Mix is a build tool that ships with Elixir. For an introduction on Elixir and Mix, see Introduction to Mix. You can also read about how Hex packages work with Mix at Hex Mix Usage.
Repository Setup
Assuming you already have Mix installed, it is straight-forward to add a Cloudsmith-based Hex repository. You need to run Mix's add repository command.
mix hex.repo add tvheadend https://hex.cloudsmith.io/tvheadend/tvheadend --auth-key 'YOUR-API-KEY' --fetch-public-key SHA256:D/DRhWHw8ZhsucEKc3Wfyphs7NoueZgZDgJsoytcnpQ
Note: If you get the error 'The task "hex.repo" could not be found'
you will first need to install the Hex task in Mix. (For more information, see the Hex usage documentation.) Run:
mix local.hex
Note: The following error (probably) indicates you did not use as the repository name when you invoked mix hex.repo add
. Hex is sensitive about this. The repository name must match the repository name served by the Hex API responses Cloudsmith serves.
(Mix.Error) Fetched deprecated registry record version from repo cloudsmith-general. For security reasons this registry version is no longer supported. The repository you are using should update to fix the security reason. Set HEX_NO_VERIFY_REPO_ORIGIN=1 to disable this check.
Installing a package
You can install a package by using Mix's fetch command:
mix hex.package fetch PACKAGE-NAME PACKAGE-VERSION --repo tvheadend
For example, to install version 1.0.0 of the 'jason' module:
mix hex.package fetch jason 1.0.0 --repo tvheadend
Removing Setup
If you no longer want to install packages from the repository, you can remove it with:
mix hex.repo remove tvheadend
Rebar3 is the standard build tool within the Erlang community. For an introduction on Rebar3, see Rebar3 - Getting Started. You can also read about how Hex packages work with Mix at Hex Rebar3 Usage.
Repository Setup
Assuming you already have Rebar3 installed, it is straight-forward to pull Hex packages from a Cloudsmith repository. To do so, you must edit your project's rebar.config
. Let's first create a new project called 'my_project' like so:
rebar3 new app my_project
cd my_project
Now edit your project's rebar.config
to add this new section:
{hex, [
{repos, [
#{
name => <<"tvheadend">>,
repo_url => <<"https://hex.cloudsmith.io/tvheadend/tvheadend">>,
repo_key => <<"YOUR-API-KEY">>,
repo_public_key => <<"-----BEGIN PUBLIC KEY-----
MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEArKYGF/89W72ZCwNiTM4e
bDOykMPtS/k2TE25zKC+MGA58nAczsGWAe/K4+68wEhvj9CP9i67jcgLPBDd+ZsF
+VL1nlP04XCKHGUE/PqajOIwqm/cdcPjf3m38+MOKHAoQYtI0WOVjw8zIKwotvF0
SxXVyglq5NOzddKp0/Gs1FR83QnRWl4Xq/pr+c96GeEIICN593jKRQ++nNOSYjsz
g9oDE8PT6A6OvsziTOW57w/8OGVKcgtLakYt+u+qkRolizj63pJL4IJcyFIiu0fU
ASw3cySAkPuAbqESeHxUw3uypLD2GwdI/Ls5rXZxFMf8ZEq3e6vlQjKtI5Bmcxm0
6yiC4zA4DdHTNvoU9LU/G+s9gS92qRorCL06T1jpvlKCY9yWFF3wBVea2fkzrLEL
f6jHoju/hBXByQ3Bu49jK2og3/uQBp0yFWAuv60Z4s5F4Qjp/9ly7TISbJ3oRwoJ
NTUnfDveLv2OtXlJYUHW3uCI34Qf5atPrNDYVKrGn05DAgMBAAE=
-----END PUBLIC KEY-----">>
}
]}
]}.
Note: It is also possible to add this same configuration to Rebar3's global configuration at ~/.config/rebar3/rebar.config
rather than on a per-project basis.
Installing a package
Rebar3 pulls packages for you with its deps
or compile
command. For more information, see Rebar3 - Dependencies. To pull a package, you must declare it as a dependency in your project's rebar.config
file. Then, when you run rebar3 deps
, or rebar3 compile
it will pull the package from Cloudsmith and install it for you. Let's add version 1.0.0 of the jason module to your project's dependency list. You would add edit your project's rebar.config
file like so:
{deps, [
{jason, "1.0.0"}
]}.
Now when you run rebar3 deps
it will install the jason package for you. You can find some background information about adding dependencies to your project at Rebar3 - Basic Usage.
rebar3 deps
Removing a Registry
To remove this registry from your project, you need to remove it from your rebar.config
file.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
LuaRocks Repository Setup
A fully-fledged LuaRocks module repository, the package manager for Lua!
The following instructions are for LuaRocks or compatible packages only.
Repository configuration via command-line
You can install modules directly by using the --server
command-line
flag when executing a luarocks
command.
luarocks install your-package 1.0.0 --server https://dl.cloudsmith.io/public/tvheadend/tvheadend/luarocks/
To search only your Cloudsmith repository for modules use the
--only-server
command-line flag. Note this will force luarocks to
search only the Cloudsmith repository and will result in luarocks not being able
to install public modules that your private module may depend on.
luarocks install your-package 1.0.0 --only-server https://dl.cloudsmith.io/public/tvheadend/tvheadend/luarocks/
Note: You'll need to replace your-package and 1.0.0 with your own package and version.
Repository configuration via config file
For most use cases, users will probably want to persist their repository settings and not specify them every time. luarocks provides a configuration file that can be modified to persist settings, see the luarocks config file documentation for full details of available options and the location of the file for your platform.
To add your private repository, adjust the rocks_servers
section of
your config file. Note if you still want to be able to install packages from
luarocks.org you should leave the default
value in place and add your repository, otherwise you can
replace the value entirely:
rocks_servers = {
"http://luarocks.org/repositories/rocks",
"https://dl.cloudsmith.io/public/tvheadend/tvheadend/luarocks/"
}
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Maven Repository Setup
A repository that supports Maven-compatible projects and JARs, with support for Gradle, SBT, Leiningen, Ivy, Grape, etc.
The following instructions are for Maven or compatible packages only.
Build System Setup
To enable the retrieval of Cloudsmith hosted packages via Maven, the first step is to add your repository to the dependencyManagement section of your pom.xml file.
To do this add the following XML to your project pom.xml file:
<repositories>
<repository>
<id>tvheadend-tvheadend</id>
<url>https://dl.cloudsmith.io/public/tvheadend/tvheadend/maven/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
After the repository is added to the pom.xml file, and credentials are added to the settings.xml file (if required), all that is left is to specify the dependency in the dependencies section of the project pom.xml file.
To do this add the following XML to your project pom.xml file:
<dependency>
<groupId>group-id</groupId>
<artifactId>artifact-id</artifactId>
<version>version</version>
</dependency>
Note: You'll need to replace group-id, artifact-id and version with your own uploaded package details.
To enable the retrieval of Cloudsmith hosted packages via Gradle, the first step is to add your repository to the build.gradle file.
To do add the following, at any location, to your build.gradle file:
repositories {
maven {
url "https://dl.cloudsmith.io/public/tvheadend/tvheadend/maven/"
}
}
After the repository is added to the build.gradle file, and credentials are added to the ~/.gradle/gradle.properties file (if required), all that is left is to specify the dependency in the dependencies section of the project build.gradle file.
To do this add the below to your build.gradle file:
dependencies {
implementation 'group-id:artifact-id:version'
}
Note: You'll need to replace group-id, artifact-id and version with your own uploaded package details.
To enable the retrieval of Cloudsmith hosted packages via sbt, add your repository your build.sbt file.
resolvers += "tvheadend-tvheadend" at "https://dl.cloudsmith.io/public/tvheadend/tvheadend/maven/"
After the repository is added to the build.sbt file, and your credentials are added to the ~/.sbt/.credentials file (if required), all that is left is to specify the dependency in the dependencies section of the project build.sbt file.
To do this add the below to your build.sbt file:
libraryDependencies += "group-id" % "artifact-id" % "version"
Note: In sbt 0.13.x (not sbt 1.x or above) an extension point in the dependency resolution to use Maven-style resolvers is required. To enable this plugin add the following to project/maven.sbt (or project/plugin.sbt):
addMavenResolverPlugin
Note: You'll need to replace group-id, artifact-id and version with your own uploaded package details.
To enable the retrieval of Cloudsmith hosted packages via Leiningen, add your repository to the top level of the project.clj file.
:repositories [["snapshots" "https://dl.cloudsmith.io/public/tvheadend/tvheadend/maven/"]
["releases" "https://dl.cloudsmith.io/public/tvheadend/tvheadend/maven/"]]
After the repository is added to the project.clj file all that is left is to specify the dependency in the dependencies section of the project project.clj file.
To do this add the below to your project.clj file:
:dependencies [[group-id/artifact-id "version"]]
Note: You'll need to replace group-id, artifact-id and version with your own uploaded package details.
To enable the retrieval of Cloudsmith hosted packages via Groovy's Grape, add the repository to the Groovy script.
@GrabResolver(name='tvheadend-tvheadend', root='https://dl.cloudsmith.io/public/tvheadend/tvheadend/maven/')
After the repository is added to your script all that is required is to specify the dependency within the script.
@Grab(group='group-id', module='artifact-id', version='version')
Note: You'll need to replace group-id, artifact-id and version with your own uploaded package details.
Encrypting Credentials
As mentioned earlier we would highly advise that you encrypt your credentials using something like mvn --encrypt-password YOUR-ENTITLEMENT-TOKEN
, of which you can refer to the mini encryption guide for more detailed help (external link). This method may only work for Maven and Gradle-based repositories.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
npm Registry Setup
Npm is the package manager of choice for the Javascript/Node ecosystem. Cloudsmith is fully compatible as an npmjs-like registry.
The following instructions are for npm or compatible packages only.
Registry Setup
There are two ways to tell npm to use a Cloudsmith-based npm registry:
- Set the registry as the default globally, per-user or per-project.
- Provide the registry URL when executing npm commands.
Set Default Registry
To use/set the registry as the default for your user, execute the following:
npm config set registry https://npm.cloudsmith.io/tvheadend/tvheadend/
You can set it globally (with permissions) by using the -g
argument.
Alternatively, you can add it directly to your user or project .npmrc file:
registry=https://npm.cloudsmith.io/tvheadend/tvheadend/
Note: Setting the registry globally will impact all npm commands, unless they explicitly override the registry.
Specify Registry During Commands
You can specify the registry each time you execute npm commands, such as:
npm install lodash --registry=https://npm.cloudsmith.io/tvheadend/tvheadend/
Authentication
Read-Only Authentication (Installing)
For a public registry, you do not provide authentication for read-only contexts, such as installing packages:
npm install awesome-package
npm Scopes
You can namespace your registry and packages using npm scopes.
Scoped Registry
Using a registry scope tells npm to route installs for packages in that scope to Cloudsmith.
You can set it via the command-line using:
npm config set '@cloudsmith:registry' https://npm.cloudsmith.io/tvheadend/tvheadend/
You can also set it directly in your user or project .npmrc file:
@cloudsmith:registry=https://npm.cloudsmith.io/tvheadend/tvheadend/
Note: You should replace @cloudsmith in the above with your own scope name.
Scoped Packages
Using a package scope provides a different namespace to other similarly named packages to differentiate them.
Installing packages with a scope requires putting the scope before the name:
npm install @cloudsmith/awesome-package
You can find out more about scoped packages (on npmjs.com).
Note: You should replace @cloudsmith in the above with your own scope name.
Distribution Tags
Distribution tags allow npm packages to be tagged with a mnemonic that is associated with a specific package version.
These can be used as an alternative to the package version when installing packages, such as:
npm install awesome-package@beta --registry=https://npm.cloudsmith.io/tvheadend/tvheadend/
Cloudsmith has full support for distribution tags and (mostly) follows the same rules for them as on npmjs.com:
- A specific tag can point at one version of a package only.
- A package version may have multiple unique tags.
- Unless specified otherwise, the default tag for the last package published is latest.
- When a package that is latest is deleted, the tag is moved to the next applicable version by semver.
You can inspect a package to see what tags it has:
npm dist-tags ls awesome-package --registry=https://npm.cloudsmith.io/tvheadend/tvheadend/
(out)latest: 1.0.0
(out)beta: 2.0.0
You can find out more about distribution tags (on npmjs.com).
Transparent Upstream Proxying
Cloudsmith supports transparent proxying of install requests to/from npmjs.com.
When enabled, requests for packages that don't exist in the registry will be automatically proxied:
npm install lodash@4.17.11 --registry='https://npm.cloudsmith.io/tvheadend/tvheadend/'
(out)+ lodash@4.17.11
(out)updated 1 package in 2.743s
In this case, lodash didn't exist in the registry and was proxied. This also applies automatically when npm is installing dependencies for your package. It will load them from the registry automatically and transparently proxy them.
Warning: If transparent upstream proxying is disabled for the registry then you will need to fetch all dependencies of your packages manually. These can then be published into the registry, or you can bundle them with bundleDependencies.
Security Auditing
Cloudsmith supports proxying of npm audit requests to detect vulnerabilities in dependencies:
npm audit
(out) === npm audit security report ===
(out)found 0 vulnerabilities
(out) in 1 scanned package
You can find out more about security auditing (on npmjs.com).
Yarn Compatibility
Assuming that you have always-auth enabled, Yarn is immediately compatible with Cloudsmith registries:
yarn add lodash@4.17.11 --registry=https://npm.cloudsmith.io/tvheadend/tvheadend/
(out)[1/5] Validating package.json...
(out)[2/5] Resolving packages...
(out)[3/5] Fetching packages...
(out)[4/5] Linking dependencies...
(out)[5/5] Building fresh packages...
(out)success Saved lockfile.
(out)success Saved 1 new dependency.
(out)info Direct dependencies
(out)└ lodash@4.17.11
(out)info All dependencies
(out)└ lodash@4.17.11
To enable always-auth, add it to your user or project .npmrc file:
always-auth
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
NuGet Feed Setup
NuGet is the package manager of choice within the .NET development platform.
The following instructions are for NuGet or compatible packages only.
Introduction
As explained by nuget.org: "NuGet is the package manager for .NET. The NuGet client tools provide the ability to produce and consume packages. The NuGet Gallery is the central package repository used by all package authors and consumers."
Source Setup
To consume packages in NuGet from this Feed, you'll need to configure it as a source.
choco source add -n tvheadend-tvheadend -s https://nuget.cloudsmith.io/tvheadend/tvheadend/v2/
nuget sources add -Name tvheadend-tvheadend -Source https://nuget.cloudsmith.io/tvheadend/tvheadend/v3/index.json
dotnet nuget add source --name tvheadend-tvheadend https://nuget.cloudsmith.io/tvheadend/tvheadend/v3/index.json
You can add the source to your paket.dependencies
file:
source https://nuget.cloudsmith.io/tvheadend/tvheadend/v3/index.json
Register-PackageSource -Name 'tvheadend-tvheadend' -Location 'https://nuget.cloudsmith.io/tvheadend/tvheadend/v2/' -Trusted
Register-PSRepository -Name 'tvheadend-tvheadend' -SourceLocation 'https://nuget.cloudsmith.io/tvheadend/tvheadend/v2/' -InstallationPolicy 'trusted'
When specifying the source in commands via -Source
, use the following URL:
https://nuget.cloudsmith.io/tvheadend/tvheadend/v3/index.json
Installing Packages
You can install NuGet packages using the following commands:
choco install Your.Package -s tvheadend-tvheadend --version 1.2.3
Note: This assumes you have configured tvheadend-tvheadend as a source.
nuget install Your.Package -Version 1.2.3 -Source tvheadend-tvheadend
nuget install ... -NoCache
to overcome this. You can find out
more in the
NuGet package installation documentation
.
Note: This assumes you have configured tvheadend-tvheadend as a source.
dotnet add package Your.Package -v 1.2.3 -s https://nuget.cloudsmith.io/tvheadend/tvheadend/v3/index.json
dotnet restore --no-cache
to overcome this. You can find out
more in the
NuGet package installation documentation
.
paket add nuget Your.Package -v 1.2.3
Note: This assumes that you have setup the source for this repository in your paket.dependencies
file.
Installing a NuGet Package:
Install-Package -Name 'Your.Package' -RequiredVersion '1.2.3' -Source 'tvheadend-tvheadend'
Installing a PowerShell Module:
Install-Module -Name 'Your.Package' -RequiredVersion '1.2.3' -Repository 'tvheadend-tvheadend'
Installing a PowerShell Script:
Install-Script -Name 'Your.Package.ps1' -RequiredVersion '1.2.3' -Repository 'tvheadend-tvheadend'
Note: This assumes you have configured tvheadend-tvheadend as a source.
Install-Package Your.Package -Version 1.2.3 -Source tvheadend-tvheadend
Note: This assumes you have configured tvheadend-tvheadend as a source.
Note: You should replace Your.Package and 1.2.3 with your own package name and version.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Python Repository Setup
Pip/Pipenv/Poetry are package managers of choice for the Python ecosystem. Cloudsmith is fully compatible as a PyPi-like repository.
The following instructions are for Python or compatible packages only.
Python Setup Via Command-Line
You can install packages directly by using the --index-url
or --extra-index-url
Pip
configuration arguments when executing a pip command.
Note: We recommend using --index-url
. As per
pip's documentation: Using the --extra-index-url
option to search for
packages that are not in this repository (such as private packages) is unsafe, per a security vulnerability called
dependency confusion: an attacker can
claim the package on the public repository in a way that will ensure it gets chosen over the private package. For
more detail, see our expanded documentation on the
usage and dangers of extra
index URL.
pip install my-awesome-package==1.0.0 --index-url https://dl.cloudsmith.io/public/tvheadend/tvheadend/python/simple/
Note: You'll need to replace my-awesome-package and 1.0.0 with your own awesome python packages and versions.
Python Setup Via Pip
Similar to setup via command-line, pip needs to be passed the --index-url
configuration option. To do
this add --index-url
to the top of your requirements.txt (or similar) file.
--index-url https://dl.cloudsmith.io/public/tvheadend/tvheadend/python/simple/
my-awesome-package==1.0.0
Note: You'll need to replace my-awesome-package and 1.0.0 with your own awesome python packages and versions.
Removing Setup
If you no longer want to install packages from the repository, you can remove it with:
Remove the following line from your $HOME/.pip/pip.conf file:
--index-url=https://dl.cloudsmith.io/public/tvheadend/tvheadend/python/simple/
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
RedHat Repository Setup
A repository for RedHat-like systems (such as RHEL, CentOS, SUSE, Fedora, etc.), compatible with yum, dnf, zypper, etc.
The following instructions are for RedHat or compatible packages only.
Distribution Setup
To install packages you'll need to setup your repository, which is specific to your distribution:
To install packages, you can quickly setup the repository automatically (recommended):
curl -1sLf \
'https://dl.cloudsmith.io/public/tvheadend/tvheadend/setup.rpm.sh' \
| sudo -E bash
If you need to force a specific distribution, release/version, or architecture, you can also do that (e.g. if your system is compatible but not identical):
curl -1sLf \
'https://dl.cloudsmith.io/public/tvheadend/tvheadend/setup.rpm.sh' \
| sudo -E distro=DISTRO codename=CODENAME arch=ARCH bash
or ... you can manually configure it yourself before installing packages:
yum install yum-utils pygpgme
rpm --import 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/gpg.C6CC06BD69B430C6.key'
curl -1sLf 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/config.rpm.txt?distro=el&codename=7' > /tmp/tvheadend-tvheadend.repo
yum-config-manager --add-repo '/tmp/tvheadend-tvheadend.repo'
yum -q makecache -y --disablerepo='*' --enablerepo='tvheadend-tvheadend'
Note: Please replace el and 7 above with your actual distribution/version and use Wildcards when enabling multiple repos.
To install packages, you can quickly setup the repository automatically (recommended):
curl -1sLf \
'https://dl.cloudsmith.io/public/tvheadend/tvheadend/setup.rpm.sh' \
| sudo -E bash
If you need to force a specific distribution, release/version, or architecture, you can also do that (e.g. if your system is compatible but not identical):
curl -1sLf \
'https://dl.cloudsmith.io/public/tvheadend/tvheadend/setup.rpm.sh' \
| sudo -E distro=DISTRO codename=CODENAME arch=ARCH bash
or ... you can manually configure it yourself before installing packages:
dnf install yum-utils pygpgme
rpm --import 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/gpg.C6CC06BD69B430C6.key'
curl -1sLf 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/config.rpm.txt?distro=fedora&codename=29' > /tmp/tvheadend-tvheadend.repo
dnf config-manager --add-repo '/tmp/tvheadend-tvheadend.repo'
dnf -q makecache -y --disablerepo='*' --enablerepo='tvheadend-tvheadend' --enablerepo='tvheadend-tvheadend-source'
Note: Please replace fedora and 29 above with your actual distribution/version.
To install packages, you can quickly setup the repository automatically (recommended):
curl -1sLf \
'https://dl.cloudsmith.io/public/tvheadend/tvheadend/setup.rpm.sh' \
| sudo -E bash
If you need to force a specific distribution, release/version, or architecture, you can also do that (e.g. if your system is compatible but not identical):
curl -1sLf \
'https://dl.cloudsmith.io/public/tvheadend/tvheadend/setup.rpm.sh' \
| sudo -E distro=DISTRO codename=CODENAME arch=ARCH bash
or ... you can manually configure it yourself before installing packages:
microdnf upgrade microdnf # v3.8+ required to use makecache
rpm --import 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/gpg.C6CC06BD69B430C6.key'
curl -1sLf 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/config.rpm.txt?distro=almalinux&codename=8.4' > /etc/yum.repos.d/tvheadend-tvheadend.repo
microdnf makecache -y --disablerepo='*' --enablerepo='tvheadend-tvheadend*'
Note: Please replace almalinux and 8.4 above with your actual distribution/version.
To install packages, you can quickly setup the repository automatically (recommended):
curl -1sLf \
'https://dl.cloudsmith.io/public/tvheadend/tvheadend/setup.rpm.sh' \
| sudo -E bash
If you need to force a specific distribution, release/version, or architecture, you can also do that (e.g. if your system is compatible but not identical):
curl -1sLf \
'https://dl.cloudsmith.io/public/tvheadend/tvheadend/setup.rpm.sh' \
| sudo -E distro=DISTRO codename=CODENAME arch=ARCH bash
or ... you can manually configure it yourself before installing packages:
curl -1sLf 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/config.rpm.txt?distro=opensuse&codename=42.2' > /tmp/tvheadend-tvheadend.repo
zypper ar -f '/tmp/tvheadend-tvheadend.repo'
zypper --gpg-auto-import-keys refresh tvheadend-tvheadend tvheadend-tvheadend-source
Note: Please replace opensuse and 42.2 above with your actual distribution/version.
Removing Setup
If you no longer want to install packages from the repository, you can remove it with:
rm /etc/yum.repos.d/tvheadend-tvheadend.repo
rm /etc/yum.repos.d/tvheadend-tvheadend-source.repo
rm /etc/yum.repos.d/tvheadend-tvheadend.repo
rm /etc/yum.repos.d/tvheadend-tvheadend-source.repo
rm /etc/yum.repos.d/tvheadend-tvheadend.repo
zypper rr tvheadend-tvheadend
zypper rr tvheadend-tvheadend-source
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Ruby Repository Setup
Rubygems/bundler are the package managers of choice for the Ruby ecosystem. Cloudsmith is fully compatible as a Rubygems-like repository.
The following instructions are for Ruby or compatible packages only.
Setup With Bundler
As stated by Bundler, "Bundler provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed."
Bundler from version 1.7 supports scoped sources, so you can install a gem from Cloudsmith using the following declaration in your Gemfile:
source 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/ruby/' do
gem 'awesome-gem', '~> 42.0'
end
Note: You'll need to replace awesome-gem and ~> 42.0 with your own gem name and version.
Setup With Ruby CLI
You can also add Cloudsmith as a source for the Ruby CLI instead:
gem sources --add 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/ruby/'
Removing Setup
If you no longer want to install packages from the repository, you can remove it with:
gem sources -r 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/ruby/'
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Swift Registry Setup
The Swift Package Manager is a tool for managing the distribution of Swift code. It’s integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies. Cloudsmith is fully compatible as a Swift registry.
The following instructions are for Swift or compatible packages only.
Background documentation
For an introduction to Swift's package-manager see: Swift.org Package Manager. More detailed information about registry configuration can be found at: Package Registry Usage.
Repository Setup
After first creating a Swift project, it is straight-forward to configure a Cloudsmith repository for the project.
swift package-registry set https://swift.cloudsmith.io/tvheadend/tvheadend/
swift package-registry login https://swift.cloudsmith.io/tvheadend/tvheadend/ --token YOUR-API-KEY
This writes the registry into the project's configuration file at .swiftpm/configuration/registries.json
.
Note: the above command sets the registry for your current project. However, it is possible
to configure this registry as Swift's global package registry using the --global
flag. It will write the
registry configuration into the user configuration file at ~/.swiftpm/configuration/registries.json
.
Installing a package
You can add a package as a dependency in your project's Package.swift
file.
dependencies: [
.package(id: "scope.name", from: "1.0.0"),
],
Removing Setup
If you no longer want to install packages from the repository, you can remove it with:
swift package-registry unset
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Terraform Registry Setup
A fully-fledged Terraform registry!
The following instructions are for Terraform or compatible packages only.
Registry Setup and Authentication
Assuming you have Terraform already installed (if not, see the official docs), it is straight-forward to add a Cloudsmith-based Terraform module.
First, the namespace, repository and credentials must be added to your .terraformrc
or terraform.rc
file as follows:
credentials "terraform.cloudsmith.io" {
token = "your_namespace/your_repository/YOUR-ENTITLEMENT-TOKEN"
}
The token
must contain the name of the organization which owns the module, the repository containing the module and the credentials required to authenticate with the API, delimited by a /
.
Installing a Module
Once configured as above, your module can then depend on a module from your registry by specifying the module's source
, which is made up of it's repository slug
, name
and provider
in that module's entry in your Terraform file(s):
module "my_module" {
source = "terraform.cloudsmith.io/terraform/my_module/my_provider"
version = "0.1.0"
}
Once private module(s) have been added to your source code, they can be downloaded by running:
terraform init
Removing a Registry
To remove a Terraform registry from your system, you need to remove it from your .terraformrc
or terraform.rc
file.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Vagrant Repository Setup
Cloudsmith is fully compatible as an (Hashicorp) Atlas-like repository.
The following instructions are for Vagrant or compatible packages only.
Vagrant Setup
To enable the retrieval of Cloudsmith hosted Vagrant boxes, the box can either be added directly via Vagrant's CLI or the project's Vagrantfile can be updated. To add the box directly via Vagrant's CLI, execute the following:
vagrant box add 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/vagrant/awesome-box/metadata.json' \
--name 'awesome-box' \
--box-version 'box-version' \
--provider 'box-provider'
Note: You'll need to replace awesome-box, box-version and box-provider with your own uploaded package details.
To add the box without having to specify the URL each time, the following must be added to the project's Vagrantfile:
config.vm.box = "awesome-box"
config.vm.box_url = "https://dl.cloudsmith.io/public/tvheadend/tvheadend/vagrant/awesome-box/metadata.json"
Note: You'll need to replace awesome-box with your own uploaded package details.
After this configuration has been added to the Vagrantfile, Vagrants CLI tool can now be used as normal:
vagrant up
(out)Bringing machine 'default' up with 'box-provider' provider...
(out) ==> default: Box 'awesome-box' could not be found. Attempting to find and install...
(out) default: Box Provider: 'box-provider'
(out) default: Box Version: >= '0'
(out) ==> default: Loading metadata for box 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/vagrant/awesome-box/metadata.json'
(out) default: URL: https://dl.cloudsmith.io/public/tvheadend/tvheadend/vagrant/awesome-box/box-version/my-awesome-box.box
(out) ==> default: Adding box 'awesome-box' ('box-version') for provider: 'box-provider'
(out) ==> default: Successfully added box 'awesome-box' ('box-version') for: 'box-provider'
Note: You'll need to replace awesome-box, box-version and box-provider with your own uploaded package details.
After this configuration has been added to the Vagrantfile new versions will be automatically detected by Vagrant when uploaded to Cloudsmith:
vagrant up
(out)Bringing machine 'default' up with 'box-provider' provider...
(out) ==> default: Checking if box 'awesome-box' is up to date...
(out) ==> default: A newer version of the box 'awesome-box' is available! You currently
(out) ==> default: have version 'box-version'. The latest is version 'my-new-awesome-box-version'. Run
(out) ==> default: `vagrant box update` to update.
(out)[snip]
vagrant box update
(out) ==> default: Checking for updates to 'awesome-box'
(out) default: Latest installed version: 'box-version'
(out) default: Version constraints:
(out) default: Provider: 'box-provider'
(out) ==> default: Updating 'awesome-box' with provider 'box-provider' from version
(out) ==> default: 'box-version' to 'my-new-awesome-box-version'...
(out) ==> default: Loading metadata for box 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/vagrant/awesome-box/metadata.json
(out) ==> default: Adding box 'awesome-box' ('my-new-awesome-box-version') for provider: 'box-provider'
(out) ==> default: Successfully added box 'awesome-box' ('my-new-awesome-box-version') for: 'box-provider'
Note: You'll need to replace awesome-box, box-version and box-provider with your own uploaded package details.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
Raw Repository Setup
A repository that acts like a container for any type of files. Think DropBox, but with a pinch more awesome.
The following instructions are for Raw or compatible packages only.
Setup
The purpose of raw files depends on the content of the raw file, which Cloudsmith doesn't know, so we can't provide you with an automated setup method (yet), but it might be as simple as downloading the file.
You can download a raw file using the browser, or if you're running Linux
you can use standard tools such as curl
.
Downloading Via Curl
curl -1sLf -O 'https://dl.cloudsmith.io/public/tvheadend/tvheadend/raw/files/your-package.zip'
Note: You'll need to replace your-package.zip with your own equally fantastic file name.
Need Help?
If you couldn't find what you needed in our documentation, then you can always chat to a member of our team instead. It's our mission to be your dedicated off-site team for package management, and we mean it. Come and chat with us, anytime.
What's this page? You can always download packages from Cloudsmith manually, but native package manager setup allows you to simplify and automate downloads. A native package manager has intelligence built-in that allows it to understand concepts like metadata, versioning, duplication, convergence, etc. As such, we will always recommend that you install natively where possible. Learn more in the setup documentation.