GithubHelp home page GithubHelp logo

dinosoupy / wormhole Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 7.17 MB

Easily share files between devices through the browser.

Home Page: https://wormhole-b1a8.onrender.com

License: MIT License

Go 47.04% HTML 52.96%

wormhole's Introduction

wormhole

wormhole is a web app for sending small files across devices.

wormhole-demo.mov

Architecture

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.

Deployment

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.

Contributing

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.