Skip to content

Easy to use file sharing tool to generate temporary download links with or without password protection

Notifications You must be signed in to change notification settings

KeepCoolCH/DropzoneFileSharing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

215 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“€ Dropzone File Sharing

Simple and secure file sharing via drag & drop – with temporary links or via email, password protection, and expiration settings.
Version 3.1 – developed by Kevin Tobler 🌐 www.kevintobler.ch – 🌐 github.com/KeepCoolCH/DropzoneFileSharing – 🌐 hub.docker.com/keepcoolch/dropzonefilesharing


🌍 Official Website

Use Dropzone File Sharing: πŸ”— https://dropzonefilesharing.com


πŸ”„ Changelog

πŸ†• Version 3.x

  • 3.1
    • πŸ–ΌοΈ Favicon added
    • πŸ›‘οΈ Privacy Policy and Disclaimer added
      • Integrated a complete, multilingual Privacy Policy and Disclaimer (DE / EN / FR / IT)
      • Clarifies operator responsibility for self-hosted installations
      • Written in a neutral, instance-agnostic way
    • πŸ“ Legal text harmonization
      • Aligned wording and structure across all languages
      • Unified terminology and headings for consistency
  • 3.0
    • πŸ‘€ New User Upload Mode (user_upload)
      • Introduces an optional multi-user upload workflow. Users can upload files but have no access to admin functions
      • When user_upload mode is enabled, the Admin Panel now displays which user uploaded each file in the upload list
      • Perfect for teams, client areas or project-based uploads
      • Password protection, expiration times, link creation and download continue to work as usual
    • 🧩 Admin Panel Extensions (User Management)
      • Added a complete User Management module (create and delete users, reset user passwords)
      • User accounts are stored in a dedicated JSON file inside the inc/ directory
      • The admin account’s username and password can also be changed
    • 🧩 helpers.php improvements and extensions
      • The default configuration is now automatically completed and merged with any missing keys when config.php is loaded
      • Ensures older installations or partially modified config files always remain compatible with new features
      • Prevents missing-key errors and keeps updates seamless

πŸ†• Version 2.x

  • 2.9
    • πŸ‘οΈ Added a new β€œShow Download Page” toggle (show_dp) in the configuration
    • πŸ”— Lets you choose whether users see a download page (file info and download-button) or a direct file download after clicking the link
    • πŸ› οΈ Fully integrated into the Admin Panel configuration and stored in the main config.php file
  • 2.8
    • πŸ“§ Added support for a separate SMTP FROM address (SMTP_FROM_ADDRESS) so the visible sender can differ from the SMTP login (same domain required)
    • πŸ› οΈ Reworked SMTP sending to be RFC-compliant (adds Date, Message-ID, MIME-Version, multipart text/plain + text/html, UTF-8 encoded subject) for better compatibility with spam filters
    • πŸ–₯️ Admin Panel extended with a new field to configure the SMTP FROM address, which is stored in the .env file
    • πŸ—‚οΈ Improved Docker support for persistent configuration: the entire inc directory (including .env, .admin.json, config.php, translation files) can now be mounted from the host
    • πŸ’Ύ Upload directory can now also be mounted externally via DROPZONE_UPLOAD_DIR, making all uploaded files persistent and safe across container updates or reinstallation
    • πŸ“¦ When mounting an empty inc directory, Dropzone automatically initializes it with the default files from the image, ensuring a clean setup when the container is recreated
    • πŸ”„ This means both all settings (SMTP, admin login, configuration options) and all uploaded files are preserved even if the container is removed and recreated
  • 2.7
    • πŸ“§ Added optional Admin email notifications for new uploads
    • πŸ“ Admin email address configuration directly in the Admin Panel
    • βš™οΈ Added new toggle Admin Notify in configuration settings
  • 2.6
    • πŸ“Š Download tracking added (download counter + last download timestamp)
    • πŸ‘οΈ Display of β€œDownloads” and β€œLast Download” directly in the Admin Panel
  • 2.5
    • βš™οΈ Improved Admin Panel with configuration and email settings
    • 🧭 Clearer navigation and visual refinements in the Admin Panel
    • πŸ“± Fully responsive redesign of the Admin Panel for mobile devices
    • πŸ” Integrated search function for uploads
  • 2.4
    • βš™οΈ Added Admin Panel with password-protected setup
    • πŸ“Ž Manage Uploads (change expiration time, change password)
    • πŸ“₯ Download Uploads directly from the Admin Panel
    • 🧹 Delete Uploads directly from the Admin Panel
  • 2.3
    • πŸ”’ Security improvements
    • πŸ—‘οΈ When the user manually cancels the upload, reloads the page, or closes the browser, temporary files are cleaned up and the entry is removed from the JSON file
  • 2.2
    • πŸ”’ Security improvements
    • πŸ’Ύ Check for sufficient disk space before upload (error message if too little free space)
  • 2.1
    • πŸ“§ The time period for which the file is valid is included in the email to the recipient
  • 2.0
    • πŸ“˜ Completely reworked chunk upload
    • ⚠️ No more errors when uploading very large files
    • 🐞 Other bug fixes

✨ Version 1.x

  • 1.9
    • πŸ“˜ New logo, colors and file list
    • πŸ“± Responsive design for phones
  • 1.8
    • πŸ“§ Option to send files via email or just copy the download link
  • 1.7
    • πŸ“§ Share a unique download link directly to the recipient’s email inbox (multiple recipients supported)

