Skip to content

Latest commit

 

History

History
42 lines (32 loc) · 2.21 KB

README.md

File metadata and controls

42 lines (32 loc) · 2.21 KB

OneUpload

A easy and secure way to receive files from customers, friends, and pretty much everyone!

Built on top of the Xata database platform (https://xata.io)

Getting Started

To get started, create a new Xata database and import the schema (schema.json). Afterward, create a GitHub OAuth2 application. Then fill out the environment variables and enjoy uploading!

Developing

Once installed dependencies with npm install (or pnpm install or yarn), set the proper environment variables listed below and start a development server with npm run dev

Environment Variables

Name Description
XATA_BRANCH The name of the database branch in Xata
XATA_API_KEY Your Xata API key
GITHUB_ID The id of your GitHub OAuth2 app
GITHUB_SECRET The secret of your GitHub OAuth2 app
AUTH_SECRET The authentication secret used by Auth.js
EMAIL The email to be authorized to be used with the admin panel

TODO

  • Add client side file size validation on the form so that the user doesn't have to upload the file to see it's above the limit
  • Support multiple users
  • Extensive input validation on the admin panel side to ensure things like max file size cannot be zero
  • Make the admin panel look a little nicer (especially the number input)

Building

To create a production version of OneUpload use npm run build

You can preview the production build with npm run preview.

To deploy OneUpload, you may need to install an adapter for your target environment.

Credits

  • Xata - An amazing and generous database platform with lots to offer
  • Flowbite - An awesome UI library that rapidly accelerated the development of OneUploads' UI
  • Auth.js - An open source authentication library and OAuth2 client
  • Svelte - The foundation for this entire project and an excellent fullstack web framework