User Tools

Site Tools


admin:nasman

NAS Manager Administration

The TwilightTV NAS Manager is powered by File Browser. It provides browser-based file access for approved users, including private home folders, shared storage, uploads, downloads, and administrator-managed files.

Public URL: nas.twilighttv.myddns.me

SSH is only available to select users, due to the high security nature of the service. Right now, David (Gumby) is the only one with SSH and direct access to the machine. For now, all major issues go to him.

Warning: File Browser user scopes and filesystem permissions determine what users can access. Always verify the target username, scope, and filesystem path before saving account or permission changes.

Service Overview

Component Value Notes
Public URL nas.twilighttv.myddns.me User-facing File Browser address
Application File Browser Browser-based NAS file manager
Host storage mount /mnt/TwilightStorage Base storage path used by File Browser
User home folders /mnt/TwilightStorage/UserFiles/<username> One private folder per user
User-visible scope /UserFiles/<username> Assumes File Browser's root points to /mnt/TwilightStorage
File Browser database /srv/docker/apps/nasman/database.db/ Persistent database containing accounts and settings
File Browser configuration /srv/docker/apps/nasman/config.json Persistent application configuration
Container/service name nasman Replace with actual Docker, Podman, or systemd service name
Reverse proxy nginx-proxy-manager Handles HTTPS and routes the public URL

Storage Layout

The File Browser storage root is:

/mnt/TwilightStorage

Each user receives a private home folder here:

/mnt/TwilightStorage/UserFiles/<username>

Recommended layout:

/mnt/TwilightStorage/
β”œβ”€β”€ UserFiles/
β”‚   β”œβ”€β”€ alice/
β”‚   β”œβ”€β”€ bob/
β”‚   └── <username>/
β”œβ”€β”€ Shared/
β”‚   β”œβ”€β”€ Uploads/
β”‚   β”œβ”€β”€ Downloads/
β”‚   └── Public/
β”œβ”€β”€ Media/
β”‚   β”œβ”€β”€ Movies/
β”‚   β”œβ”€β”€ TV/
β”‚   └── Music/
└── Admin/
    └── Staging/
Host path Purpose Recommended access
/mnt/TwilightStorage/UserFiles/<username> Private home folder for one user That user and administrators only
/mnt/TwilightStorage/Shared/Uploads Shared uploads or files awaiting review Approved uploaders and administrators
/mnt/TwilightStorage/Shared/Downloads Files made available for users to download Read-only for normal users
/mnt/TwilightStorage/Shared/Public Content available to all NAS users Read-only for normal users
/mnt/TwilightStorage/Media Media library storage for Jellyfin and related services Administrators and service accounts only
/mnt/TwilightStorage/Admin/Staging Admin-only temporary workspace Administrators only
Do not expose File Browser's database, application configuration, container mounts, backup locations, Docker socket, SSH keys, environment files, or host system directories to normal users.

File Browser Root Mapping

This page assumes File Browser sees the host path:

/mnt/TwilightStorage

as its own root directory.

For example, if File Browser is containerized, the host path should be mounted into the container as a fixed location such as /srv:

services:
  filebrowser:
    image: filebrowser/filebrowser:latest
    container_name: <filebrowser-container-name>
    volumes:
      - /mnt/TwilightStorage:/srv
      - <config-path>/filebrowser.db:/database/filebrowser.db
      - <config-path>/settings.json:/.filebrowser.json
    ports:
      - "<internal-port>:80"
    restart: unless-stopped

With this mapping:

Host filesystem path File Browser path
/mnt/TwilightStorage /
/mnt/TwilightStorage/UserFiles /UserFiles
/mnt/TwilightStorage/UserFiles/alice /UserFiles/alice
/mnt/TwilightStorage/Shared/Downloads /Shared/Downloads
/mnt/TwilightStorage/Media /Media
File Browser user scopes must use the File Browser-visible path, not the host path. For example, use /UserFiles/alice as Alice's scopeβ€”not /mnt/TwilightStorage/UserFiles/alice.

User Management

Create a Standard User

Each normal user should receive a private directory and a File Browser account scoped to that directory.

  1. Choose a lowercase username without spaces. Prefer letters, numbers, hyphens, and underscores.
  2. Create the user's home folder:
sudo mkdir -p /mnt/TwilightStorage/UserFiles/<username>
  1. Set ownership and permissions according to the File Browser service account and your local permission model.
  2. Sign in to File Browser as an administrator.
  3. Go to Settings β†’ Users.
  4. Select New User.
  5. Enter the username and a unique temporary password.
  6. Set the user's Scope to:
