{"id":13481,"date":"2026-01-25T22:23:41","date_gmt":"2026-01-25T22:23:41","guid":{"rendered":"https:\/\/zoomdang.com\/?p=13481"},"modified":"2026-01-25T22:33:04","modified_gmt":"2026-01-25T22:33:04","slug":"set-up-filebrowser-in-coolify-with-perisitent-user","status":"publish","type":"post","link":"https:\/\/zoomdang.com\/index.php\/2026\/01\/25\/set-up-filebrowser-in-coolify-with-perisitent-user\/","title":{"rendered":"Set up Filebrowser in Coolify with perisitent user"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1216.8px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-1\"><p>The default set up of Coolify&#8217;s File Browser is to always gennerate a password.<\/p>\n<p>Here&#8217;s the default YAML<\/p>\n<p>Pay attention to the database.db part, that comes in handly later.<\/p>\n<\/div><style type=\"text\/css\" scopped=\"scopped\">.fusion-syntax-highlighter-1 > .CodeMirror, .fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }<\/style><div class=\"fusion-syntax-highlighter-container fusion-syntax-highlighter-1 fusion-syntax-highlighter-theme-dark\" style=\"opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);\"><div class=\"syntax-highlighter-copy-code\"><span class=\"syntax-highlighter-copy-code-title\" data-id=\"fusion_syntax_highlighter_1\" style=\"font-size:14px;\">Copy to Clipboard<\/span><\/div><label for=\"fusion_syntax_highlighter_1\" class=\"screen-reader-text\">Syntax Highlighter<\/label><textarea class=\"fusion-syntax-highlighter-textarea\" id=\"fusion_syntax_highlighter_1\" data-readOnly=\"nocursor\" data-lineNumbers=\"1\" data-lineWrapping=\"\" data-theme=\"hopscotch\" data-mode=\"text\/yaml\">services:\n  filebrowser:\n    image: 'filebrowser\/filebrowser:latest'\n    environment:\n      - SERVICE_URL_FILEBROWSER_80\n    volumes:\n      -\n        type: bind\n        source: .\/srv\n        target: \/srv\n      -\n        type: bind\n        source: .\/database.db\n        target: \/database.db\n      -\n        type: bind\n        source: .\/filebrowser.json\n        target: \/.filebrowser.json\n        read_only: true\n<\/textarea><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_2 1_2 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:50%;--awb-margin-top-large:0px;--awb-spacing-right-large:3.84%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:3.84%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-image-element \" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\" fusion-imageframe imageframe-none imageframe-1 hover-type-none\" style=\"border-radius:5px;\"><img decoding=\"async\" width=\"1088\" height=\"167\" title=\"{60529BF9-E5D9-45AB-86BF-D662BC4F882C}\" src=\"https:\/\/zoomdang.com\/wp-content\/uploads\/2026\/01\/60529BF9-E5D9-45AB-86BF-D662BC4F882C.png\" data-orig-src=\"https:\/\/zoomdang.com\/wp-content\/uploads\/2026\/01\/60529BF9-E5D9-45AB-86BF-D662BC4F882C.png\" alt class=\"lazyload img-responsive wp-image-13482\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%271088%27%20height%3D%27167%27%20viewBox%3D%270%200%201088%20167%27%3E%3Crect%20width%3D%271088%27%20height%3D%27167%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/zoomdang.com\/wp-content\/uploads\/2026\/01\/60529BF9-E5D9-45AB-86BF-D662BC4F882C-200x31.png 200w, https:\/\/zoomdang.com\/wp-content\/uploads\/2026\/01\/60529BF9-E5D9-45AB-86BF-D662BC4F882C-400x61.png 400w, https:\/\/zoomdang.com\/wp-content\/uploads\/2026\/01\/60529BF9-E5D9-45AB-86BF-D662BC4F882C-600x92.png 600w, https:\/\/zoomdang.com\/wp-content\/uploads\/2026\/01\/60529BF9-E5D9-45AB-86BF-D662BC4F882C-800x123.png 800w, https:\/\/zoomdang.com\/wp-content\/uploads\/2026\/01\/60529BF9-E5D9-45AB-86BF-D662BC4F882C.png 1088w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 1024px) 100vw, (max-width: 640px) 100vw, 600px\" \/><\/span><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_2 1_2 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:50%;--awb-margin-top-large:0px;--awb-spacing-right-large:3.84%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:3.84%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-2\"><p>The default YAML is functional, exept it generates a new password every time I reset the instance. Looking at the log, I see that filebrowser.db can&#8217;t be found. Not a deal breaker, I can just look\u00a0 up the password in my server.<br \/>\nAlso I want Filebrowser to run a script whenever files are uploaded to specific folders, these settings, along with the users data are saved in filebrowser.db. This is a deal breaker.<\/p>\n<\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-3 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-3\"><p>Looking at the log, I see that the database should be named filebrowser.db, and it should be placed in \/database\/. Easy fix.<br \/>\nI tried to create the folder and mount the folder into FileBrowser&#8217;s container, that didn&#8217;t work because docker assume filebrowser.db is a directory name<br \/>\nI created the folder, and create the file (use touch), then I bind folder database along with filebrowser.db, this works but now FileBrowser doesn&#8217;t generate a password for first login.<\/p>\n<p>Gemini suggests me to add in a hashed password as variables in Coolify, this didn&#8217;t work as well.<\/p>\n<p>I deleted filebrowser.db, letting FileBrowser generate that file instead, but keeping the folder bind. This works.<\/p>\n<p>Now I have a working FileBrowser. Yay me.<\/p>\n<p>&nbsp;<\/p>\n<\/div><style type=\"text\/css\" scopped=\"scopped\">.fusion-syntax-highlighter-2 > .CodeMirror, .fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }<\/style><div class=\"fusion-syntax-highlighter-container fusion-syntax-highlighter-2 fusion-syntax-highlighter-theme-light\" style=\"opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);\"><div class=\"syntax-highlighter-copy-code\"><span class=\"syntax-highlighter-copy-code-title\" data-id=\"fusion_syntax_highlighter_2\" style=\"font-size:14px;\">Copy to Clipboard<\/span><\/div><label for=\"fusion_syntax_highlighter_2\" class=\"screen-reader-text\">Syntax Highlighter<\/label><textarea class=\"fusion-syntax-highlighter-textarea\" id=\"fusion_syntax_highlighter_2\" data-readOnly=\"nocursor\" data-lineNumbers=\"1\" data-lineWrapping=\"\" data-theme=\"default\" data-mode=\"text\/yaml\">services:\n  filebrowser:\n    user: root\n    image: 'filebrowser\/filebrowser:latest'\n    environment:\n      - SERVICE_URL_FILEBROWSER\n      - PUID=33\n      - PGID=33\n    volumes:\n      -\n        type: bind\n        source: .\/srv\n        target: \/srv\n      -\n        type: bind\n        source: \/data\/coolify\/services\/filebrowser\/database\/\n        target: \/database\/\n      -\n        type: bind\n        source: \/data\/coolify\/services\/filebrowser\/filebrowser.json\n        target: \/.filebrowser.json\n        read_only: true\n<\/textarea><\/div><div class=\"fusion-text fusion-text-4\"><p>Add this in YAML ability to run scripts.<\/p>\n<blockquote>\n<p><span class=\"hljs-attr\">environment:<\/span> <span class=\"hljs-bullet\">&#8211;<\/span> <span class=\"hljs-string\">FB_DISABLE_EXEC=false<\/span><\/p>\n<\/blockquote>\n<\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-13481","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/zoomdang.com\/index.php\/wp-json\/wp\/v2\/posts\/13481","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zoomdang.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zoomdang.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zoomdang.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zoomdang.com\/index.php\/wp-json\/wp\/v2\/comments?post=13481"}],"version-history":[{"count":3,"href":"https:\/\/zoomdang.com\/index.php\/wp-json\/wp\/v2\/posts\/13481\/revisions"}],"predecessor-version":[{"id":13485,"href":"https:\/\/zoomdang.com\/index.php\/wp-json\/wp\/v2\/posts\/13481\/revisions\/13485"}],"wp:attachment":[{"href":"https:\/\/zoomdang.com\/index.php\/wp-json\/wp\/v2\/media?parent=13481"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zoomdang.com\/index.php\/wp-json\/wp\/v2\/categories?post=13481"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zoomdang.com\/index.php\/wp-json\/wp\/v2\/tags?post=13481"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}