Skip to content

Latest commit

 

History

History
71 lines (43 loc) · 1.83 KB

README.md

File metadata and controls

71 lines (43 loc) · 1.83 KB

exchange-web

EXCHANGE allows users to share files using browser on their devices

Shared files can be protected with a password

Stack: Vue, Socket.IO, Typescript, common-styles

Demo: https://exchange.dyum.in

Backend project is available here: https://github.com/peterdee/exchange-backend

Deploy

Clone repository

git clone https://github.com/peterdee/exchange-web
cd ./exchange-web
nvm use 18
npm ci

Create a certificates directory in the project root

mkdir certificates && cd certificates

Generate certificate files for HTTPS

# Generate key file
openssl genrsa -out key.pem 2048

# Generate CSR
openssl req -new -sha256 -key key.pem -out csr.csr

# Generate certificate
openssl req -x509 -sha256 -days 365 -key key.pem -in csr.csr -out cert.pem

HTTPS is required for the SubtleCrypto interface that works only in secure contexts

More details about certificate generating can be found here

Environment variables

The .env file is required, see .env.example for details

Launch

npm run dev

Local WEB application will be available at https://localhost:3000

Possible improvements

  1. Improve data transfer security for password-proteced files: check grant for every requested file chunk

  2. Allow sharing private files: make it possible to share files that are not publicly visible

Vercel deployment

release branch is automatically deployed to Vercel

License

MIT