wormhole is a web app for sending small files across devices.
wormhole-demo.mov
All file uploads are ephemeral and deleted after an hour.
frontend
A static file server is used to serve frontend files over HTTP.backend
Download links are generated by presigning it using AWS SDK.encryption
Presigned links to download the uploaded files are generated using S3 managed encryption keys since all objects within an S3 are encrypted at rest.QR codes
QR codes are made with qrcode.js.
Wormhole is currently deployed on render. To run locally, clone this repo and install the dependencies:
git clone https://github.com/dinosoupy/wormhole.git
Configure the following environment variables with your own S3 bucket keys:
AWS_REGION=
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
Build the app and run:
go build
./wormhole
Make sure to create a role with access to the bucket beforehand. I would also recommend setting up a lifecycle configuration on the bucket to make sure partial uploads are auto deleted. Completed uploads are deleted by the main server after an hour by default.
If you want to contribute to this project, feel free to fork it and make changes in the feature
branch before creating a pull request.