Table of Contents
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 |
Admin Quick Links
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/aliceas 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.
- Choose a lowercase username without spaces. Prefer letters, numbers, hyphens, and underscores.
- Create the user's home folder:
sudo mkdir -p /mnt/TwilightStorage/UserFiles/<username>
- Set ownership and permissions according to the File Browser service account and your local permission model.
- Sign in to File Browser as an administrator.
- Go to Settings β Users.
- Select New User.
- Enter the username and a unique temporary password.
- Set the user's Scope to:
/UserFiles/<username>
- Enable only the permissions the user needs.
- Save the account.
- Test the new account in a private/incognito browser window.
- 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:
- Create the account normally.
- Set its scope to the appropriate File Browser path, for example:
/Shared/Downloads
- Enable browsing and downloading.
- Disable upload/create, rename, move, copy, edit, delete, and share permissions.
- 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:
- Set the user's scope to:
/Shared/Uploads
- Enable browsing, uploading, and folder creation only as needed.
- Do not give access to
/Mediaunless the user is a trusted media administrator. - Review uploads before moving them into a final media library or shared location.
Create an Administrator
- Create a unique account for each administrator.
- Use a strong password and do not share it.
- Keep the number of administrators small.
- Confirm at least two trusted admins can restore access if one account is lost.
- 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
/UserFilesif home folders are meant to remain private. - Use
/UserFiles/<username>for every personal account. - Keep
/Mediaunavailable 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
- Verify the userβs identity through Discord or another approved method.
- Sign in as a File Browser administrator.
- Open Settings β Users.
- Select the user account.
- Set a new temporary password.
- Save the change.
- Send the temporary password privately.
- 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:
- Back up the File Browser database first.
- Use the File Browser CLI to reset a known admin password.
- Restart File Browser if needed.
- Confirm administrator login works.
- 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:
- Upload files to
/Admin/Stagingor another designated staging location. - Confirm sufficient free space.
- Check the file name, file type, duplicate status, and playback.
- Move approved media into the correct final library directory under
/mnt/TwilightStorage/Media. - Trigger or wait for the Jellyfin library scan.
- Verify the media appears correctly in Jellyfin.
- 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
- Confirm File Browser is running.
- Open nas.twilighttv.myddns.me in a private/incognito window.
- Confirm HTTPS is valid.
- Confirm administrator login works.
- Confirm a normal user sees only their own
/UserFiles/<username>directory. - Upload and delete a harmless test file in an approved test directory.
- Confirm a normal user cannot see another user's home folder.
- Review recent service and reverse-proxy logs.
Reverse Proxy and HTTPS
The File Browser application should be accessible publicly through HTTPS at:
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
- Stop File Browser before restoring its database or application configuration.
- Restore the matching configuration and database together.
- Restore filesystem ownership, permissions, ACLs, and SELinux labels as needed.
- Confirm
/mnt/TwilightStorageis properly mounted before starting File Browser. - Test the service locally, then test HTTPS access.
- Test with a non-admin user before announcing recovery.
Updates
Before updating File Browser, its container image, plugins, or the host:
- Read release notes for breaking changes.
- Confirm backups completed successfully.
- Record the currently running version or image.
- Keep the previous image/version available for rollback.
- Update and restart the service.
- Test admin login, standard-user login, scopes, file access, uploads, downloads, and HTTPS.
- 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
- Confirm File Browser is running.
- Check File Browser logs.
- Check reverse-proxy status and logs.
- Confirm the proxy can reach the internal File Browser address.
- Verify DNS, firewall rules, port forwarding, and TLS certificate status.
- Confirm the reverse proxy is configured for
nas.twilighttv.myddns.me.
User Can Sign In but Sees the Wrong Folder
- Check the userβs File Browser scope.
- A normal user's scope should be
/UserFiles/<username>. - Confirm the user is not using an administrator account.
- Confirm File Browser's root is mapped to
/mnt/TwilightStorage. - Confirm that
/mnt/TwilightStorage/UserFiles/<username>exists on the host. - Test the account in a private/incognito browser window.
Permission Denied
- Review File Browser user permissions.
- Check host ownership and modes on the target directory.
- Check ACLs with
getfacl. - Check SELinux labels when applicable.
- Confirm File Browser's container/service user has access to the mounted path.
- Review logs for the exact failed operation.
Upload Fails
- Check free space with
df -h /mnt/TwilightStorage. - Confirm the user can write to their assigned scope.
- Check reverse-proxy upload size limits and timeouts.
- Review File Browser logs.
- Test a small upload and then a larger upload.
- Confirm that the storage mount is present and writable.
Files Are Missing
- Verify the storage device is mounted:
findmnt /mnt/TwilightStorage
- Confirm File Browser has the expected bind mount.
- Check whether files were moved, renamed, or deleted.
- Check snapshots, recycle-bin behavior, and backups.
- 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
/Mediaand/. - 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.
