Skip to content

Releases

v0.4.7

Choose a tag to compare

@ericleung001 ericleung001 released this 11 Nov 08:47

Fixed

  • Unique registration email — open registration (with or without admin approval) rejects an email that is already used by an active, pending, or disabled account. The same check applies when an administrator creates or edits a user. After a pending account is rejected and deleted, that email can be used again. Blank emails on admin-created users remain allowed on more than one account.
  • Pending sign-up message — when registration requires admin approval, the sign-up page now shows “Your account is waiting for admin approval” after a successful request. The confirmation previously sat inside the form and disappeared when the form was hidden.

v0.4.6

Choose a tag to compare

@ericleung001 ericleung001 released this 11 Nov 08:38

Fixed

  • Users table Actions — the Actions column is wide enough to keep Edit, Approve, Reject, and Del on one row, instead of wrapping when a pending user has extra buttons.

v0.4.5

Choose a tag to compare

@ericleung001 ericleung001 released this 11 Nov 08:16

Fixed

  • Public share password field — opening a public share link that has no password no longer shows the password unlock form. A CSS rule on .panel form was overriding the HTML hidden attribute.

Added

  • README screenshots — the GitHub README now includes current login and file-browser screenshots.
  • TrueNAS Apps listing in the README — the GitHub README now documents the official TrueNAS Apps Market Community listing and how to install Filehub from the TrueNAS Apps UI.

Changed

  • Published image tag examples — README pull and compose examples now use 0.4.5.

v0.4.4

Choose a tag to compare

@ericleung001 ericleung001 released this 10 Nov 08:29

Fixed

  • Mobile Settings spacing — on narrow screens the Settings section tabs no longer stretch to fill the viewport, which had left large empty gaps above and below the tab row.

v0.4.3

Choose a tag to compare

@ericleung001 ericleung001 released this 10 Nov 07:52

Added

  • Trusted-proxy client IPs for login, password-reset, and share-link unlock rate limits (TRUSTED_PROXIES; loopback is always trusted). Spoofed forwarded headers from untrusted peers are ignored.
  • Share-link unlock rate limit (same per-IP limiter as login, default 10/minute; HTTP 429 when exceeded).
  • Settings → Active sessions: list and revoke your sessions, or revoke all other sessions. Session tokens are never returned to the client.
  • Settings → Audit log (admins): sign-in success and failure (no passwords), public link create/revoke, shared-folder grant changes, and password-reset requests (no tokens).
  • Per-account lockout after 10 failed logins for a username (15-minute window by default; persisted in the database; further attempts do not extend the window).

Changed

  • Scriptable types (HTML, SVG, XML, JavaScript, and similar) are served as attachments with application/octet-stream. Images, video, and PDF can still be previewed inline. Content-Disposition filenames use RFC 5987 encoding.
  • Password-reset URLs use PUBLIC_BASE_URL when set, otherwise Host (never X-Forwarded-Host). X-Forwarded-Proto is honored only from a trusted proxy. Public HTTPS deployments must set PUBLIC_BASE_URL and SECURE_COOKIES=true. Set HSTS on the reverse proxy.
  • TOTP secrets are encrypted at rest with a key derived from SESSION_SECRET. Existing plaintext secrets are migrated automatically.
  • Document security headers: Content-Security-Policy (script-src/style-src 'self'; no unsafe-inline), Permissions-Policy, and Cross-Origin-Opener-Policy. Same-origin framing remains allowed for raw/thumbnail previews.

v0.4.2

Choose a tag to compare

@ericleung001 ericleung001 released this 10 Nov 07:04

Added

  • Recycle bin count badge: when the recycle bin has items, a compact count appears to the right of the Recycle bin label. Counts above 99 display as 99+. The badge is hidden when the bin is empty.
  • Unraid Community Apps template now includes current login and file-browser screenshots.

v0.4.1

Choose a tag to compare

@ericleung001 ericleung001 released this 10 Nov 05:52

Fixed

  • Recycle bin actions: Restore and Empty recycle bin only appear inside the recycle bin. Copy and Share link are hidden there, and remain available in normal folders.

Changed

  • Unraid Community Apps template category is now Tools › Utilities and Productivity.

v0.4.0

Choose a tag to compare

@ericleung001 ericleung001 released this 10 Nov 05:41

Filehub v0.4.0 is a feature release.

Highlights

  • Container images for linux/amd64 and linux/arm64 (GHCR; Docker Hub when secrets are set). Tags omit the v prefix (0.4.0).
  • Quota counts the user’s home plus files they wrote into shared folders. Legacy share files with no recorded writer stay unbilled. Recycle-bin items still count until purged.
  • Hardware thumbnail selection: THUMB_HWACCEL=auto|off|vaapi|nvdec (legacy THUMB_VAAPI=true means auto). Software fallback is unchanged.
  • Docker PUID/PGID (and optional UMASK); defaults remain 1000:1000.
  • Open registration requires admin approval by default. Pending users cannot sign in. Rejecting a pending account deletes it.
  • Filename search, recycle bin, and folder zip download in the file browser (English UI).

