fileshelter is a free, open source file management & sync project written in C++ and released under GPL-3.0. It has 535 GitHub stars, 45 forks and 24 open issues, and was last pushed 7 months ago. On this registry it ranks #68 of 69 tracked projects in File Management & Sync, with 5 head-to-head comparisons available.

What is fileshelter?

FileShelter is a self-hosted, "one-click" file sharing web application that lets you upload files and get back a download URL, built for individuals and small teams who want to share files over the Internet without depending on a third-party service.

What it is

FileShelter is a web application written in C++ and released under the GPL-3.0 licence. You upload one or more files through the browser and receive a URL you can hand to someone else; that link works until its expiry date, at which point the share is no longer downloadable and the files are actually deleted roughly two hours later, so an in-progress download is not interrupted. The project lives in the self-hosted ecosystem, ships as an installable server component, and is explicitly aimed at modest hardware — the topics list highlights Raspberry Pi and Raspbian, and the README notes the public demo instance runs on a Raspberry Pi with low memory requirements.

The concrete problem it solves is sharing a file with someone without setting up an account-based service, a file-sync client, or a permanent public directory. Instead of handing over permanent access to a folder, you create a bounded share: it has a period of validity from one hour to many years, an almost-unique link based on a UUID, and optional password protection for download and/or upload. Expiry is enforced server-side, so the shared material stops being reachable on its own schedule rather than needing manual cleanup.

Key capabilities

  • Setting a period of validity for a share, ranging from one hour to many years, after which the link stops working and the files are removed.
  • Optional password protection applied to downloading, uploading, or both, on a per-share basis.
  • Creating a zip file on the fly when a share contains multiple files, so recipients get a single archive.
  • Private edit links used to remove a share's files or to check the download counters for that share.
  • Terms Of Service support that can be fully or partially customised to match the operator's own wording.
  • Multiple language support in the web interface.
  • The fileshelter-cmd command line tool to list all shares available for download, create a share from local files, and destroy shares.

Who uses it and how

  • Operators running a small server or a Raspberry Pi under Raspbian as a personal sharing endpoint, since the project advertises low memory requirements and the demo instance itself runs on a Raspberry Pi.
  • People who want temporary delivery with an expiry window — the public demo at https://fileshelter-demo.poupon.dev is capped at a maximum duration of 3 days and a maximum file size of 1 MB, showing the intended short-lived use.
  • Users who need to hand out a password-protected link and later confirm uptake by checking download counters through the private edit link.
  • Administrators who script sharing instead of using the browser: fileshelter-cmd creates a share from local files without copying them into FileShelter's working directory, which means those files must keep existing for as long as the share is live, and they are not deleted when the share expires.

Getting started

Installation is described in INSTALL.md in the repository, and a running instance to try first is available at https://fileshelter-demo.poupon.dev.

How it compares

No list of paid products this project replaces is given, and the README names no comparable tools, so within this registry FileShelter stands alone as its own entry.

When to use it — and when not to

A self-hoster must operate persistent storage for the shares and, if using fileshelter-cmd, must keep the referenced source files present for the share's whole lifetime, because they are neither copied in nor removed on expiry. It is a poor fit for large single files without prior testing, for teams that need accounts, quotas, or ongoing collaboration rather than expiring links, and for anyone unwilling to run and patch a GPL-3.0 C++ service — with 24 open issues open, some rough edges are visible.

project readme (upstream, from github) — read inline

FileShelter

Last Release

FileShelter is a self-hosted software that allows you to easily share files over the Internet. Just upload one or more files and get an URL back!

A demo instance is available, with the following limitations:

  • Maximum duration is set to 3 days
  • Maximum file size is set to 1 MB

Features

  • Period of validity, from one hour to many years
  • Optional password protection (download and/or upload)
  • Practically unique links, using UUID
  • Create a zip file on the fly for shares containing multiple files
  • Private edit links, used to remove the files or to check the download counters
  • Terms Of Service support, fully or partially customizable
  • Multiple language support
  • Low memory requirements: the demo instance runs on a Raspberry Pi
  • Command line tools to list and create shares

Once the expiry date is reached, the share is no longer available for download. The files are actually deleted roughly two hours after the share has expired. This is to make sure to not interrupt a download in progress.

Command line tool

fileshelter-cmd is a command line tool with the following features:

  • list all the shares available for download.
  • create a share using local files. The files are not copied in the Fileshelter's working directory. Therefore the files must still exist while the share is available for download. The files are not deleted once the share has expired.
  • destroy shares.

Installation

See INSTALL.md file.

Contributing

Any feedback is welcome:

  • feel free to participate in discussions if you have questions,
  • report any bug or request for new features in the issue tracker,
  • submit your pull requests based on the develop branch.

Frequently asked questions

Is fileshelter free to use?

fileshelter is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does fileshelter do?

FileShelter is a “one-click” file sharing web application

What is fileshelter written in?

fileshelter is primarily written in C++. Its source is publicly available at https://github.com/epoupon/fileshelter, and it has 535 GitHub stars.