Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Looking for a Secure, One-Time File Sharing Workflow on Unraid

Featured Replies

I’m trying to solve a fairly specific file-sharing need on my Unraid server, and I haven’t found a container that checks all the boxes. I figured I’d put this out to the community in case someone has already been down this road or knows of something I’m missing.

Here’s the scenario:

• I need to upload a file or a folder and generate a secure link for a specific person or persons.

Something in the spirit of Dropbox or OneDrive—clean, simple, and focused on sharing, not full-blown cloud storage.

• The link should only work for the email address I send it to.

Not a shared password, not a public link. Actual identity-based access. The recipient should authenticate with their email before they can grab the file.

• Once the file is downloaded, it should be gone.

One-time retrieval, no leftovers sitting around. Ideally with a time-based expiry as a backup.

• I need proper logging.

Who accessed it, when they did it, and what they pulled. Straightforward audit trail.

• It must run behind my Cloudflare Tunnel.

Everything I expose runs through Cloudflare Zero Trust. I don’t open ports, and I want this to play nicely with that setup. I want to use my domain (i.e. files.mydomain.com)


What I’ve already looked at:

  • FileGator is close but doesn’t handle email-locked shares or one-and-done downloads.

  • Nextcloud and Seafile feel like overkill for this and still don’t solve the identity-based link problem cleanly.

  • copyparty gets part of the way there but still misses the per-email access requirement.

Has anyone found a Docker container or workflow on Unraid that matches this pattern?

Secure link → identity-verified access → one-time download → automatic deletion → proper logging → works behind Cloudflare.

Appreciate any guidance, examples, or even “don’t bother, here’s a better way” responses.

Solved by Nexus

  • Author

NO One has any suggestions?

WOW. Ok then. Sorry to bother you all .

  • Community Expert

Have a look at the SEND feature of the Bitwarden password manager.

Bitwarden
No image preview

About Send | Bitwarden

Bitwarden Send enables users to transmit encrypted plaintext and file attachments to anybody securely.

You can also require a password entry by the receiver to further secure the transmission. I believe that it is a feature that is the premium package. (Only $10 per year for personal use.)

  • Author

Thanks. I will look at this.

  • Author
  • Solution

Update: Seems to work great and hit 70% of my needs. I am surprised that there is not a dedicated file sharing container that can support these features.

Edited by Nexus

  • 1 month later...
On 11/28/2025 at 6:26 PM, Nexus said:

Update: Seems to work great and hit 70% of my needs. I am surprised that there is not a dedicated file sharing container that can support these features.

I built one! https://github.com/rlittlefield/ryansend
Until I get it approved for listing in the community apps, it requires manually adding the ryansend.xml to the user templates in /boot, or manually running a docker command.

It generates a temporary url with an embedded token, that allows downloading a shared file. I build a very simple file browser. No javascript required, and its a pretty small image. Can handle really big 80gb+ files easily.

It does not have only-once downloads, but the download link is only good for one hour by default, and I don't keep a log of who the links were made for. These are great feature ideas though and I can see about adding them in a future version. Pretty easy to add a note. These are stateless URLs, so there is no current table of outstanding downloads or anything, so I'll have to think about how to implement it.


I don't think I'm likely to add the extra email verification though.

  • Author

Holy $h17 you did! Thanks - I will take a look at this.

I just implemented single downloads and notes and pushed a new version out.

The single download still doesn't use long term persistence to maintain my goal of not having a database or something. So the way it works is that all downloads have a default expiration of 1 hour, and the app will remember the ids of the generated tokens for up to 24 hours. This shouldn't use much memory unless you are doing a very large number of shares.

I also added the notes feature. Before you press the "share" or "single use" buttons, you can enter a note in the field to the right. Creating a download link or using it will now log both the unique id, and if present, the note. I recommend keeping the notes short because they get embedded into the token. Great for something like a friend's name or a customer id. If you don't want to increase the token size, you can just record the randomly generated id from the docker app logs and save that with your longer form notes in a different app. I don't have it showing the generated id on the page that shows the download url yet.

Oh, and probably worth noting that if the short term memory of the single download enforcement is entirely ephemeral. But, it should work as long as the container doesn't crash or get restarted, and as long as you don't modify something to make to tokens last longer than an hour.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.