See CHANGELOG.md for the full list.

Install

Download the binary for your OS, make it executable, and run it (Linux example):

chmod +x nas-filehub-linux-amd64
./nas-filehub-linux-amd64

Docker: ghcr.io/ericleung001/nas-filehub:0.4.0 (and ericleung001/nas-filehub:0.4.0 on Docker Hub when the publish workflow has Hub credentials).

Filehub v0.3.22

Choose a tag to compare

@ericleung001 ericleung001 released this 10 Nov 03:01

Filehub v0.3.22

Catch-up release since v0.3.8. This is the current Latest and includes everything from v0.3.9 through v0.3.22.

Highlights

  • Login — the page tagline is English only: “Multi-user file manager”.
  • Settings → System — live CPU, RAM, user-storage totals, and DATA_ROOT disk usage (refreshes while the page is open). Auto-detects GPU / hardware-decode type (Intel VAAPI/QSV, AMD VAAPI, NVIDIA NVDEC, or none) and whether the current THUMB_VAAPI thumbnail path can use it.
  • Storage quota — optional setting to apply one quota to all users (existing and new). The form lives on its own Settings → Storage quota page. Quota still counts only each user’s home.
  • Unraid Community Apps template plus a GHCR image workflow (ghcr.io/ericleung001/nas-filehub, linux/amd64), built on main, v* tags, and manual dispatch.
  • Move and Copy — choose the destination with a folder picker (including writable shared folders). The dialog blocks moving or copying a folder into itself or a subfolder.
  • Shared folder grants — Grant uses a user dropdown and Read/Write, plus a separate Allow delete flag. New grants default Allow delete off; existing write grants keep delete.
  • Link shares — multi-select delete; Revoke hard-deletes the row. Share-link success dialog and mobile table layout fixes.
  • App icon and Settings → About (description, Apache-2.0, GitHub, Buy Me a Coffee).
  • Admin sessions — configurable session lifetime and optional Stay signed in on the login page.
  • Admin settings are split into Sessions, Registration, Security, Email, Storage quota, and System.
  • Mobile file toolbar and settings nav fixes.
  • Windows builds compile again (DATA_ROOT disk stats use GetDiskFreeSpaceEx on Windows).

See CHANGELOG.md for the full notes for each version.

Install (Docker)

git clone https://github.com/ericleung001/nas-filehub.git
cd nas-filehub && git checkout v0.3.22
mkdir -p data/files data/db
docker compose up -d --build
cat ./data/admin-credentials.txt   # username + generated password

Or pull the published image (linux/amd64) once the tag workflow has finished:

docker pull ghcr.io/ericleung001/nas-filehub:v0.3.22

Open http://127.0.0.1:8088 → sign in as admin → Settings → Change password. Compose binds 127.0.0.1:8088 only — put a reverse proxy in front for production.

Install (binary)

Download an asset below (or use ./scripts/gen-env.sh from a clone), then:

chmod +x nas-filehub-linux-amd64
# set ADMIN_PASSWORD yourself, or run ./scripts/gen-env.sh from the repo
export DATA_ROOT=./data/files DB_PATH=./data/filehub.db THUMB_CACHE_DIR=./data/thumbs
export ADMIN_USER=admin ADMIN_PASSWORD='your-strong-password' LISTEN_ADDR=:8080
./nas-filehub-linux-amd64

Sign in as admin with the password you set (or from ./data/admin-credentials.txt if you used ./scripts/gen-env.sh), then change it under Settings → Change password.

Filehub v0.3.8

Choose a tag to compare

@ericleung001 ericleung001 released this 09 Nov 08:22

Filehub v0.3.8

Highlights

  • First-boot auto credentials — On first Docker install, if ADMIN_PASSWORD is unset, the entrypoint writes a random admin password + SESSION_SECRET once to:
    • ./data/admin-credentials.txt (host path with default compose) ← read this
    • ./data/.env
  • Existing credential/env files are never overwritten.
  • Host helper: ./scripts/gen-env.sh creates project-root .env + ./data/admin-credentials.txt once.

Install (Docker)

git clone https://github.com/ericleung001/nas-filehub.git
cd nas-filehub && git checkout v0.3.8
mkdir -p data/files data/db
docker compose up -d --build
cat ./data/admin-credentials.txt   # username + generated password

Open http://127.0.0.1:8088 → sign in as admin → Settings → Change password.

Install (binary)

Download an asset below (or use ./scripts/gen-env.sh from a clone), then:

chmod +x nas-filehub-linux-amd64
# set ADMIN_PASSWORD yourself, or run ./scripts/gen-env.sh from the repo
export DATA_ROOT=./data/files DB_PATH=./data/filehub.db THUMB_CACHE_DIR=./data/thumbs
export ADMIN_USER=admin ADMIN_PASSWORD='your-strong-password' LISTEN_ADDR=:8080
./nas-filehub-linux-amd64

See CHANGELOG.md for full notes.