Files Sharing — Self-Hosted, Open-Source

File sharing application based on unique and temporary links.

License: GPL-3.0. Built with: PHP, Blade, JavaScript, Dockerfile, CSS. Source: https://github.com/axeloz/filesharing.

Features

Installation

docker run -d \ -p 8080:80 \ -v <local_path>:/app/storage/content \ --name filesharing \ -e APP_NAME="FileSharing" \ -e APP_URL="<your_url>" \ -e ASSET_URL="<your_asset_url>" \ -e UPLOAD_MAX_FILESIZE="1G" \ -e APP_TIMEZONE="Europe/Paris" \ -e UPLOAD_PREVENT_DUPLICATES=true \ -e HASH_MAX_FILESIZE="1G" \ -e UPLOAD_MAX_FILES=100 \ -e LIMIT_DOWNLOAD_RATE="100K" \ axeloz/filesharing:latest ``` - use the `-v` option to bind your local storage to the docker instance (persisting data) - adapt the `-p` option to listen to the port you need - you may pass env variables with the `-e` option - you can use a reverse proxy for SSL termination (example: nginx) Simple config for Nginx: ``` server { server_name filesharing.box.webinno.fr; charset utf-8; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Scheme $scheme; proxy_pass http://localhost:8080; } listen [::]:443 ssl http2; listen 443 ssl http2; ssl_certificate [...] ssl_certificate_key [...] } ``` You can also use in docker compose with the following template: ```yaml version: '3' services: app: image: axeloz/filesharing:latest environment: UPLOAD_MAX_FILESIZE: "1G" UPLOAD_MAX_FILES: "100" UPLOAD_LIMIT_IPS: "127.0.0.1" UPLOAD_PREVENT_DUPLICATES: true HASH_MAX_FILESIZE: "1G" LIMIT_DOWNLOAD_RATE: "1M" volumes: - files_v:/app/storage/content ports: - 8080:80 volumes: files_v: driver: local

Why self-host Files Sharing

Self-hosting gives you three things SaaS can’t: data ownership (the files live on disks you control), cost predictability (a one-time setup vs. recurring per-seat fees that grow with your household or team), and longevity (open-source means the app keeps working even if the maintainers move on, since you can pin a working version). The trade-off is that you take on the operational work of running a server, applying updates, and handling backups.

What hardware do you need

Most self-hosted apps run comfortably on modest hardware — a Raspberry Pi 4, a mini PC, a NAS with Docker support, or a small VPS is usually enough for personal or family use. CPU and RAM requirements scale with how many simultaneous users or how much data you push through Files Sharing. Storage requirements depend on the kind of data you keep; check the README for guidance on data retention.

Where to go from here

Last verified: 2026-04-21