e65d518c635b0a7f9025ba5a639871c486f97294
The root cause is that the `FILEBROWSER_DATABASE` environment variable is not overriding the default database path as expected (logs consistently show creation of "database.db" at the default relative location `./database.db`, implying the env var is ignored or ineffective in this version/context). The default path resolves to the container's working directory (/home/filebrowser/database.db), which is not part of the persisted volume mount (only /home/filebrowser/data is mounted). Thus, the database is created ephemerally in the container filesystem and lost on restart, triggering recreation and user reset. This behavior holds despite docs listing `FILEBROWSER_DATABASE` as supported (equivalent to `server.database`); in practice, for v1.1.0-stable, configuration via config.yaml takes precedence and works reliably. Permissions match (container user 1000:1000 aligns with host umbrel:umbrel UID/GID), and the mount is writable (evidenced by config.yaml presence), so no issue there. ### Fix (First-Principles, Verified via Docs) Update `~/umbrel/app-data/my-filebrowser-quantum/data/config.yaml` under the `server:` section (add if missing): ```yaml server: # ... existing entries like port: 80 database: "data/database.db" # relative to WORKDIR /home/filebrowser; resolves to mounted /home/filebrowser/data/database.db ``` - Remove `FILEBROWSER_DATABASE` from docker-compose.yml (redundant/ineffective). - Optionally, change `FILEBROWSER_CONFIG` to relative `"data/config.yaml"` for consistency with upstream examples, though absolute works. - Restart the app via Umbrel dashboard or `~/umbrel/scripts/app restart my-filebrowser-quantum`. - Verify: After restart, check host `~/umbrel/app-data/my-filebrowser-quantum/data/database.db` exists (BoltDB file, ~10-20KB initially). Logs should no longer warn about missing DB or create a new one. Users persist. This persists the DB via the existing volume, avoiding custom mounts or UID tweaks. If still fails (e.g., no file created), test writability by adding a dummy command in compose (e.g., touch /home/filebrowser/data/test.txt) and inspect logs.
Umbrel Community App Store Template
Deze repository is een clone van de Umbrel Community App Store template met de OnlyOffice en FileBrowser Quantum apps.
FileBrowser Quantum.
In ~/umbrel/app-data/my-filebrowser-quantum/data/config.yaml staat de configuratie van na installatie van FileBrowser Quantum.
Hieronder zie je alle mogelijke configuratie opties die je kunt aanpassen in config.yaml. Dit is de volledige lijst van opties zoals te vinden op https://github.com/gtsteffaniak/filebrowser/blob/main/frontend/public/config.generated.yaml.
server:
minSearchLength: 3 # minimum length of search query to begin searching (default: 3)
disableUpdateCheck: false # disables backend update check service
numImageProcessors: 4 # number of concurrent image processing jobs used to create previews, default is number of cpu cores available.
socket: "" # socket to listen on
tlsKey: "" # path to TLS key
tlsCert: "" # path to TLS cert
disablePreviews: false # disable all previews thumbnails, simple icons will be used
disablePreviewResize: false # disable resizing of previews for faster loading over slow connections
disableTypeDetectionByHeader: false # disable type detection by header, useful if filesystem is slow.
port: 80 # port to listen on
listen: "" # address to listen on (default: 0.0.0.0)
baseURL: "/" # base URL for the server, the subpath that the server is running on.
logging:
- levels: "" # separated list of log levels to enable. (eg. "info|warning|error|debug")
apiLevels: "" # separated list of log levels to enable for the API. (eg. "info|warning|error")
output: "stdout" # output location. (eg. "stdout" or "path/to/file.log")
noColors: false # disable colors in the output
json: false # output in json format
utc: false # use UTC time in the output instead of local time
database: "database.db" # path to the database file
sources: # validate:required,dive
- path: "." # file system path. (Can be relative) validate:required
name: "backend" # display name
config:
denyByDefault: false # deny access unless an "allow" access rule was specifically created.
private: false # designate as source as private -- currently just means no sharing permitted.
disabled: false # disable the source, this is useful so you don't need to remove it from the config file
indexingIntervalMinutes: 0 # (optional) not recommended: manual overide interval in minutes to re-index the source
disableIndexing: false # (optional) not recommended: disable the indexing of this source
conditionals: # conditional rules to apply when indexing to include/exclude certain items
ignoreHidden: false # exclude hidden files and folders.
ignoreZeroSizeFolders: false # ignore folders with 0 size
rules: # list of item rules to apply to specific paths
- neverWatchPath: "" # index the folder in the first pass to get included in search, but never re-indexed.
includeRootItem: "" # include only these items at root folder level
fileStartsWith: "" # (global) exclude files that start with these prefixes. Eg. "archive-" or "backup-"
folderStartsWith: "" # (global) exclude folders that start with these prefixes. Eg. "archive-" or "backup-"
fileEndsWith: "" # (global) exclude files that end with these suffixes. Eg. ".jpg" or ".txt"
folderEndsWith: "" # (global) exclude folders that end with these suffixes. Eg. ".thumbnails" or ".git"
folderPath: "" # (global) exclude folders that match this path. Eg. "/path/to/folder" or "/path/to/folder/subfolder"
filePath: "" # (global) exclude files that match this path. Eg. "/path/to/file.txt" or "/path/to/file.txt/subfile.txt"
fileName: "" # (global) exclude files that match these names. Eg. "file.txt" or "test.csv"
folderName: "" # (global) exclude folders that match these names. Eg. "folder" or "subfolder"
viewable: false # Enable viewing in UI but exclude from indexing
defaultUserScope: "/" # defaults to root of index "/" should match folders under path
defaultEnabled: true # should be added as a default source for new users?
createUserDir: false # create a user directory for each user under defaultUserScope + username
externalUrl: "" # used by share links if set (eg. http://mydomain.com)
internalUrl: "" # used by integrations if set, this is the base domain that an integration service will use to communicate with filebrowser (eg. http://localhost:8080)
cacheDir: "tmp" # path to the cache directory, used for thumbnails and other cached files
cacheDirCleanup: true # whether to automatically cleanup the cache directory. Note: docker must also mount a persistent volume to persist the cache (default: true)
maxArchiveSize: 50 # max pre-archive combined size of files/folder that are allowed to be archived (in GB)
filesystem: # filesystem settings
createFilePermission: "644" # Unix permissions like 644, 755, 2755 (default: 644) validate:required,file_permission
createDirectoryPermission: "755" # Unix permissions like 755, 2755, 1777 (default: 755) validate:required,file_permission
auth:
tokenExpirationHours: 2 # time in hours each web UI session token is valid for. Default is 2 hours.
methods:
proxy: # validate:omitempty
enabled: false
createUser: false # create user if not exists
header: "" # required header to use for authentication. Security Warning: FileBrowser blindly accepts the header value as username.
logoutRedirectUrl: "" # if provider logout url is provided, filebrowser will also redirect to logout url. Custom logout query params are respected.
noauth: false # if set to true, overrides all other auth methods and disables authentication
password: # validate:omitempty
enabled: true
minLength: 5 # minimum pasword length required, default is 5. validate:omitempty
signup: false # allow signups on login page if enabled -- not secure. validate:omitempty
recaptcha: # recaptcha config, only used if signup is enabled validate:omitempty
host: "" # validate:required
key: "" # validate:required
secret: "" # validate:required
enforcedOtp: false # if set to true, TOTP is enforced for all password users users. Otherwise, users can choose to enable TOTP.
oidc: # validate:omitempty
enabled: false # whether to enable OIDC authentication
clientId: "" # secret: client id of the OIDC application
clientSecret: "" # secret: client secret of the OIDC application
issuerUrl: "" # authorization URL of the OIDC provider
scopes: "openid email profile" # scopes to request from the OIDC provider
userIdentifier: "preferred_username" # the field value to use as the username. Default is "preferred_username", can also be "email" or "username", or "phone"
disableVerifyTLS: false # disable TLS verification for the OIDC provider. This is insecure and should only be used for testing.
logoutRedirectUrl: "" # if provider logout url is provided, filebrowser will also redirect to logout url. Custom logout query params are respected.
createUser: false # create user if not exists
adminGroup: "" # if set, users in this group will be granted admin privileges.
groupsClaim: "groups" # the JSON field name to read groups from. Default is "groups"
key: "" # secret: the key used to sign the JWT tokens. If not set, a random key will be generated.
adminUsername: "admin" # secret: the username of the admin user. If not set, the default is "admin".
adminPassword: "admin" # secret: the password of the admin user. If not set, the default is "admin".
totpSecret: "" # secret: secret used to encrypt TOTP secrets
frontend:
name: "FileBrowser Quantum" # display name
disableDefaultLinks: false # disable default links in the sidebar
disableUsedPercentage: false # disable used percentage for the sources in the sidebar
externalLinks:
- text: "(untracked)" # the text to display on the link validate:required
title: "untracked" # the title to display on hover
url: "https://github.com/gtsteffaniak/filebrowser/releases/" # the url to link to validate:required
- text: "Help" # the text to display on the link validate:required
title: "" # the title to display on hover
url: "help prompt" # the url to link to validate:required
disableNavButtons: false # disable the nav buttons in the sidebar
styling:
disableEventThemes: false # disable the event based themes,
customCSS: "" # if a valid path to a css file is provided, it will be applied for all users. (eg. "reduce-rounded-corners.css")
lightBackground: "#f5f5f5" # specify a valid CSS color property value to use as the background color in light mode
darkBackground: "#141D24" # Specify a valid CSS color property value to use as the background color in dark mode
customThemes: # A list of custom css files that each user can select to override the default styling. if "default" is key name then it will be the default option.
alternative:
description: "Reduce rounded corners" # The description of the theme to display in the UI.
css: "reduce-rounded-corners.css" # The css file path and filename to use for the theme.
default:
description: "The default theme" # The description of the theme to display in the UI.
css: "" # The css file path and filename to use for the theme.
favicon: "" # path to a favicon to use for the frontend
description: "FileBrowser Quantum is a file manager for the web which can be used to manage files on your server" # description that shows up in html head meta description
loginIcon: "" # path to an image file for the login page icon
userDefaults:
editorQuickSave: false # show quick save button in editor
hideSidebarFileActions: false # hide the file actions in the sidebar
disableQuickToggles: false # disable the quick toggles in the sidebar
disableSearchOptions: false # disable the search options in the search bar
stickySidebar: true # keep sidebar open when navigating
darkMode: true # should dark mode be enabled
locale: "en" # language to use: eg. de, en, or fr
viewMode: "normal" # view mode to use: eg. normal, list, grid, or compact
singleClick: false # open directory on single click, also enables middle click to open in new tab
showHidden: false # show hidden files in the UI. On windows this includes files starting with a dot and windows hidden files
dateFormat: false # when false, the date is relative, when true, the date is an exact timestamp
gallerySize: 3 # 0-9 - the size of the gallery thumbnails
themeColor: "var(--blue)" # theme color to use: eg. #ff0000, or var(--red), var(--purple), etc
quickDownload: false # show icon to download in one click
disablePreviewExt: "" # space separated list of file extensions to disable preview for
disableViewingExt: "" # space separated list of file extensions to disable viewing for
lockPassword: false # disable the user from changing their password
disableSettings: false # disable the user from viewing the settings page
preview:
disableHideSidebar: false # keep sidebar open when previewing files
highQuality: true # use high quality thumbnails
image: true # show thumbnails for image files
video: true # show thumbnails for video files
motionVideoPreview: true # show multiple frames for videos in thumbnail preview when hovering
office: true # show thumbnails for office files
popup: true # show larger popup preview when hovering over thumbnail
autoplayMedia: true # autoplay media files in preview
defaultMediaPlayer: false # disable the styled feature-rich media player for browser default
folder: true # show thumbnails for folders that have previewable contents
permissions:
api: false # allow api access
admin: false # allow admin access
modify: false # allow modifying files
share: false # allow sharing files
realtime: false # allow realtime updates
delete: false # allow deleting files
create: false # allow creating or uploading files
download: true # allow downloading files
loginMethod: "password" # login method to use: eg. password, proxy, oidc
disableUpdateNotifications: false # disable update notifications banner for admin users
deleteWithoutConfirming: false # delete files without confirmation
fileLoading: # upload and download settings
maxConcurrentUpload: 10
uploadChunkSizeMb: 10
clearAll: false
disableOnlyOfficeExt: ".md .txt .pdf .html .xml" # list of file extensions to disable onlyoffice editor for
customTheme: "" # Name of theme to use chosen from custom themes config.
showSelectMultiple: false # show select multiple files on desktop
debugOffice: false # debug onlyoffice editor
integrations:
office: # validate:omitempty
url: "" # The URL to the OnlyOffice Document Server, needs to be accessible to the user. validate:required
internalUrl: "" # An optional internal address that the filebrowser server can use to communicate with the OnlyOffice Document Server, could be useful to bypass proxy.
secret: "" # secret: authentication key for OnlyOffice integration validate:required
viewOnly: false # view only mode for OnlyOffice
media: # validate:omitempty
ffmpegPath: "" # path to ffmpeg directory with ffmpeg and ffprobe (eg. /usr/local/bin)
convert: # config for ffmpeg conversion settings
imagePreview: # supported image preview formats. defaults to false for all types unless explicitly enabled.
heic: false
videoPreview: # supported video preview formats. defaults to true for all types unless explicitly disabled.
3g2: true
3gp: true
asf: true
avi: true
f4v: true
flv: true
m2ts: true
m4v: true
mkv: true
mov: true
mp4: true
mpeg: true
mpg: true
ogv: true
ts: true
vob: true
webm: true
wmv: true
debug: false # output ffmpeg stdout for media integration -- careful can produces lots of output!
extractEmbeddedSubtitles: false # extract embedded subtitles from media files
Description
Template repository for a creating your own Community App Store for Umbrel. Click "Use this template" and add your apps!