Skip to content

Latest commit

 

History

History
53 lines (40 loc) · 2.09 KB

README.md

File metadata and controls

53 lines (40 loc) · 2.09 KB

Collect

Docker Cloud Build Status Docker Image Size (tag) Built with science

Collect is a simple file transfer tool suitable for environments where structured files are collected from many people (e.g. job applications).

Please note that this project is under active development and might not be stable in its current state!

Features

  • file validation
    • file count
    • file size
    • MIME types
  • automatic scan for viruses using docker-clamav
  • on-server file encryption (see below)
  • simple UI

Setup

Prerequisites

  • Docker
  • Docker Compose or Docker Swarm
  • time
  1. Copy docker-compose.prod.yml to your server and rename it to docker-compose.yml
  2. Copy .env.prod.example to .env next to docker-compose.yml
  3. Fill APP_KEY (32 char random string), APP_URL, DB_PASSWORD (random) and all MAIL_* variables in your .env
  4. Run docker-compose up
  5. Profit

The example docker-compose.prod.yml contains labels for use with Træfik as reverse proxy and TLS terminator. You can safely remove these if you don't need TLS or want to use another reverse proxy.

Security & Encryption

After validation and checking for viruses, all files of a transfer will be encrypted with a new random key. This key is never stored on the server itself making it impossible to decrypt uploaded data in case of a data breach (e.g. due to a misconfigured webserver). However, due to the fact that the server has to check files before encryption and send the key to its recipient, data can be compromised in case the entire server is compromised.

We may add asymmetric encryption in the future, thus making it unnecessary for the server to send keys to recipients.