A debian repository server with support for signing packages, uploading to S3, and more
Go to file
Tyler b0e3d80022
the build failed Details
Cleanup, fix issue with package being removed after being updated with the same ver
2018-10-14 04:35:50 -04:00
deb Cleanup, fix issue with package being removed after being updated with the same ver 2018-10-14 04:35:50 -04:00
packaging Ignore package uploads in build-package 2017-09-13 23:59:12 -04:00
samples Initial commit 2017-06-11 02:14:29 -04:00
.drone.yml Fix secrets 2018-10-14 04:26:36 -04:00
.gitignore Caching of packages, new config format 2017-06-11 20:41:49 -04:00
LICENSE.txt Initial commit 2017-06-11 02:14:29 -04:00
README.md Initial commit 2017-06-11 02:14:29 -04:00
apt.go Cleanup, fix issue with package being removed after being updated with the same ver 2018-10-14 04:35:50 -04:00
config.go Cleanup, fix issue with package being removed after being updated with the same ver 2018-10-14 04:35:50 -04:00
glide.lock Try a different project structure 2018-10-14 04:17:04 -04:00
glide.yaml Try a different project structure 2018-10-14 04:17:04 -04:00
http.go Cleanup, fix issue with package being removed after being updated with the same ver 2018-10-14 04:35:50 -04:00
packages.go Cleanup, fix issue with package being removed after being updated with the same ver 2018-10-14 04:35:50 -04:00
sample_conf.ini Build proper packages 2017-09-11 00:00:18 -04:00
server.go Cleanup, fix issue with package being removed after being updated with the same ver 2018-10-14 04:35:50 -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 :)