Jarek Krochmalski 783cf7f066 fixed container path
2025-01-25 06:47:07 +01:00
2025-01-22 13:23:59 -06:00
2025-01-22 13:10:59 -06:00
2025-01-24 11:46:15 -06:00
2025-01-22 12:36:38 -06:00
2025-01-22 14:00:46 -06:00
2025-01-22 13:10:59 -06:00
2025-01-22 14:00:46 -06:00
2025-01-22 14:00:46 -06:00
2025-01-22 12:36:38 -06:00
2025-01-25 06:47:07 +01:00
2025-01-24 11:44:15 -06:00

Dumb Drop

A stupid simple file upload application that provides a clean, modern interface for dragging and dropping files. Built with Node.js and vanilla JavaScript.

image

No auth (unless you want it now!), 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
  • Dark Mode toggle
  • Configurable file size limits
  • Drag and Drop Directory Support (Maintains file structure in upload)
  • Optional PIN protection

Environment Variables

Variable Description Default Required
PORT Server port 3000 No
MAX_FILE_SIZE Maximum file size in MB 1024 No
DUMBDROP_PIN 4-digit PIN for protection None No

Future Features

  • Camera Upload for Mobile
  • Enhanced Progress Features (upload speed display, time remaining estimation)

Quick Start

Running Locally

  1. Install dependencies:
npm install
  1. Set environment variables in .env:
PORT=3000                  # Port to run the server on
MAX_FILE_SIZE=1024        # Maximum file size in MB (default: 1024 MB / 1 GB)
DUMBDROP_PIN=1234         # Optional PIN protection (leave empty to disable)
  1. 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:/app/uploads -e DUMBDROP_PIN=1234 abite3/dumbdrop:latest

# For Windows PowerShell:
docker run -p 3000:3000 -v "${PWD}\local_uploads:/app/uploads" -e DUMBDROP_PIN=1234 abite3/dumbdrop:latest

Build Locally

  1. Build the Docker image:
docker build -t dumbdrop .
  1. Run the container:
# For Linux/Mac:
docker run -p 3000:3000 -v $(pwd)/local_uploads:/app/uploads -e DUMBDROP_PIN=1234 dumbdrop

# For Windows PowerShell:
docker run -p 3000:3000 -v "${PWD}\local_uploads:/app/uploads" -e DUMBDROP_PIN=1234 dumbdrop

Usage

  1. Open your browser and navigate to http://localhost:3000 (unless another domain has been setup)
  2. If PIN protection is enabled, enter the 4-digit PIN
  3. Drag and drop files into the upload area or click "Browse Files"
  4. Select one or multiple files
  5. Click "Upload Files"
  6. Files will be saved to:
    • Local development: ./uploads directory
    • Docker/Unraid: The directory you mapped to /app/uploads in the container

Technical Details

  • Backend: Node.js with Express
  • Frontend: Vanilla JavaScript with modern drag-and-drop API
  • File handling: Chunked file uploads with configurable size limits
  • Security: Optional PIN protection for uploads
  • Containerization: Docker with automated builds via GitHub Actions
Description
dumb file dropper
Readme GPL-3.0 1.8 MiB
Languages
JavaScript 58%
HTML 36.6%
CSS 4.5%
Dockerfile 0.9%