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
Use Dropzone File Sharing: π https://dropzonefilesharing.com
- 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_uploadmode 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
- π€ New User Upload Mode (user_upload)
- 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.phpfile
- ποΈ Added a new βShow Download Pageβ toggle (
- 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, multiparttext/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
.envfile - ποΈ Improved Docker support for persistent configuration: the entire
incdirectory (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
incdirectory, 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
- π§ Added support for a separate SMTP FROM address (
- 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
- 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)
- π 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
Dropzone File Sharing V.3.0 is available as a Docker image:
docker pull keepcoolch/dropzonefilesharing:latestStart 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:latestThen open: π http://localhost:8080
Uploads, settings, JSON files etc. are stored inside 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/uploads2 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/incFull 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:latestFull 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.8Run docker compose:
docker compose up -d- Upload all files to your web server
- Open the application in your browser
- Access
/admin.phpto create your admin credentials - Choose your desired configuration values in the Admin Panel
- When
send_emailoradmin_notifyis set to active, make shure to define theSMTP server,SMTP port,SMTP username,SMTP passwordandSMTP From Adressin the Admin Panel
β οΈ Requires PHP 7.4 or higher. No database needed.
The Admin Panel provides a secure management interface for your Dropzone File Sharing installation.
- First-time access via
/admin.phptriggers Admin Setup (username + password creation) - Credentials are stored securely (hashed) in
.admin.jsonand secured with.htaccess - After setup, login via the Admin Login form in
/admin.php - Setup your desired configuration values and when
send_emailoradmin_notifyis set to active, make shure to define theSMTP server,SMTP port,SMTP username,SMTP passwordandSMTP From Adress
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
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_uploadmode without generating a link - Enable/Disable
user_uploadmode so that only authenticated users are allowed to upload files, preventing anonymous uploads. - Enable/Disable
send_emailmode (β οΈ make sure to define theSMTP server,SMTP port,SMTP username,SMTP passwordandSMTP From Adress). - Enable/Disable
admin_notifymode for upload notifications (β οΈ make sure to define theSMTP server,SMTP port,SMTP username,SMTP passwordandSMTP From Adress). - Enable/Disable
show_dpmode 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
pwzipmode 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).
- 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
When uploading a folder, the tool detects it and automatically creates a ZIP file from its contents to simplify sharing.
Kevin Tobler
π www.kevintobler.ch
This project is licensed under the MIT License β feel free to use, modify, and distribute.

