brainnet-viewer-lan

Docker app from mxia's Repository

Overview

BrainNet Viewer displays brain surfaces, networks, volumetric maps and atlas regions in a browser. This LAN template uses HTTPS and a team access password, with a separate application process and workspace for each signed-in browser session. Prepare a trusted server certificate, its private key and a password file before installation. Save Scene downloads a portable ZIP; session uploads are temporary. Intended for trusted teams on a LAN. CPU rendering works without an allocated GPU; NVIDIA acceleration is optional.

BrainNet Viewer LAN for Unraid

中文安装说明

BrainNet Viewer visualizes brain surfaces, networks, volumetric maps and atlas regions. This template deploys the published mingruixia/brainnet-viewer:2.0.0 image in LAN server mode. It does not rebuild or modify the application.

Each signed-in browser session has a separate process and workspace. Tabs in the same browser profile share a session; use another profile or private window for an independent workspace. The team password is shared, not a named-user account system. Use this service on a trusted LAN.

Before installation

  1. Enable Docker on your Unraid server. Choose a fixed server IP and a free TCP port, normally 1031. Restrict access to your trusted LAN.
  2. Obtain a TLS certificate containing that IP in its Subject Alternative Name, and its matching private key. Client computers must trust its issuing CA. Do not bypass browser certificate warnings.
  3. In a private directory, prepare server.crt, server.key and access_password.txt. The password must contain 16–256 UTF-8 bytes on one line. Generate it locally and share it through a private channel.
  4. Set the files readable by container UID 10001. For a new dedicated directory on the Unraid host, an administrator can use the commands below after placing the three files. Do not run them on a shared or unrelated folder.
bnvSecrets=/mnt/user/appdata/brainnet-viewer-lan/secrets
chown 10001:10001 "$bnvSecrets" "$bnvSecrets/server.crt" "$bnvSecrets/server.key" "$bnvSecrets/access_password.txt"
chmod 700 "$bnvSecrets"
chmod 400 "$bnvSecrets/server.crt" "$bnvSecrets/server.key" "$bnvSecrets/access_password.txt"

Keep the directory out of SMB/NFS shares and public backups. The template mounts it read-only. It does not ask for passwords or private keys in the template form, and it does not support PUID/PGID environment variables.

Install

Until the Community Applications listing has been approved, use the XML in templates/brainnet-viewer-lan.xml as a local Docker template. Copy it to /boot/config/plugins/dockerMan/templates-user/my-brainnet-viewer-lan.xml on your Unraid server, then select it from Docker → Add Container → Template. After approval, search for brainnet-viewer-lan in Apps instead.

Configure:

Field Setting
Network bridge
HTTPS port 1031, or another free host port
Public HTTPS origin For example https://192.168.1.10:1031, with no path
Private server files The directory containing the three prepared files
Rendering backend auto; CPU is used when a GPU is unavailable

The origin must match the browser address, certificate and host port. Container port 1031 stays unchanged. If you use a DNS name instead of the server IP, open that exact HTTPS origin directly and adjust the WebUI shortcut to match it. Do not enable Tailscale integration or insert a TLS-terminating reverse proxy without a separate origin/session deployment assessment.

Select Apply, then open WebUI and sign in with the team password. Graphics initialization for a new session may take up to 90 seconds. The container health check reports gateway readiness, not a completed rendering test.

Capacity and optional GPU

Defaults are four sessions, a 30-minute idle timeout and two scientific-library threads per worker. The container has a shared limit of one CPU, 16 GiB RAM, 512 processes and 2 GiB of temporary storage. Memory limits are ceilings, not reservations. Adjust --cpus, --memory and the /tmp size in Extra Parameters for your hardware and datasets; do not exceed the server's available resources. Reduce maximum sessions on smaller servers. Thread count is not a CPU quota.

No GPU device is requested by default, so the template can start on CPU-only servers. For NVIDIA acceleration, first configure the compatible Unraid NVIDIA driver/container runtime. Then add --gpus all to Extra Parameters and add the environment variable NVIDIA_DRIVER_CAPABILITIES=graphics,utility,compute. Keep the rendering backend auto. The worker checks actual rendering capability; visible hardware alone does not establish hardware rendering. If Docker cannot allocate a GPU, remove --gpus all to restore CPU startup. Application fallback cannot recover a container rejected by Docker before it starts.

