Giter Site home page Giter Site logo

debify's Introduction

Debify

Debify takes a directory full of Debian packages and creates a signed and properly-structured Debian repository out of them.

Usage

Run the Debify image, mounting two volumes to special mount points:

  1. /.gnpug: Mount your GPG directory containing the key you want to sign the repository with here.

  2. /debs: Mount a directory containing all your Debian packages here.

A tarball of the resulting Debian repository will be written to /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.

Example

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:/debs \
             spotify/debify

Serving

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.

Configuration

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 to unstable. 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 to main. See the Debian wiki if you're confused about this.

  • KEYSERVER: Defaults to keyserver.ubuntu.com. The keyserver where your GPG key has been published. Used for the go script.

  • URI: The URI where this Debian repo will be published. Used for the go script.

Under the Covers

Debify is a wrapper around Aptly.

Build & release

Build with docker build .. Released via an automatic build on the Docker Hub.

debify's People

Contributors

rohansingh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

debify's Issues

xz util missing from the container

Running the container as specified results in the following error:

Generating metadata files and linking package files... panic: unable to unxz data.tar.xz from /root/.aptly/pool/23/bf/......exec: "xz": executable file not found in $PATH

the package xz-utils is not installed and the aptly uses it, which produces this error.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.