# PsiTransfer [](https://github.com/psi-4ward/psitransfer/releases) [](https://david-dm.org/psi-4ward/psitransfer) [](https://github.com/psi-4ward/psitransfer) [](https://hub.docker.com/r/psitrax/psitransfer/) [](https://microbadger.com/images/psitrax/psitransfer) [](https://hub.docker.com/r/psitrax/psitransfer/) [](https://hub.docker.com/r/psitrax/psitransfer/) Simple open source self-hosted file sharing solution. * Supports many and very big files (Streams ftw) * Resumable up- and downloads ([tus.io](https://tus.io)) * Set an expire-time for your upload bucket * One-time downloads * Requires Node >=7.4 or use `--harmony-async-await` flag * Password protected download list ([AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard))  **Demo**: https://transfer.psi.cx ## Quickstart ### Docker ```bash $ docker run -p 0.0.0.0:3000:3000 -v $PWD/data:/data psitrax/psitransfer # data volume needs UID 1000 $ sudo chown -R 1000 $PWD/data ``` ### Manual, precompiled ```bash # Be sure to have NodeJS >= 7.4 $ node -v v7.4.0 # Download and extract latest release package from # https://github.com/psi-4ward/psitransfer/releases # Install dependencies and start the app $ NODE_ENV=production npm install $ npm start ``` ### Manual, from source ```bash # Compile the frontend apps $ cd app $ npm install $ npm run build # Install dependencies $ cd .. $ npm install $ npm start ``` ### Configuration There are some configs in `config.js` like port and data-dir. You can: * Edit the `config.js` **(not recommend)** * Add a `config.production.js` where `production` is the value from `NODE_ENV` See `config.dev.js` * Define environment Variables like `PSITRANSFER_UPLOAD_DIR` ### Customization `public/upload.html` and `download.html` are kept simple. You can alter these files and add your logo and styles. The following elements are mandatory: `common.js` and respectively `upload.js`, `download.js` as well as `