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.

[Plugin] Files Viewer

Featured Replies

Browse your Unraid shares and disks from a page under Tools, preview files in place, and manage them without leaving the browser. Deletes land in a per-share recycle bin instead of vanishing.

What it does

Unraid's built-in File Manager is great for moving files around, but it shows "Unsupported Preview" for most file types. Files Viewer started as its read-only companion and grew into a manager of its own: a two-pane page under Tools where you browse on the left, see what is selected on the right, and act on it from the bar above.

It previews the common types in place: images, text and code with syntax highlighting, Markdown, audio and video, and PDF, and it lists the contents of zip and tar archives. Richer formats open too: SQLite databases, Word documents, spreadsheets, CSV as a table, fonts, and e-books. On the writing side it covers the everyday jobs: create, rename, edit, move, copy, upload, download, ownership, permissions, and delete.

Features

Tools Page: A full-page two-pane browser under Tools > Files Viewer, with a folder list on the left and a preview pane on the right

Rooted at /mnt: Browsing starts at /mnt and stays inside it, so every disk, pool, and share is reachable in one place and nothing above /mnt is

Write operations: Create files and folders, rename, move, copy, delete, and change owner or permissions from the top bar

In-place editor: Open text and config files up to 2 MB in the preview pane, change them, and save them back

Upload and download: Send files from your machine to the current folder, cancel midway if you change your mind, and pull any file back out

Background jobs: Long copies, moves, and deletes run in a worker with live progress and a cancel button, so the page never hangs

Recycle bin: Deletes made in Files Viewer move to a per-share bin, with restore and purge in a bin view and a daily auto-empty (30 or 60 days, or never)

Bin off the network: The bin is reachable from this page alone. Samba vetoes the folder on every share and it is root-only on disk, which covers NFS as well

Space analysis: Rank everything inside a folder by the space it actually takes, with progress while it counts and drill-in on the results

Audit log: Every write is appended to /var/log/filesviewer.log with the time, the action, and the paths involved

Image preview: View images inline, fitted or at actual size with drag to pan, up to a configurable size limit

Text and code preview: Read text and code with syntax highlighting, long lines wrapped by default with a toggle, capped so large files stay responsive

Markdown preview: Render Markdown formatted, with a toggle to see the raw source

Audio and video: Play media inline with the browser's own player and byte-range seeking. Formats the browser cannot decode fall back to details

PDF preview: View PDFs inline in the browser's own viewer, with byte-range loading

Archive contents: List what is inside zip and tar archives (including tar.gz, tar.bz2, tar.xz) without extracting anything

Database browser: Open SQLite databases (.db, .db3, .sqlite) read-only, pick a table, and page through the rows 100 at a time

Document and spreadsheet preview: Render Word documents (.docx) as formatted text, and show spreadsheets (.xlsx, .xls, .ods) as a table with a tab per sheet

Table view for CSV: Show CSV and TSV as a table by default, with a toggle back to the raw text

Font preview: View a specimen of a font file (.ttf, .otf, .woff, .woff2) at several sizes

E-book preview: Read .epub books in place with previous and next

Light on the page: The richer previews load their viewer only the first time one is needed, and each has its own size limit

Disk friendly browsing: Listing folders reads directory entries and metadata only, so browsing never wakes a sleeping disk. Opening a file reads its content, which wakes the disk that holds it

Breadcrumb navigation: Click any part of the path to jump back up, with an Up row inside each folder

Folder-aware sorting: Sort by name, size, or modified time, ascending or descending, with folders kept first if you want

Quick filter and keyboard: Type to filter the current folder by name, move with the arrow keys, and open with Enter

Remembers your place: Reopens at the folder you were last browsing, which you can turn off

Theme-aware: Inherits the active Unraid theme (light or dark)

Settings Page: Standalone settings at Settings > Files Viewer with browser-native form submission

Scope and limits

Files Viewer works inside /mnt and nowhere else, reading and writing alike. Every path is resolved and checked on the server before anything happens, and every write is logged.

The recycle bin only catches deletes made in Files Viewer; deletions over SMB or by other tools bypass it, and turning the bin off makes deletes permanent.

Most rich formats are parsed in the browser from the file's own bytes; SQLite is the exception and is opened read-only on the server.

Listing for 7z and rar is not included, since those need extra tools that are not assumed to be present; those files show their details with a download instead. Video that uses a container or codec the browser cannot decode (for example MKV or H.265) also falls back to details.

Header icon Screenshot

header-badge.png

Tool Screenshots

tool1.png

tool2.png

tool3.png

tool4.png

tool5.png

tool6.png

Requirements

Unraid 7.2.0 or later

Installation

Via Community Applications (recommended)

1. Open Community Applications in Unraid

2. Search for Files Viewer

3. Click Install

Manual Installation

1. Go to Plugins in Unraid

2. Click Install Plugin

3. Paste the following URL and click Install:

https://raw.githubusercontent.com/Lazaros-Chalkidis/unraid-filesviewer/main/filesviewer.plg

After installing, open Tools > Files Viewer. Tune the behaviour under Settings > Files Viewer.

