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.
| 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 |
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.
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.
Each normal user should receive a private directory and a File Browser account scoped to that directory.
sudo mkdir -p /mnt/TwilightStorage/UserFiles/<username>
/UserFiles/<username>
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 |
For users who should only download content:
/Shared/Downloads
For a user who needs access to the shared upload area:
/Shared/Uploads
/Media unless the user is a trusted media administrator.| 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 |
/ scope./UserFiles if home folders are meant to remain private./UserFiles/<username> for every personal account./Media unavailable to normal users by default.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.
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.
If all File Browser administrator access is lost:
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.
Normal users should request movies and shows through Seerr whenever possible.
For approved manual media uploads:
/Admin/Staging or another designated staging location./mnt/TwilightStorage/Media.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.
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
Docker:
docker restart <filebrowser-container-name>
Podman:
podman restart <filebrowser-container-name>
Systemd:
sudo systemctl restart <filebrowser-service-name>
/UserFiles/<username> directory.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.
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 |
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'"
/mnt/TwilightStorage is properly mounted before starting File Browser.Before updating File Browser, its container image, plugins, or the host:
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
nas.twilighttv.myddns.me./UserFiles/<username>./mnt/TwilightStorage./mnt/TwilightStorage/UserFiles/<username> exists on the host.getfacl.df -h /mnt/TwilightStorage.findmnt /mnt/TwilightStorage
/UserFiles/<username> scopes for personal accounts./Media and /.| 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> |
For service outages or possible security issues, contact the administrator team in The Twilight Zone Discord with:
For normal-user instructions, see NAS Manager Help.