Source Configuration
What are Sources?
Sources are the directories that FileBrowser Quantum makes available to users. Each source represents a filesystem path that can be browsed, searched, and managed through the web interface.
Getting Started: For basic usage, you only need to define the path and optionally set defaultEnabled set to true to give the source to all new users. Most other configuration options can be left at their defaults.
Source Basics
Unique Paths Required
Each source must have a unique real filesystem path. FileBrowser uses the actual resolved path on the filesystem to identify sources internally, not the name you assign.
Source Names
Automatic naming: If you don’t specify a name, FileBrowser automatically assigns one based on the base folder name.
Custom naming: You can specify a custom display name:
Name Changes Safe: You can change a source’s name at any time. The backend matches sources by their real filesystem path, so existing access rules and shares will continue to work.
Minimal Configuration
The simplest source configuration (same structure as server.sources in the generated reference config.generated.yaml):
This creates a source that:
- Is available to all new users
- Has indexing enabled for advanced features
- Uses all default settings
Reference: config and rules
The generated config lists every supported key. Under config, non-deprecated fields are:
| Field | Purpose |
|---|---|
denyByDefault | Deny access unless an allow rule exists |
private | No sharing for this source |
disabled | Temporarily disable the source in config |
rules | Per-path indexing and visibility rules (see Conditional Rules) |
defaultUserScope | Initial path scope for new users (under path) |
defaultEnabled | Add this source to new users by default |
useLogicalSize | Use logical file sizes instead of disk usage (du-style); empty folders report as 0 bytes |
Example rules entry (field names match the generator):
| |
Deprecated (still accepted for backward compatibility): In rule objects, prefer fileName / folderName. The fields fileNames and folderNames are deprecated names for the same idea. The old conditionals block on source config is deprecated — use rules only. On source config, createUserDir, disableIndexing, indexingIntervalMinutes, and conditionals are deprecated; see sections below.
Indexing Overview
Sources are indexed by default, which enables:
- Search functionality - Fast full-text and filename search
- Folder size calculations - Accurate directory size reporting
- Folder previews - Thumbnail previews for image directories
- Health monitoring - Source statistics and health information
Performance: Indexing uses adaptive scanning intervals based on filesystem complexity. For typical filesystems (under 50,000 items), expect scan times under 30 seconds with minimal memory usage (100-300MB). Larger filesystems may require more resources but benefit from smart interval adjustments that reduce scan frequency.
For detailed indexing information, see Understanding Indexing.
Configuration Options
path (required)
| |
The filesystem path to the directory you want to serve. Can be absolute or relative, but must exist and be readable by FileBrowser.
name
| |
Display name shown in the UI. If not specified, uses the base folder name from the path. Useful for providing user-friendly names like “Company Files” instead of just “documents”.
defaultEnabled
Whether new users automatically get access to this source. Defaults to false. Set to true for shared sources that all users should see.
denyByDefault
Deny access unless an explicit “allow” access rule exists. Defaults to false. Use this for high-security sources where access must be explicitly granted per user or group.
When denyByDefault: true, users need explicit allow rules to access the source.
See Access Control Guide for more information.
private
Designate source as private, which disables sharing. Defaults to false. Use this to prevent users from creating public shares for sensitive data.
useLogicalSize
When true, sizes follow logical file size instead of on-disk allocation (similar intent to du). Empty folders report as 0 bytes. Default is false.
defaultUserScope
Default scope path for new users created automatically via API or CLI. Defaults to "/" (root of source). This restricts where new users can access within the source. Include the leading slash.
Example placing users under a subfolder of the source:
New users are scoped under /shared/users (and receive a per-user directory there when applicable).
createUserDir (deprecated)
Deprecated: createUserDir is deprecated — user directories under defaultUserScope for each username are always created for supported authentication flows. Remove this key from new configs; set only defaultUserScope (for example / or /home) to control where user folders are rooted.
Creates /home/john for user john under the source path and scopes the user there.
disabled
Disable the source without removing it from config. Defaults to false. Useful for temporarily disabling a source for maintenance or testing. Users cannot access disabled sources.
disableIndexing (deprecated)
Deprecated: disableIndexing on source config is deprecated (it does not appear in the generated reference). Prefer conditional rules — for example viewable: true on paths you want in the UI without full indexing, neverWatchPath for stable trees, and global flags with folderPath: "/". If you still set disableIndexing: true in YAML for compatibility, indexing and search for that source are effectively off (same caveats as below).
When indexing is effectively off for a source, these features do not work:
- Search
- Folder size calculations
- Folder preview images
- Source statistics / health
Users may still browse files with reduced functionality.
indexingIntervalMinutes (deprecated)
Deprecated: indexingIntervalMinutes on source config is deprecated. Prefer adaptive scanning and neverWatchPath rules for large, rarely changing trees. The legacy field may still be honored if present.
conditionals (deprecated)
Deprecated: The conditionals wrapper is deprecated — use config.rules only. See Conditional Rules Guide.
Common Configuration Patterns
Single Shared Source
Use case: Simple shared file access
Multi-User with Personal Directories
Use case: Each user gets private space
Departmental Sources
Use case: Multiple departments with access control
Use access rules to control who sees what.
Best Practices
- Start Simple - Begin with minimal configuration and add options as needed
- Use Real Paths - Always use absolute paths for production deployments
- Plan Access Control - Design your access strategy before creating multiple sources
- Monitor Resources - Watch memory/CPU usage after adding sources with large filesystems