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.

Deployment Guide

The hosted layout uses two stable public addresses: dropme.cloud for this product site and app.dropme.cloud for the DropMe app and admin dashboard. Choose a self-hosting method below:

Quick start for the DropMe app and admin dashboard:

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

Use the repository Compose files to run both the product site and the DropMe app:

  1. Copy the environment template and set strong credentials:
  2. cp app/.env.example .env

    # App port inside and outside the local Compose stack
    APP_PORT=8080
    # Product-site port for local Compose
    PRODUCT_PORT=3000

    # Admin authentication
    ADMIN_USERNAME=your-admin-username
    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
  3. Run locally with both services:
  4. docker compose up -d --build
  5. For hosted deployment, run docker compose -f deploy-compose.yml up -d and configure Cloudflare Tunnel:
  6. dropme.cloud    → http://dropme-website:80
    app.dropme.cloud → http://dropme-app:8080

Configuration Options

DropMe supports the following environment variables:

  • APP_PORT: App port for direct development and Docker Compose (default: 8080)
  • PRODUCT_PORT: Product-site host port for local Docker Compose (default: 3000)
  • 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)

Local Compose access: product site at http://localhost:3000, app dashboard at http://localhost:8080/admin.

Default Admin Access

Access the local dashboard at http://localhost:8080/admin using the credentials in your environment file.

Important: Use unique, strong credentials and secrets in every hosted environment.

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.

Open Dashboard