DropMe: Self-Hosted File Sharing

A simple, secure, and self-deployable file sharing solution for individuals and teams. Host it on your own infrastructure for complete control of your data.

Why Choose DropMe?

🔒

Self-Hosted Security

Deploy on your own servers for complete control over your data. No third-party services involved.

Simple & Fast

Lightweight application designed for speed and ease of use. Upload and share files in seconds.

🐳

Docker Ready

Deploy with a single Docker command or use docker-compose for a more customized setup.

How DropMe Works

1Generate Signed URLs

DropMe creates secure, time-limited signed URLs for one-time file uploads. These URLs can be shared with users who need to upload files.

2Chunked Uploads

Large files are automatically split into 50MB chunks for reliable transfers, even with unstable connections. This ensures smooth uploads of files of any size.

3Flexible Storage

Store uploaded files either on your local filesystem or connect to Amazon S3 for cloud storage by providing your access keys.

Technical Details

DropMe is a lightweight file sharing system designed for simplicity and security:

Signed URLs

Generate secure, temporary URLs for file uploads that expire after use, enhancing security and preventing unauthorized access.

Chunked Uploads

Files are automatically split into 50MB chunks for reliable transfer, ensuring successful uploads even with unstable connections.

Storage Options

Choose between local filesystem storage for simplicity or Amazon S3 cloud storage for scalability and redundancy.

Docker Ready

Easy deployment using Docker with minimal configuration. Get up and running in minutes with a single command.

Self-Contained

No external dependencies or complex setup required. Everything you need is included in a single, easy-to-deploy package.

Powerful Admin Dashboard

DropMe includes a comprehensive admin dashboard for complete control over your file sharing environment.

Generate Upload Links

Create secure, time-limited upload links with custom expiration periods. Each link is unique and can be shared with users who need to upload files to your system.

Upload Statistics

Track usage with real-time statistics showing total upload links, completed uploads, pending uploads, and expired links. Monitor your system's activity at a glance.

Manage All Uploads

View, download, and delete uploaded files. Filter uploads by status (pending, completed, expired) and manage all aspects of file storage.

The intuitive admin interface makes it easy to manage your entire file sharing environment.

Deployment Guide

DropMe is available as a Docker image for easy deployment. Choose your preferred method:

Quick start with basic configuration:

docker run -d \
  -p 8080:8080 \
  -e ADMIN_USERNAME=admin \
  -e ADMIN_PASSWORD=securepassword \
  -e SIGNING_SECRET=your-secret-key \
  -e JWT_KEY=your-jwt-secret \
  -v dropme_uploads:/app/uploads \
  -v dropme_db:/app/db \
  --name dropme \
  madrent/dropme:latest

For more advanced configuration:

  1. Create a docker-compose.yml file:
  2. version: '3.8'

    services:
      app:
        image: madrent/dropme:latest
        container_name: dropme
        ports:
          - "8080:8080"
        volumes:
          - uploads:/app/uploads
          - db:/app/db
        env_file:
          - .env
        environment:
          - PORT=8080
          - DB_PATH=/app/db/fileupload.db
          - UPLOAD_DIR=/app/uploads
        restart: unless-stopped

    volumes:
      uploads:
        name: dropme_uploads
      db:
        name: dropme_db
  3. Create a .env file in the same directory:
  4. # Admin authentication
    ADMIN_USERNAME=admin
    ADMIN_PASSWORD=securepassword
    SIGNING_SECRET=your-secret-key-change-this
    JWT_KEY=your-jwt-key-change-this

    # Storage configuration
    STORAGE_TYPE=local # or "s3"

    # S3 configuration (if using S3 storage)
    # S3_BUCKET=your-bucket-name
    # S3_REGION=us-east-1
    # S3_ACCESS_KEY=your-access-key
    # S3_SECRET_KEY=your-secret-key
  5. Run with Docker Compose:
  6. docker-compose up -d

Configuration Options

DropMe supports the following environment variables:

  • PORT: Server port (default: 8080)
  • ADMIN_USERNAME: Admin login username
  • ADMIN_PASSWORD: Admin login password
  • SIGNING_SECRET: Secret key for signing URLs
  • JWT_KEY: Secret key for JWT authentication
  • STORAGE_TYPE: Storage backend - "local" or "s3"
  • S3_*: S3 configuration (if using S3 storage)

Access DropMe at http://localhost:8080 after deployment.

Default Admin Access

Access the admin dashboard at http://localhost:8080/admin using the credentials specified in your environment variables:

Default username: admin

Default password: admin (or the value of ADMIN_PASSWORD if set)

Important: Be sure to change the default credentials in production environments!

Ready to take control of your file sharing?

Deploy your own instance of DropMe today and enjoy secure, private file sharing with complete administrative control.

Learn More