Appearance
Overview
nextExplorer is packaged as a single Docker image that hosts both the API/backend (Express + SQLite + thumbnail/search workers) and the Vite-built frontend. This page walks you through the pieces you need to start it, what configuration matters early, and what happens on first launch.
What you need
- Docker Engine 24+ & Docker Compose v2. The official image targets modern platforms; use the Compose workflow shown below for reproducibility.
- Host folders to expose as volumes. Every
/host/path:/mnt/Labelmount becomes a top-level volume in the UI. Keep the folder readable by the container user (usePUID/PGIDto match the host if needed). - Persistent config storage. Mount a directory to
/configso SQLite,app-config.json, extensions, and the generated session secret survive upgrades. Back this directory up before major changes. - Optional cache storage. Thumbnails, search indexes, and temporary files go into
/cache; it can be cleared safely when troubleshooting.
Sample Docker Compose (production focused)
yaml
services:
nextexplorer:
image: nxzai/explorer:latest
container_name: nextexplorer
restart: unless-stopped
ports:
- '3000:3000'
environment:
- NODE_ENV=production
- PUBLIC_URL=http://localhost:3000
# Optional: lock sessions to a known secret
# - SESSION_SECRET=please-change-me
# Optional host UID/GID mapping
# - PUID=1000
# - PGID=1000
volumes:
- /srv/nextexplorer/config:/config
- /srv/nextexplorer/cache:/cache
- /srv/data/Projects:/mnt/Projects
- /srv/data/Downloads:/mnt/DownloadsThe image bundles the frontend assets and backend together, so routing, search, thumbnails, OnlyOffice, and OIDC endpoints are all served from
localhost:3000inside the container.
Volume strategy
- Each
/mnt/Labelmount becomes a sidebar volume. Give folders human-friendly labels to avoid confusion, e.g.,/mnt/Projects,/mnt/Media. /config: Stores the SQLite database,app-config.json, and any installed extensions/themes (seebackend/src/config/env.jsfor howCONFIG_DIRcan be overridden). Back this folder up before upgrades./cache: Holds thumbnails, ripgrep indexes, and other ephemeral state; deleting it is safe but will trigger regrowth.- Permission tip: The entrypoint chown’s
/configand/cacheto the container user (default1000:1000). Override withPUID/PGIDfor custom ownership.
First run checklist
- Apply
docker compose up -dfrom the directory with your Compose file. - (Optional) Set
AUTH_ADMIN_EMAIL+AUTH_ADMIN_PASSWORDto auto-create the first local admin on startup and skip the setup wizard. - Visit
http://localhost:3000(or yourPUBLIC_URL) to sign in. - Browse the Volumes sidebar and ensure each host mount is visible and readable.
- (Optional) Toggle OIDC via environment variables if your organization uses an identity provider (see the Integrations section for Keycloak, Authentik, and Authelia guides).
Signing in
- Local accounts: Use the username/password created during setup; additional local users can be added from Settings → Admin.
- OIDC SSO: When
OIDC_ENABLEDand related variables are configured, a “Continue with Single Sign-On” button appears. The backend exposes/login,/callback, and/logoutvia Express OpenID Connect.
Keeping the stack updated
bash
docker compose pull
docker compose up -dPersistent state lives under your /config mount (app.db, app-config.json, extensions) while /cache can be rebuilt. After pulling an image, verify the entrypoint remaps any legacy /cache configs to /config and restart the service.
What’s next
- Explore the Visual Tour to see the UI layout and controls.
- Read the Experience section for workflows (browsing, uploads, search, editor).
- Dive into Installation for reverse proxy tips and networking.
- Visit Configuration to understand every environment variable and Settings section.
- Check Integrations when adding OIDC or ONLYOFFICE.
