Debify takes a directory full of Debian packages and creates a signed and properly-structured Debian repository out of them.
Run the Debify image, mounting two volumes to special mount points:
-
/.gnpug
: Mount your GPG directory containing the key you want to sign the repository with here. -
/aptly/debs
: Mount a directory containing all your Debian packages here. -
$GPG_PASSPHRASE(_FILE)
: Set these environment variables to the raw string of file containing the GPG passphrase needed for the server's private key. -
$PORT
: Set the port where the packages will be served (defaults to port 80).
A tarball of the resulting Debian repository will be written to /aptly/debs/repo.tar.gz
.
If you specify URI
and KEYSERVER
enviornment variables, the tarball will also contain a go
script for setting up the repository.
Let's say I have a bunch of Debian packages at ~/my-debs
, and I've imported or created a GPG key
for signing everything with. Here's how I might run Debify if I plan on publishing the repo to
http://example.com/apt:
$ docker run -e URI=http://example.com/apt \
-e KEYSERVER=keyserver.ubuntu.com \
-v ~/.gnupg:/.gnupg \
-v ~/my-debs:/aptly/debs \
spotify/debify
As an example, if you publish the contents of the tarball to http://example.com/apt
, users can
consume it like this:
$ curl -sSL http://example.com/apt/go | sudo sh
$ apt-get install <your-package>
Note that this presupposes that you've published the GPG key used to sign the artifacts to keyserver.ubuntu.com.
If you haven't published the key, Debify will not generate a go
script. Your users will manually
need to add your key using apt-key add
and then add your repo to their sources.list
by hand.
Barbaric.
Here are some optional environment variables you can specify when running a Debify container:
-
GPG_PASSPHRASE
: A passphrase to use when running GPG, if you need it. -
GPG_PASSPHRASE_FILE
: A passphrase file to use when running GPG, if you need it (hint: mount this file into the container somewhere and specify the path in the container). -
APTLY_DISTRIBUTION
: Defaults tounstable
. Some projects may choose to use a specific Debian distribution (wheezy, trusty, jessie, etc.), while cross-distribution packages might want to just use the project name (for example, "docker"). -
APTLY_ARCHITECTURES
: List of architectures to consider. Will try to guess if not provided. -
APTLY_COMPONENT
: Defaults tomain
. See the Debian wiki if you're confused about this. -
KEYSERVER
: Defaults tokeyserver.ubuntu.com
. The keyserver where your GPG key has been published. Used for thego
script. -
URI
: The URI where this Debian repo will be published. Used for thego
script.
Debify is a wrapper around Aptly.
Build with docker build .
. Released via an automatic build on the Docker Hub.