# PsiTransfer [](https://github.com/psi-4ward/psitransfer/releases) [](https://david-dm.org/psi-4ward/psitransfer) [](https://snyk.io/test/github/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/) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=RTWDCH74TJN54&item_name=psitransfer) Simple open source self-hosted file sharing solution. It's an alternative to paid services like Dropbox, WeTransfer. * No accounts, no logins * Mobile friendly responsive interface * 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 * Download all files as zip/tar.gz archive * Modal-style file preview * Requires Node >=7.4 or use `--harmony-async-await` flag * Password protected download list ([AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)) * `/admin` Page lists bucket information, [Screenshot](https://raw.githubusercontent.com/psi-4ward/psitransfer/master/docs/PsiTransfer-Admin.png) (_disabled until you set `adminPass` config value_) * Lightweight [Vue](https://vuejs.org) based frontend apps. Gzipped (on by default) less than 65k **See the blog posts about PsiTransfer: https://psi.cx/tags/PsiTransfer/ and checkout the [Documentation](https://github.com/psi-4ward/psitransfer/tree/master/docs)**  **Demo**: https://transfer.psi.cx ## Quickstart ### Docker ```bash $ docker run -p 0.0.0.0:3000:3000 -e PSITRANSFER_ADMIN_PASS=secret -v $PWD/data:/data psitrax/psitransfer # data volume needs UID 1000 $ sudo chown -R 1000 $PWD/data ``` Specify the version by using [image tags](https://hub.docker.com/r/psitrax/psitransfer/tags/) e.g.: * `latest`: corresponds to master branch * `1`: latest stable `1.x.x` * `1.1`: latest stable `1.1.x` * `1.0.0`: exact version ### 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 `