Settings > Files Viewer

Browsing

Show hidden files: Include dotfiles and dot-folders in the listing

Folders first: List folders above files regardless of sort order

Remember last folder: Reopen the tool at the folder you were last browsing (on by default)

Sorting

Sort by: Name, Size, or Modified

Direction: Ascending or Descending

Permissions format: Show permissions as octal (750) or symbolic (drwxr-xr-x)

Preview

Render markdown: Show .md files formatted, or off to show the raw source

Text preview limit: How much of a text or code file to load (default 2 MB)

Inline image limit: Images larger than this show their details instead of loading inline (default 50 MB)

Archive listing limit: Maximum number of entries listed inside an archive (default 1000)

Media

Autoplay media: Start audio and video automatically when opened (off by default)

Recycle bin

Recycle bin: Deletes made in Files Viewer move to a per-share recycle bin; off deletes permanently (on by default)

Auto empty: Drop items older than 30 or 60 days, or keep everything until you empty the bin yourself

Settings Screenshot

settings.png

How it works

Files Viewer is a page under Tools backed by a single PHP endpoint. The read actions list a directory and return a file's details; the write actions cover create, rename, save, move, copy, ownership, permissions, upload, delete, and the recycle bin. Every action runs through the same safety gate, and every write is appended to an audit log at /var/log/filesviewer.log.

Every path the plugin is asked to open is resolved with realpath and then checked against /mnt. The resolved path must sit under /mnt or the request is refused. Because realpath collapses .. segments and follows symlinks before the check, this defeats directory traversal and symlinks that point outside /mnt in a single step. Null-byte tricks are rejected up front, and the listing is capped so a huge directory cannot stall the browser.

Listing and the details card only ever read: they list entries and read file metadata with stat, which does not wake a sleeping disk. The detected type comes from a fixed extension map, never from the file content, and responses are sent with X-Content-Type-Options: nosniff. Access is gated by the Unraid session like every other plugin page, with the CSRF token carried on each request.

Images, audio, video, PDF, raw links and downloads are served by a separate streaming endpoint that supports byte ranges, so the browser can seek media and the PDF viewer can load pages on demand, sends the type from the same fixed map with nosniff, and reads the file in chunks so memory stays flat on large files.

Archive contents are listed by a list-only command chosen from the file suffix, with the path passed as a single escaped argument, flags that never extract, and a capped number of entries. SVG is only ever shown inside an image element, which neutralises any script it might contain. Text and code are read up to the preview limit and highlighted in the browser, and Markdown is rendered and then sanitised before it is shown.

The richer formats (documents, spreadsheets, CSV, fonts, and e-books) are parsed by bundled libraries running in the browser from the file's own bytes; the HTML produced from documents and spreadsheets is sanitised before display, and each type has a size limit so a large file is never pulled fully into the browser. SQLite is the one exception: the server opens the database itself, read-only and immutable so no locks are taken, and returns one page of rows at a time.

Writes are plain filesystem calls with guard rails. A delete is a rename into the share's own .RecycleBin folder on the same filesystem, so it is instant at any size and never copies data, and restore renames it back. The bin folder is vetoed in Samba and owned by root, so network clients can neither see nor enter it. Long copies, moves, and deletes run in a detached worker that reports progress and honours cancel, and uploads arrive in chunks into a hidden part file that only takes its real name once the last chunk lands.

Reading a file's content does wake the disk that holds it, so opening a file for preview spins up its disk. Listing and the details card use stat only and never wake a disk, so browsing folders stays disk friendly.

GitHub Repository: https://github.com/Lazaros-Chalkidis/unraid-filesviewer

GitHub Profile: https://github.com/Lazaros-Chalkidis

Bug reports, feature requests and feedback are welcome here or on the GitHub issue tracker.

Edited by Lazaros Chalkidis
Update Screenshot

This is an awesome plugin. I installed it and it works great. No need to spin up docker containers to manage files.

Can you please add favorites feature to quickly jump between folders?

After changing permissions of a folder it didn't show the result without reload. Updating the list after changing permissions could be a small qol improvement.

16 minutes ago, johnnydarkitd said:

No need to spin up docker containers to manage files.

File Manager is built-in so no need for plugins either.

image.png

2 minutes ago, trurl said:

File Manager is built-in so no need for plugins either.

image.png

Yes, but there is no file editing function and double panes. When I want to manage files I usually open CloudCommander container.

  • Author

@johnnydarkitd, thanks, glad it's proving useful on your setup.

You've pretty much described why I built it. The built-in File Manager is fine for moving files around, but the moment you want to edit a config or read something properly it runs out of road, and opening a container just for that always felt like too much. Editing in place without spinning anything up was the whole point.

On your two suggestions: the permissions list not refreshing after a change is a real bug on my side, and it'll be in the next update, the listing updating in place with no reload. Favourites for quick folder jumps is a good idea and fits the tool well, so I'll get it into an upcoming release.

Thanks for taking the time to write this up, it's the kind of feedback that actually shapes where it goes.

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.