Dumpster
Dumpster copied to clipboard
A lightweight, self-hosted and API-based file upload server supporting YubiKey OTP authentication.
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.
Table of contents
-
Installation
- Docker image
- Configuration
-
Usage
- CLI
- WebUI
- Notes & Credits
Installation
- 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
!
Docker image
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.
Configuration
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!
Usage
CLI
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.
WebUI
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.
Note on persistence
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.
Credits
The included YubiKey library is a modified version of the one in Adam Baldwin (evilpacket)'s repo.