πŸš€ Features

  • πŸ“‚ Drag & drop upload for files or entire folders
  • πŸ” Optional password protection for each upload
  • ⏳ Set link expiration (1h, 3h, 6h, 12h, 1–30 days or keep forever)
  • πŸ” One-time or reusable download links
  • πŸ“Ž Automatically creates a ZIP archive for folder uploads
  • πŸ—£οΈ Multilingual (German, English, French & Italian)
  • ✨ No database required – pure PHP
  • 🚫 No filesize limit using chunks
  • βœ… Upload with Progress Bar
  • βš™οΈ Integrated Admin Panel with configuration and email settings
  • πŸ” Search uploads with filename, filesize, date or email

πŸ“Έ Screenshot

Screenshot Screenshot


🐳 Docker Installation (Version 3.1)

Dropzone File Sharing V.3.1 is available as a Docker image:

docker pull keepcoolch/dropzonefilesharing:latest

Start the container:

docker run -d \
  --name dropzonefilesharing \
  --restart=unless-stopped \
  -p 8080:80 \
  --dns 1.1.1.1 \
  --dns 8.8.8.8 \
  keepcoolch/dropzonefilesharing:latest

Then open: πŸ‘‰ http://localhost:8080

Uploads, settings, JSON files etc. are stored inside the container.


πŸ“ Optional: Use a custom upload and the inc directory outside the container

You can store all uploads outside the container (persistent on your host system). This is useful for:

  • keeping uploads and configuration when recreating/updating the container
  • mounting external storage

1 Environment variable - Tell Dropzone where uploads should be stored inside the container:

-e DROPZONE_UPLOAD_DIR=/data/uploads

2 Volume mount - Map the directories to a folder on your host (Mac, Linux, NAS):

-v ~/dropzone/uploads:/data/uploads
-v ~/dropzone/inc:/var/www/html/inc

Full docker run example:

docker run -d \
  --name dropzonefilesharing \
  --restart unless-stopped \
  -p 8080:80 \
  --dns 1.1.1.1 \
  --dns 8.8.8.8 \
  -e DROPZONE_UPLOAD_DIR=/data/uploads \
  -v ~/dropzone/uploads:/data/uploads \
  -v ~/dropzone/inc:/var/www/html/inc \
  keepcoolch/dropzonefilesharing:latest

Full docker-compose.yml example:

services:
  dropzonefilesharing:
    image: keepcoolch/dropzonefilesharing:latest
    container_name: dropzonefilesharing
    restart: unless-stopped
    ports:
      - "8080:80"
    environment:
      DROPZONE_UPLOAD_DIR: "/data/uploads"
    volumes:
      - ~/dropzone/uploads:/data/uploads
      - ~/dropzone/inc:/var/www/html/inc
    dns:
      - 1.1.1.1
      - 8.8.8.8

Run docker compose:

docker compose up -d

πŸ”§ Manual Installation (non-Docker)

  1. Upload all files to your web server
  2. Open the application in your browser
  3. Access /admin.php to create your admin credentials
  4. Choose your desired configuration values in the Admin Panel
  5. When send_email or admin_notify is set to active, make shure to define the SMTP server, SMTP port, SMTP username, SMTP password and SMTP From Adress in the Admin Panel

⚠️ Requires PHP 7.4 or higher. No database needed.


🧭 Admin Panel

The Admin Panel provides a secure management interface for your Dropzone File Sharing installation.

πŸ” Login & Setup Admin Panel

  • First-time access via /admin.php triggers Admin Setup (username + password creation)
  • Credentials are stored securely (hashed) in .admin.json and secured with .htaccess
  • After setup, login via the Admin Login form in /admin.php
  • Setup your desired configuration values and when send_email or admin_notify is set to active, make shure to define the SMTP server, SMTP port, SMTP username, SMTP password and SMTP From Adress

🌍 Language Support

Default language is German ?lang=de. Use ?lang=en to switch to English, ?lang=fr to switch to French, ?lang=it to switch to Italian or click on the flag:

https://example.com/index.php?lang=de
https://example.com/index.php?lang=en
https://example.com/index.php?lang=fr
https://example.com/index.php?lang=it

βš™οΈ Configuration

You can configure the following options in the Admin Panel:

  • Choose default language (e.g. 'de', 'en', 'fr' or 'it')
  • Set the timezone according to your preference
  • Control link expiration options
  • Enable/Disable only_upload mode without generating a link
  • Enable/Disable user_upload mode so that only authenticated users are allowed to upload files, preventing anonymous uploads.
  • Enable/Disable send_email mode (⚠️ make sure to define the SMTP server, SMTP port, SMTP username, SMTP password and SMTP From Adress).
  • Enable/Disable admin_notify mode for upload notifications (⚠️ make sure to define the SMTP server, SMTP port, SMTP username, SMTP password and SMTP From Adress).
  • Enable/Disable show_dp mode to control whether users see the download page. If deactivated, users are redirected to an instant direct download without viewing the download page.
  • Enable/Disable pwzip mode for password protection of the zip file itself. If deactivated, only the download is password-protected, not the ZIP file (⚠️ ZIP password cannot be modified).

πŸ”’ Security

  • Each upload can be protected with a custom password
  • Option to allow only a single download or multiple downloads
  • Files are automatically deleted after the expiration time
  • Passwords are never stored in plain text

πŸ“ Folder Uploads & ZIP

When uploading a folder, the tool detects it and automatically creates a ZIP file from its contents to simplify sharing.


πŸ§‘β€πŸ’» Developer

Kevin Tobler
🌐 www.kevintobler.ch


πŸ“œ License

This project is licensed under the MIT License – feel free to use, modify, and distribute.

About

Easy to use file sharing tool to generate temporary download links with or without password protection

Topics

Resources

Stars

Watchers

Forks

Packages