Never enable privileged mode or mount the Docker socket for this application.

Save work and update

Add Files uploads client files into the current session. Save Scene downloads a portable ZIP; Export Figure downloads the image and its JSON sidecar separately. Save work before signing out, updating or stopping the container. Temporary uploads are not a persistent data archive.

Open https://SERVER_IP:1031/_bnv/session and choose Sign out and end session for immediate session cleanup. Idle sessions also expire automatically.

The template pins 2.0.0 rather than following latest. Before changing the image tag, save active Scenes and read the new release notes. A restart ends unsaved sessions. Retain the previous image tag for rollback.

Validation and support

This template is being prepared for Community Applications submission. Native Unraid installation, its form rendering and NVIDIA passthrough have not yet been validated. A Docker check on 2026-10-31 passed HTTPS readiness, login-page access, two distinct secure session cookies, the HTTPS health-check override, non-root execution, read-only secret mounts and resource limits. It did not exercise worker rendering or Unraid's template installer and is not a claim of Unraid certification. Native ARM64 container graphics validation also remains incomplete.

Template license: GPL-3.0-or-later. Application resources retain their own notices.

Requirements

Read the installation guide before starting. Requires a trusted TLS certificate, a private key, a password file readable by UID 10001, and an explicit HTTPS server origin. Unraid hardware validation is pending; Docker runtime checks are documented separately.

Download Statistics

257
Total Downloads

Related apps

Details

Repository
mingruixia/brainnet-viewer:2.0.0
Last Updated2026-10-31
First Seen2026-10-31

Runtime arguments

Web UI
https://[IP]:[PORT:1031]/index.html
Network
bridge
Shell
sh
Privileged
false
Extra Params
--entrypoint=python --init --read-only --tmpfs=/tmp:size=2g,mode=1777 --memory=16g --cpus=1 --pids-limit 512 --cap-drop=ALL --security-opt=no-new-privileges:true --stop-timeout=30 '--health-cmd=python -c '"'"'import os,ssl,urllib.request,urllib.parse; req=urllib.request.Request("https://127.0.0.1:1031/_bnv/health",headers={"Host":urllib.parse.urlsplit(os.environ["BNV_SERVER_ORIGIN"]).netloc}); urllib.request.urlopen(req,context=ssl._create_unverified_context(),timeout=3).close()'"'"'' --health-interval=30s --health-timeout=5s --health-start-period=15s --health-retries=3

Template configuration

HTTPS portPorttcp

Host HTTPS port. Match this port in Public HTTPS origin.

Target
1031
Default
1031
Value
1031
Public HTTPS originVariable

Required: https://YOUR_UNRAID_IP:1031, without a path. Must match the certificate and browser address.

Target
BNV_SERVER_ORIGIN
Private server filesPathro

Prepare server.crt, server.key and access_password.txt first. Mount read-only; files must be readable by UID 10001. Do not expose this directory through SMB/NFS.

Target
/run/bnv-secrets
Default
/mnt/user/appdata/brainnet-viewer-lan/secrets
Value
/mnt/user/appdata/brainnet-viewer-lan/secrets
Rendering backendVariable

auto chooses an accessible GPU when a rendering probe succeeds, otherwise CPU. cpu forces CPU; gpu requires GPU. Device allocation is configured separately.

Target
BNV_RENDER_BACKEND
Default
auto
Value
auto
Maximum sessionsVariable

Maximum signed-in sessions (1-32). All share the container CPU/memory limits.

Target
BNV_MAX_SESSIONS
Default
4
Value
4
Idle timeout (seconds)Variable

Idle session lifetime (30-86400 seconds). Save Scene before expiry.

Target
BNV_IDLE_SECONDS
Default
1800
Value
1800
Worker threadsVariable

Scientific-library threads per worker (1-64); not a per-worker CPU quota.

Target
BNV_WORKER_THREADS
Default
2
Value
2