A lightweight, self-hosted and API-based file upload server supporting YubiKey OTP authentication.
Written in NodeJS and CoffeeScript, persistence layer implemented with LevelDB and page rendering done with Jade.
- Clone the repo.
- Navigate to the cloned directory and run:
npm install
npm run bower
- Edit the configuration file (see the Configuration section).
- Enjoy Dumpster with
npm start
!
If you prefer running Dumpster in a container, a Dockerfile is available to build an image.
An automated build can also be found in the Docker Hub: you can pull it with docker pull nmaggioni/dumpster
.
A simple and not production-ready docker-compose file is available as well, along with a rancher-compose for deploying on Rancher.
Edit the config.json
file in the config
directory to configure Dumpster. Be sure to check the related Wiki page for a thoroughly explanation of all the options!
Dumpster is easy to use, and mainly meant to be called from CLI or API. Refer to the related Wiki page for API parameters and their explanation.
If enabled in the configuration with the enableWebUI
option, a simple graphical web interface will be available on the root path. It will follow the skipAuth
setting, requesting an OTP token only if needed. A drag-and-drop upload widget is available, and uploads are performed via AJAX requests.
A live demo is also available on GitHub pages.
Since version v3.0.0, Dumpster will register and manage deletion dates in a local LevelDB instance (to be found in the database
folder created upon starting the server). That way, if you stop the server and restart it at a later time, it will purge files with older deletion date than the current one and re-schedule future deletions.
The included YubiKey library is a modified version of the one in Adam Baldwin (evilpacket)'s repo.