Vell is a lightweight repository management tool for RPM repositories. Every operation is done via Vell's HTTP API.
Vell is available pre-packaged from a bintray rpm repository:
[bintraybintray-rkcpi-vell]
name=bintray-rkcpi-vell
baseurl=https://dl.bintray.com/rkcpi/vell
gpgcheck=0
repo_gpgcheck=0
enabled=1
VELL_REPOS_PATH: Base path where all repositories managed by Vell are located, defaults to/var/lib/vell/repositories. Make sure the user under which Vell runs has permission to read and modify this directory.VELL_HTTP_ADDRESS: Address on which Vell listens, e.g.localhostor127.0.0.1, if not given Vell will listen on all interfacesVELL_HTTP_PORT: Port on which Vell listens, default is8080
Vell is managed entirely through its HTTP API. The following endpoints are available:
Fetches a list of all repositories in VELL_REPOS_PATH.
Example request:
$ curl http://localhost:8080/repositoriesResponse with status code 200 OK:
[
{
"name":"foo"
},
{
"name":"bar"
}
]Creates a new repository.
Example request:
$ curl -H "Content-Type: application/json" -d '{"name":"baz"}' http://localhost:8080/repositoriesResponse will have status code 201 CREATED.
Adds a new package to the repository with name name.
Suppose you have a package called myapp-1.5.3-1.x86_64.rpm. Example to
add this to your foo repository:
$ curl -X POST -F file=@path/to/myapp-1.5.3-1.x86_64.rpm http://localhost:8080/repositories/foo/packagesResponse will have status code 201 CREATED.
Lists all packages in the repository with name name.
Example request:
$ curl http://localhost:8080/repositories/baz/packagesResponse with status code 200 OK:
[
{
"name":"myapp-1.5.3-1.x86_64.rpm",
"lastUpdated":"2017-03-07T13:02:58+01:00",
"size":415661
},
...
]Get metadata for the package packagename with version version in
repository name.
Example request:
$ curl http://localhost:8080/repositories/baz/packages/myapp/version/1.5.3-1Response with status code 200 OK:
{
"name":"myapp",
"lastUpdated":"",
"size":0,
"version":"1.5.3-1",
"arch":"x86_64"
}If a package with the specified parameters does not exist, return code will be 404.