mirror of
https://github.com/DumbWareio/DumbDrop.git
synced 2025-10-23 07:41:58 +00:00
45e8b43226e503a85871242db78575a988c8f07c
Dumb Drop
A stupidly simple file upload application that provides a clean, modern interface for dragging and dropping files. Built with Node.js and vanilla JavaScript.
No auth, no storage, no nothing. Just a simple file uploader to drop dumb files into a dumb folder.
Features
- Drag and drop file uploads
- Multiple file selection
- Clean, responsive UI
- File size display
- Docker support
- Configurable upload directory
Future Features
- Camera Upload for Mobile
- Dark Mode toggle
- Enhanced Progress Features (upload speed display, time remaining estimation)
- Drag and Drop Directory Support (Maintain file structure in upload)
Quick Start
Running Locally
- Install dependencies:
npm install
- Create an uploads directory and set environment variables in
.env
:
PORT=3000 # Port to run the server on
- Start the server:
npm start
Running with Docker
Pull from Docker Hub
# Pull the image
docker pull abite3/dumbdrop:latest
# Run the container
# For Linux/Mac:
docker run -p 3000:3000 -v $(pwd)/local_uploads:/uploads abite3/dumbdrop:latest
# For Windows PowerShell:
docker run -p 3000:3000 -v "${PWD}\local_uploads:/uploads" abite3/dumbdrop:latest
Build Locally
- Build the Docker image:
docker build -t dumbdrop .
- Run the container:
# For Linux/Mac:
docker run -p 3000:3000 -v $(pwd)/local_uploads:/uploads dumbdrop
# For Windows PowerShell:
docker run -p 3000:3000 -v "${PWD}\local_uploads:/uploads" dumbdrop
Running on Unraid
- Add the container through Community Applications or use this template URL:
https://raw.githubusercontent.com/abiteman/DumbDrop/main/dumbdrop.xml
- Configure:
- Set your desired host port (default: 3000)
- Choose your upload directory path (where files will be stored on your Unraid system)
Environment Variables
Variable | Description | Default |
---|---|---|
PORT | Server port | 3000 |
Usage
- Open your browser and navigate to
http://localhost:3000
- Drag and drop files into the upload area or click "Browse Files"
- Select one or multiple files
- Click "Upload Files"
- Files will be saved to the configured upload directory
Technical Details
- Backend: Node.js with Express
- Frontend: Vanilla JavaScript with modern drag-and-drop API
- File handling: Multer middleware (1GB file size limit)
- Containerization: Docker with automated builds via GitHub Actions
Languages
JavaScript
58%
HTML
36.6%
CSS
4.5%
Dockerfile
0.9%