Skip to content

KeepCoolCH/DropzoneFileSharing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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.0 – 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.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.0)

Dropzone File Sharing V.3.0 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

No packages published