A debian repository server with support for signing packages, uploading to S3, and more
Go to file
Tyler 1b7951fb75 Merge branch 'packagecache' into 'master'
Better package handling, replacing old versions of the program automatically

See merge request !1
2017-06-11 20:40:33 -04:00
ci Initial commit 2017-06-11 02:14:29 -04:00
debian Initial commit 2017-06-11 02:14:29 -04:00
samples Initial commit 2017-06-11 02:14:29 -04:00
src/meow.tf/deb-simple Merge branch 'packagecache' into 'master' 2017-06-11 20:40:33 -04:00
.gitignore Move data into src, cached package structure 2017-06-11 03:18:59 -04:00
.travis.yml Initial commit 2017-06-11 02:14:29 -04:00
LICENSE.txt Initial commit 2017-06-11 02:14:29 -04:00
Makefile Initial commit 2017-06-11 02:14:29 -04:00
README.md Initial commit 2017-06-11 02:14:29 -04:00
main.go Move data into src, cached package structure 2017-06-11 03:18:59 -04:00
sample_conf.ini Merge branch 'packagecache' into 'master' 2017-06-11 20:40:33 -04:00

README.md

Build Status Coverage Status

deb-simple (get it? dead simple.. deb simple...)

A lightweight, bare-bones apt repository server.

Purpose

This project came from a need I had to be able to serve up already created deb packages without a lot of fuss. Most of the existing solutions I found were either geared at mirroring existing "official" repos or for providing your packages to the public. My need was just something that I could use internally to install already built deb packages via apt-get. I didn't care about change files, signed packages, etc. Since this was to be used in a CI pipeline it had to support remote uploads and be able to update the package list after each upload.

What it does:

  • Supports multiple versions of packages
  • Supports multi-arch repos (i386, amd64, custom, etc)
  • Supports uploading via HTTP/HTTPS POST requests
  • Supports removing packages via HTTP/HTTPS DELETE requests
  • Does NOT require a changes file
  • Supports uploads from various locations without corrupting the repo

What it doesn't do:

  • Create actual packages
  • Mirror existing repos

Usage:

Install using go get. Fill out the conf.json file with the values you want, it should be pretty self-explanatory, then fire it up!

Once it is running POST a file to the /upload endpoint:

curl -XPOST 'http://localhost:9090/upload?arch=amd64&distro=stable' -F "file=@myapp.deb"

Or delete an existing file:

curl -XDELETE 'http://localhost:9090/delete' -d '{"filename":"myapp.deb","distroName":"stable","arch":"amd64"}'

To use your new repo you will have to add a line like this to your sources.list file:

deb http://my-hostname:listenPort/ stable main

my-hostname should be the actual hostname/IP where you are running deb-simple and listenPort will be whatever you set in the config. By default deb-simple puts everything into the stable distro and main section. If you have enabled SSL you will want to swap http for https.

#License:

MIT so go crazy. Would appreciate PRs for anything cool you add though :)