/UserFiles/<username>
  1. Enable only the permissions the user needs.
  2. Save the account.
  3. Test the new account in a private/incognito browser window.
  4. Send the user the NAS Manager link and NAS Manager Help through a private message.

Recommended permissions for a normal user with a private home folder:

Permission Recommended setting
Browse files and folders Enabled
Download Enabled
Upload/create files and folders Enabled
Rename Enabled
Move/copy inside own scope Enabled
Delete Enabled, if appropriate
Modify/edit files Optional
Create public share links Disabled by default
Administration Disabled

Create a Download-Only User

For users who should only download content:

  1. Create the account normally.
  2. Set its scope to the appropriate File Browser path, for example:
/Shared/Downloads
  1. Enable browsing and downloading.
  2. Disable upload/create, rename, move, copy, edit, delete, and share permissions.
  3. Test the account to ensure it cannot change files.

Create a Shared Upload User

For a user who needs access to the shared upload area:

  1. Set the user's scope to:
/Shared/Uploads
  1. Enable browsing, uploading, and folder creation only as needed.
  2. Do not give access to /Media unless the user is a trusted media administrator.
  3. Review uploads before moving them into a final media library or shared location.

Create an Administrator

  1. Create a unique account for each administrator.
  2. Use a strong password and do not share it.
  3. Keep the number of administrators small.
  4. Confirm at least two trusted admins can restore access if one account is lost.
  5. Record account ownership in the change log without recording passwords.

Scope and Permission Rules

User type File Browser scope Intended access
Standard user /UserFiles/<username> Private read/write access to own files
Download-only user /Shared/Downloads Browse and download only
Shared uploader /Shared/Uploads Controlled uploads and folder creation
Media manager /Admin/Staging or a specifically approved media path Trusted staff only
Administrator / Full File Browser access
  • Never give a normal user the / scope.
  • Never scope a normal user to /UserFiles if home folders are meant to remain private.
  • Use /UserFiles/<username> for every personal account.
  • Keep /Media unavailable to normal users by default.
  • Use scoped accounts rather than one shared account.
  • Test every new or modified account in an incognito/private browser window.
  • File Browser permissions do not override Linux filesystem permissions.

Host Filesystem Permissions

File Browser must have host-level permission to read and write each directory it exposes. A correct File Browser scope can still fail if Linux ownership, modes, ACLs, or SELinux labels are incorrect.

Check the storage mount and user directory:

findmnt /mnt/TwilightStorage
df -h /mnt/TwilightStorage
 
ls -ld /mnt/TwilightStorage
ls -ld /mnt/TwilightStorage/UserFiles
ls -ld /mnt/TwilightStorage/UserFiles/<username>

Check ACLs, if used:

getfacl /mnt/TwilightStorage/UserFiles/<username>

Check SELinux labels, if the host uses SELinux:

ls -ldZ /mnt/TwilightStorage
ls -ldZ /mnt/TwilightStorage/UserFiles/<username>
Do not fix permission problems by making all storage world-writable or by unnecessarily running File Browser as root. Use correct ownership, groups, ACLs, container user IDs, and SELinux labels.

File Browser CLI

The File Browser CLI can manage users from the host or from inside the container. Confirm supported options on your installed version before changing production accounts.

Show help:

filebrowser --help
filebrowser users --help

List users:

filebrowser users ls --database <database-path>

Add a standard user:

filebrowser users add <username> <temporary-password> \
  --scope /UserFiles/<username> \
  --database <database-path>

Update a password:

filebrowser users update <username> \
  --password <new-password> \
  --database <database-path>

Update a user scope:

filebrowser users update <username> \
  --scope /UserFiles/<username> \
  --database <database-path>

Remove a user account:

filebrowser users rm <username> \
  --database <database-path>

Docker example:

docker exec -it <filebrowser-container-name> filebrowser users ls \
  --database /database/filebrowser.db

Podman example:

podman exec -it <filebrowser-container-name> filebrowser users ls \
  --database /database/filebrowser.db
Removing a File Browser user account does not automatically remove that person's files. Archive, transfer, or delete /mnt/TwilightStorage/UserFiles/<username> separately and only after confirming the intended retention action.

Password Resets

Standard Password Reset

  1. Verify the user’s identity through Discord or another approved method.
  2. Sign in as a File Browser administrator.
  3. Open Settings β†’ Users.
  4. Select the user account.
  5. Set a new temporary password.
  6. Save the change.
  7. Send the temporary password privately.
  8. Do not post passwords in Discord channels, wiki pages, tickets, or the change log.

Emergency Administrator Reset

