Data Server
Serve your data. Your rules.
A self-hosted OME-Zarr server for your lab. Share microscopy data with your team over the browser, without uploading anything to the cloud. One Docker command to run.
Quickstart
Running in one minute.
Point it at your Zarr data, open the admin UI, create a token. Done.
docker run -d \
-p 3333:3333 -p 3334:3334 \
-v /path/to/zarr/data:/data/storage \
-v ~/.findnuclei:/data/config \
-e FN_ADMIN_PASSWORD=changeme \
fn0000/fn-data-server Admin UI on port 3334. Data API on port 3333. Open the admin console, create a token, open the viewer with the URL.
Features
What you get.
One Docker command
Run it on any laptop, workstation, or NAS. No database, no installer.
Stays on your network
Data never leaves your infrastructure. The viewer streams tiles directly from your server.
JWT access control
Scope tokens to specific datasets, departments, or users. Optional TTL, IP, and host restrictions.
S3-compatible API
Drop-in replacement for S3-style access patterns. Works with any OME-Zarr client.
Admin web UI
Browse datasets, generate tokens, and manage permissions through a simple dashboard.
Scales with you
One to fifty-plus concurrent users. Run multiple containers behind a load balancer for more.
Use cases
Who it's for.
Share data with your team
Colleagues open a link in their browser. No VPN into your facility, no clunky file transfers, no "can you re-export that as TIFF?"
Serve data from a shared NAS
Point the server at your existing storage. Your pipeline writes Zarr, the team views it. Same files, same place.
Publish to internal portals
Embed live datasets in your lab wiki or internal data portal with the embeddable viewer.
Host data for a study
Give reviewers and collaborators a time-limited token to explore your dataset. Revoke it when the paper drops.
Security by default
Tokens in. Data out.
By default, the Data Server requires JWT tokens for every request. You create them in the admin UI, scoped to specific datasets, with optional time-to-live, IP, and host restrictions.
When a viewer opens a protected URL without a token, it shows a prompt. The user pastes it in and the data loads. No user accounts to manage, no SSO to wire up.
On fully trusted networks (isolated lab VLANs, for example), you can run in open mode. No tokens, no friction. Your call.
Start sharing data.
Pull the image, run the container, open the admin UI. Takes about a minute.