Skip to content

MidnightTale/hynse-upload

Repository files navigation

Banner

Warning

This project is currently under non-active development. While it's functional, some features may be incomplete or subject to change. Use with caution in production environments.

🚀 Hynse Upload

Hynse Upload is a robust and efficient file upload server built with Next.js and Bun. It offers a seamless file sharing experience with temporary storage and easy management.

Next.js Redis Tailwind CSS Bun

Note

Hynse Upload is designed for temporary file storage. Files are automatically deleted after a set period.

✨ Features

  • 📁 Drag-and-drop file uploads
  • Temporary file storage with Redis on rewrite
  • 🚀 Asynchronous file handling
  • 🧵 Multithreaded server-side processing on rewrite
  • 🛡️ Rate limiting to prevent abuse on rewrite
  • 📊 Comprehensive logging system

🚀 Getting Started

Important

Ensure you have Redis installed and running on your system before starting the application.

  1. Clone the repository
git clone https://github.com/MidnightTale/hynse-upload.git
cd hynse-upload
  1. Install dependencies
bun install
  1. Set up Redis Ensure Redis is installed and running on your system.

  2. Configure the application Edit config.js to set your desired options.

  3. Run the development server

bun --bun run dev
  1. Open the application Visit http://localhost:3000 in your browser.

Caution

Be careful when modifying the config.js file. Incorrect settings may cause the application to malfunction.

🔗 API Routes

Custom Server Routes

Method Route Description
POST /api/upload Upload files
GET /d/:fileId Download a file by ID

Note

The custom server routes are handled directly by Express, bypassing Next.js routing.

💻 CLI Commands

Run administrative commands using:

node cli.js [command]

Warning

Some CLI commands may permanently delete files or clear data. Use with caution.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.