If all File Browser administrator access is lost:

  1. Back up the File Browser database first.
  2. Use the File Browser CLI to reset a known admin password.
  3. Restart File Browser if needed.
  4. Confirm administrator login works.
  5. Remove or secure any emergency account created during recovery.

Storage Maintenance

Check available storage regularly:

df -h /mnt/TwilightStorage
du -sh /mnt/TwilightStorage/*
du -sh /mnt/TwilightStorage/UserFiles/*
du -sh /mnt/TwilightStorage/Shared/*
du -sh /mnt/TwilightStorage/Media/*

Find the largest files:

find /mnt/TwilightStorage -type f -printf '%s %p\n' | sort -nr | head -n 50
Free storage Response
More than 20% free Normal operation
10% to 20% free Review large files, stale uploads, and unnecessary downloads
5% to 10% free Begin cleanup or capacity expansion promptly
Less than 5% free Treat as urgent; uploads and applications may fail
Confirm ownership and purpose before removing files. Do not bulk-delete files based only on size.

Media Upload Workflow

Normal users should request movies and shows through Seerr whenever possible.

For approved manual media uploads:

  1. Upload files to /Admin/Staging or another designated staging location.
  2. Confirm sufficient free space.
  3. Check the file name, file type, duplicate status, and playback.
  4. Move approved media into the correct final library directory under /mnt/TwilightStorage/Media.
  5. Trigger or wait for the Jellyfin library scan.
  6. Verify the media appears correctly in Jellyfin.
  7. Notify the requester only after verification.
Do not allow normal users to write directly to final Jellyfin library folders unless you intentionally accept the risk of duplicates, unwanted metadata, broken naming, and accidental deletion.

Service Operations

Check Status

Docker:

docker ps --filter "name=<filebrowser-container-name>"
docker logs --tail 200 <filebrowser-container-name>

Podman:

podman ps --filter "name=<filebrowser-container-name>"
podman logs --tail 200 <filebrowser-container-name>

Systemd:

systemctl status <filebrowser-service-name>
journalctl -u <filebrowser-service-name> -n 200 --no-pager

Restart File Browser

Docker:

docker restart <filebrowser-container-name>

Podman:

podman restart <filebrowser-container-name>

Systemd:

sudo systemctl restart <filebrowser-service-name>

Post-Restart Checklist

  1. Confirm File Browser is running.
  2. Open nas.twilighttv.myddns.me in a private/incognito window.
  3. Confirm HTTPS is valid.
  4. Confirm administrator login works.
  5. Confirm a normal user sees only their own /UserFiles/<username> directory.
  6. Upload and delete a harmless test file in an approved test directory.
  7. Confirm a normal user cannot see another user's home folder.
  8. Review recent service and reverse-proxy logs.

Reverse Proxy and HTTPS

The File Browser application should be accessible publicly through HTTPS at:

nas.twilighttv.myddns.me

Do not expose File Browser's internal application port directly to the public internet unless there is a specific, documented reason.

Setting Recommended state
Public hostname nas.twilighttv.myddns.me
HTTP Redirect to HTTPS
TLS certificate Valid and automatically renewed
File Browser internal port Available only to the reverse proxy or local network
Public application port Not directly exposed
Upload limit Set to a deliberate value appropriate for expected file sizes
Proxy timeouts Long enough for large uploads

Nginx example:

server {
    server_name nas.twilighttv.myddns.me;
 
    client_max_body_size <expected-upload-limit>;
    proxy_connect_timeout <timeout>;
    proxy_send_timeout <timeout>;
    proxy_read_timeout <timeout>;
    send_timeout <timeout>;
 
    location / {
        proxy_pass http://<filebrowser-host>:<internal-port>;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

If uploads fail at a specific size, check client_max_body_size. If they fail after several minutes, check proxy timeouts, File Browser logs, free disk space, and connection stability.

Backups and Restore

Back up File Browser configuration, its database, and the files it exposes. The File Browser database contains user accounts, password hashes, scopes, permissions, settings, and share information.

Item Backup required? Notes
File Browser database Yes Accounts, permissions, scopes, settings, and share links
File Browser configuration Yes Application configuration and deployment settings
Compose/Quadlet/systemd files Yes Needed to recreate the service
Reverse-proxy configuration Yes Needed to restore public HTTPS access
/mnt/TwilightStorage/UserFiles Yes Private user data
/mnt/TwilightStorage/Shared Yes Important shared files
/mnt/TwilightStorage/Media Recommended May need a separate backup or replication strategy
Secrets and environment files Yes, securely Never publish them in this wiki

Back Up the File Browser Database

Stop File Browser before a direct SQLite database copy when possible:

docker stop <filebrowser-container-name>
 
cp <database-path> <backup-destination>/filebrowser-$(date +%F).db
 
docker start <filebrowser-container-name>

If sqlite3 is installed, use its backup function:

sqlite3 <database-path> ".backup '<backup-destination>/filebrowser-$(date +%F).db'"

Restore Principles

  1. Stop File Browser before restoring its database or application configuration.
  2. Restore the matching configuration and database together.
  3. Restore filesystem ownership, permissions, ACLs, and SELinux labels as needed.
  4. Confirm /mnt/TwilightStorage is properly mounted before starting File Browser.
  5. Test the service locally, then test HTTPS access.
  6. Test with a non-admin user before announcing recovery.

Updates

Before updating File Browser, its container image, plugins, or the host:

  1. Read release notes for breaking changes.
  2. Confirm backups completed successfully.
  3. Record the currently running version or image.
  4. Keep the previous image/version available for rollback.
  5. Update and restart the service.
  6. Test admin login, standard-user login, scopes, file access, uploads, downloads, and HTTPS.
  7. Review logs before declaring the update complete.

Docker Compose example:

docker inspect <filebrowser-container-name> --format '{{.Config.Image}}'
 
docker compose pull
docker compose up -d
 
docker compose ps
docker compose logs --tail 200

Troubleshooting

NAS Manager Does Not Load

  1. Confirm File Browser is running.
  2. Check File Browser logs.
  3. Check reverse-proxy status and logs.
  4. Confirm the proxy can reach the internal File Browser address.
  5. Verify DNS, firewall rules, port forwarding, and TLS certificate status.
  6. Confirm the reverse proxy is configured for nas.twilighttv.myddns.me.

User Can Sign In but Sees the Wrong Folder

  1. Check the user’s File Browser scope.
  2. A normal user's scope should be /UserFiles/<username>.
  3. Confirm the user is not using an administrator account.
  4. Confirm File Browser's root is mapped to /mnt/TwilightStorage.
  5. Confirm that /mnt/TwilightStorage/UserFiles/<username> exists on the host.
  6. Test the account in a private/incognito browser window.

Permission Denied

  1. Review File Browser user permissions.
  2. Check host ownership and modes on the target directory.
  3. Check ACLs with getfacl.
  4. Check SELinux labels when applicable.
  5. Confirm File Browser's container/service user has access to the mounted path.
  6. Review logs for the exact failed operation.

Upload Fails

  1. Check free space with df -h /mnt/TwilightStorage.
  2. Confirm the user can write to their assigned scope.
  3. Check reverse-proxy upload size limits and timeouts.
  4. Review File Browser logs.
  5. Test a small upload and then a larger upload.
  6. Confirm that the storage mount is present and writable.

Files Are Missing

  1. Verify the storage device is mounted:
findmnt /mnt/TwilightStorage
  1. Confirm File Browser has the expected bind mount.
  2. Check whether files were moved, renamed, or deleted.
  3. Check snapshots, recycle-bin behavior, and backups.
  4. Do not write new files into a suspected missing mount path until the mount is verified; otherwise, new files may be written to the server's root filesystem rather than the intended storage device.

Security Checklist

  • Require unique passwords for every user.
  • Do not share File Browser administrator accounts.
  • Use /UserFiles/<username> scopes for personal accounts.
  • Keep normal users out of /Media and /.
  • Use HTTPS only.
  • Do not expose the internal File Browser port directly to the internet.
  • Keep File Browser, the reverse proxy, container runtime, and host OS updated.
  • Disable unused accounts promptly.
  • Review scopes and permissions regularly.
  • Back up the File Browser database and important storage.
  • Test recovery periodically.
  • Keep passwords, tokens, API keys, and private configuration out of this wiki and Discord.

Change Log Template

Date Administrator Change Notes
YYYY-MM-DD <admin> Created, disabled, or modified user <username and reason; never include passwords>
YYYY-MM-DD <admin> Changed scope or permissions <before and after>
YYYY-MM-DD <admin> Updated File Browser <version and test result>
YYYY-MM-DD <admin> Changed storage mount or proxy configuration <details>
YYYY-MM-DD <admin> Backup restore performed <scope and verification result>

Escalation

For service outages or possible security issues, contact the administrator team in The Twilight Zone Discord with:

  • When the issue began
  • Who is affected: one user, one folder, uploads, all users, or the complete service
  • The exact error message and relevant recent logs
  • Any recent storage, File Browser, reverse-proxy, DNS, account, or permission changes
  • Actions already attempted

For normal-user instructions, see NAS Manager Help.

admin/nasman.txt Β· Last modified: by gumby