Binder is a project for the storage/retrieval of files. As the name bindir
implies, its main use in my concern is the storage of binaries. I use travis-ci
as my main source of continous integration an I wanted to capture the binaries
that travis compiles for me. Every time I make a git commit it triggers travis
to build the project and travis in turn pushes the statically compiled binaries
to binder. You can see the project in work over
here.
Another use of this project is to auto push ACI/rkt images for public
consumption. Whenever someone does a rkt fetch unixvoid.com/<project>
, rkt
will be redirected to binder for the aci
fetch.
The project is intended ony for public storage as any file that is uploaded is pushed publicly to the nginx-backed ui. When binder starts up for the first time it generates a security key that is needed for uploads. You can only upload/remove files from binder if you posess the security key.
Yet another feature is the private key storage. Private key storage is the storage of keys that are not pubicly accessable, and require the security token to upload/remove/retrieve. I use this mainly for for storing private keys. When I have travis auto-build my rkt containers it needs to GPG sign the image and upload it and the signed public key. To accomplish these things, travis needs my cooresponding GPG private key. It does this by fetching it from travis. This feature along with the public storage will be explained in more detail below.
There are 3 main ways to run binder:
-
From Source: To run binder from source we need to pull the required golang dependencies and then run. We cann accomplish this with the following make commands:
make dependencies
make run
To compile the project statically, we use:
make dependencies
make stat
This will produce a statically compiled binary in thebin/
directory. -
Docker: We have binder pre-packaged as a docker container over on the dockerhub, go grab the latest and run with:
docker run -d -p 8000:8000 unixvoid/binder
. The binder can also be run in a docker-compose stack by executingmake compose
. -
ACI/rkt: WIP
All documentation is in the wiki