diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml
index a091f989..5105ef0d 100644
--- a/.github/workflows/pr.yaml
+++ b/.github/workflows/pr.yaml
@@ -7,22 +7,22 @@ on:
- "v[0-9]+.[0-9]+.[0-9]+"
jobs:
- test_frontend:
- name: Push release
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Set up QEMU
- uses: docker/setup-qemu-action@v3.0.0
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3.0.0
- - name: Build
- uses: docker/build-push-action@v6
- with:
- context: .
- file: ./Dockerfile.playwright
- push: false
+ #test_frontend:
+ # name: Push release
+ # runs-on: ubuntu-latest
+ # steps:
+ # - name: Checkout
+ # uses: actions/checkout@v4
+ # - name: Set up QEMU
+ # uses: docker/setup-qemu-action@v3.0.0
+ # - name: Set up Docker Buildx
+ # uses: docker/setup-buildx-action@v3.0.0
+ # - name: Build
+ # uses: docker/build-push-action@v6
+ # with:
+ # context: .
+ # file: ./Dockerfile.playwright
+ # push: false
push_pr_to_registry:
name: Push PR
runs-on: ubuntu-latest
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index a0c11be4..d33db5a9 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -61,7 +61,7 @@ jobs:
JSON="${{ steps.meta.outputs.tags }}"
# Use jq to remove 'v' from the version field
JSON=$(echo "$JSON" | sed 's/filebrowser:v/filebrowser:/')
- echo "CLEANED_TAG=$JSON" >> $GITHUB_OUTPUT
+ echo "cleaned_tag=$JSON" >> $GITHUB_OUTPUT
- name: Build and push
uses: docker/build-push-action@v6
with:
@@ -72,5 +72,5 @@ jobs:
platforms: linux/amd64,linux/arm64,linux/arm/v7
file: ./Dockerfile
push: true
- tags: ${{ steps.modify-json.outputs.CLEANED_TAG }}
+ tags: ${{ steps.modify-json.outputs.cleaned_tag }}
labels: ${{ steps.meta.outputs.labels }}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1730aeb9..49e4fcc4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,13 @@
All notable changes to this project will be documented in this file. For commit guidelines, please refer to [Standard Version](https://github.com/conventional-changelog/standard-version).
+## v0.3.4
+
+ **Bugfixes**:
+ - Safari right-click actions.
+ - Some small image viewer behavior
+ - Progressive webapp "install to homescreen" fix.
+
## v0.3.3
**New Features**
diff --git a/README.md b/README.md
index ac0ebf41..a44d8c1d 100644
--- a/README.md
+++ b/README.md
@@ -10,16 +10,15 @@
> [!Note]
-> Starting with v0.3.3, configuration file mapping is different to support non-root user. Now, the default config file name is `config.yaml` and in docker the path is `/home/filebrowser/config.yaml` and `/home/filebrowser/`. Please read the usage below to properly update your config to point the new config location.
+> Starting with v0.3.3, configuration file mapping is different to support non-root user. Now, the default config file name is `config.yaml` and in docker the path is `/home/filebrowser/config.yaml` and `/home/filebrowser/`. Please read the usage below to properly update your config to point the new config location. (open an issue for any help needed)
> [!WARNING]
> - There is no stable version yet. Always check release notes for bug fixes on functionality that may have been changed. If you notice any unexpected behavior -- please open an issue to have it fixed soon.
-> - If on windows, please use docker. The windows binary is unstable and may not work.
FileBrowser Quantum is a fork of the file browser opensource project with the following changes:
- 1. [x] Indexes files efficiently. See [indexing readme](./docs/indexing.md)
- - Real-time search results as you type
+ 1. [x] Indexes files efficiently. (See [indexing readme](./docs/indexing.md) for more info.)
+ - Real-time search results as you type!
- Search supports file/folder sizes and many file type filters.
- Enhanced interactive results that show file/folder sizes.
2. [x] Revamped and simplified GUI navbar and sidebar menu.
@@ -27,21 +26,21 @@ FileBrowser Quantum is a fork of the file browser opensource project with the fo
styles.
- Many graphical and user experience improvements.
- right-click context menu
- 3. [x] Revamped and simplified configuration via `filebrowser.yml` config file.
+ 3. [x] Revamped and simplified configuration via `config.yaml` config file.
4. [x] Better listing browsing
- Switching view modes is instant
- Folder sizes are shown as well
- Changing Sort order is instant
- The entire directory is loaded in 1/3 the time
5. [x] Developer API support
- - Can create long-live API Tokens.
+ - Ability to create long-live API Tokens.
- Helpful Swagger page available at `/swagger` endpoint.
Notable features that this fork *does not* have (removed):
- jobs/runners are not supported yet (planned).
- shell commands are completely removed and will not be returned.
- - themes and branding are not fully supported yet (planned).
+ - Themes and branding are not fully supported yet (planned).
- see feature matrix below for more.
- pagination for directory items, so large directories with more than 100,000 items may be slow to load or not load at all.
@@ -67,10 +66,11 @@ focus of this fork is on a few key principles:
- Minimize external dependencies and standard library usage.
- Of course -- adding much-needed features.
+For more questions, see the [Q&A Readme](./docs/questions.md)
+
## Look
-One way you can observe the improved user experience is how I changed
-the UI. The Navbar is simplified to a three-component system :
+The UI has a simple three-component navigation system :
1. (Left) The slide-out action panel button
2. (Middle) The powerful search bar.
@@ -162,7 +162,7 @@ There are very few commands available. There are 3 actions done via the command
## API Usage
-FileBrowser Quantum allows for the creation of API tokens which can create users, access file information, and update user settings just like what can be done from the UI. You can create API tokens from the settings page via "API Management" section. This section will only show up if the user has "API" permissions, which can be granted by editing the user in user management.
+API tokens can be created to perform actions, access file information, and update user settings just like what can be done from the UI. You can create API tokens from the settings page via "API Management" section. This section will only show up if the user has "API" permissions, which can be granted by editing the user in user management.
Regardless of whether a user has API permissions, anyone can visit the swagger page which is found at `/swagger`. This swagger page uses a short-live token (2-hour exp) that the UI uses, but allows for quick access to all the API's and their described usage and requirements:
@@ -191,7 +191,6 @@ configuration options and other help.
## Migration from the original filebrowser
-If you currently use the original filebrowser but want to try using this.
I would recommend that you start fresh without reusing the database. However,
If you want to migrate your existing database to FileBrowser Quantum,
visit the [migration
diff --git a/backend/.goreleaser.yaml b/backend/.goreleaser.yaml
index 8ae31067..40aab458 100644
--- a/backend/.goreleaser.yaml
+++ b/backend/.goreleaser.yaml
@@ -24,15 +24,15 @@ builds:
- upx {{ .Path }} # Compress the binary with UPX
# Build configuration for windows without arm
- - id: windows
- ldflags: *ldflags
- main: main.go
- binary: filebrowser
- goos:
- - windows
- goarch:
- - amd64
- - arm64
+# - id: windows
+# ldflags: *ldflags
+# main: main.go
+# binary: filebrowser
+# goos:
+# - windows
+# goarch:
+# - amd64
+# - arm64
archives:
- name_template: "{{.Os}}-{{.Arch}}{{if .Arm}}v{{.Arm}}{{end}}-{{ .ProjectName }}"
diff --git a/backend/http/static.go b/backend/http/static.go
index 065bed43..4fea1839 100644
--- a/backend/http/static.go
+++ b/backend/http/static.go
@@ -7,7 +7,6 @@ import (
"log"
"net/http"
"os"
- "path"
"path/filepath"
"strings"
"text/template"
@@ -52,7 +51,7 @@ func handleWithStaticData(w http.ResponseWriter, r *http.Request, file, contentT
"BaseURL": config.Server.BaseURL,
"Version": version.Version,
"CommitSHA": version.CommitSHA,
- "StaticURL": path.Join(config.Server.BaseURL, "static"),
+ "StaticURL": config.Server.BaseURL + "static",
"Signup": settings.Config.Auth.Signup,
"NoAuth": config.Auth.Method == "noauth",
"AuthMethod": config.Auth.Method,
@@ -62,6 +61,7 @@ func handleWithStaticData(w http.ResponseWriter, r *http.Request, file, contentT
"EnableThumbs": config.Server.EnableThumbnails,
"ResizePreview": config.Server.ResizePreview,
"EnableExec": config.Server.EnableExec,
+ "ReCaptchaHost": config.Auth.Recaptcha.Host,
}
if config.Frontend.Files != "" {
diff --git a/docs/questions.md b/docs/questions.md
new file mode 100644
index 00000000..a57cd616
--- /dev/null
+++ b/docs/questions.md
@@ -0,0 +1,50 @@
+# Q&A topics
+
+## When will there be a stable release?
+
+Please see [roadmap](roadmap.md) for future plans -- yes a stable release will eventually come.
+
+## Can you add FileBrowser Quantum features to the original file browser?
+
+This "Quantum" version fork was created because I wanted certain features that are a dramatic and opinionated departure from the OG filebrowser. If you look at the original filebrowser repo pull requests, you will find there are many basic features that remain open for many months or years with very little attention.
+
+If the original filebrowser maintainers were more active and if I didn't have to worry about spending months or years playing politics about the concequences of these drastic changes, I would contribute to the original repository.
+
+However, **I will not make an modifications to the original filebrowser**, for these reasons:
+
+1. My changes are opinionated and I want full control over the experience (and consequences) of the changes. For example I removed the terminal, runners, command line flags, and more. These are changes that would probably be highly contested. I think the experience is better without them, or with the changes -- and I hope you agree.
+2. Contributing to that open source project takes a long time, I may never see my changes actually make it in and don't want to waste my time trying for years, I only have so much time.
+3. This project was originally a fork, but that quickly changed. There are hundereds of thousands of changes and complete departures from the original codebase. I can't simply "port" the features I write on this repo over to the OG file browser.
+
+Both of these repos being open source means YOU can migrate these features if you want! Feel free to spend the effort and do so for the community. I am not the only one capable of doing it and I encourage this if you have the time, energy, and knowhow to do it.
+
+## I notice a lot of things that don't work like the original file browser repo, how can I get this fixed?
+
+Please open issues and/or pull requests from a forked repo if you notice issues that should be fixed. Some changes are intentional and I may have left things broken. For example, I am not fully confident user rules work in 100% of places. When you notice things, please let me know and I will check if its an intentional change or a bug.
+
+## Is there a way to donate or support this project?
+
+Nope... not yet! It's still "unfinished" in my opinion, so I don't want to ask for any money from it. But if you have a strong desire to donate, email info@quantumx-apps.com to get in touch.
+
+## Is there an email or phone I can contact?
+
+Yes - Please contact info@quantumx-apps.com for any off-github topics. If its related to a specific application or repo such as this filebrowser, please open an issue or pull request instead. Email is only for corrospondance unrelated to technical changes or issues.
+
+## Can I fork this repo and use it?
+
+This repo has the same license as the original filebrowser, apache-2.0. Feel free to use in any way that follows the license. I have no issues with anything personally -- its open source please do as you like. However, since this is a fork of the OG repo, I am not sure what the consequences are for a fork of this repo.
+
+## Who are the maintainers for FileBrowser Quantum?
+
+Right now, just me as a personal hobby and some small contributions from the community. Once I can release a confident stable version, I plan to publicize this application more on social media. Hopefully, in the future I could pick up some extra contributors.
+
+I'm not looking for contributors at the moment, but if you want to me a contributor feel free to email me at info@quantumx-apps.com to see about getting contributor access.
+
+## Are there plans to charge for this product?
+
+No, this repo and project will always be free to use.
+
+## Is there a discord for this fork?
+
+Not yet, generally most interactions should happen on github for now.
+
diff --git a/docs/roadmap.md b/docs/roadmap.md
index 9c6f985c..d5585ccd 100644
--- a/docs/roadmap.md
+++ b/docs/roadmap.md
@@ -1,22 +1,46 @@
# Planned Roadmap
-upcoming 0.3.x releases, ordered by priority:
- - more indexing flexability
- - option not to index hidden files/folders
- - options folders to include/exclude from indexing
- - implement more indexing runners for more efficienct filesystem watching
- - more filetype previews: eg. raw img, office, photoshop, vector, 3d files.
- - introduce jobs as replacement to runners.
+Upcoming 0.3.x releases, ordered by priority:
+ - Bring Themes and Branding back.
+ - openoffice support https://github.com/filebrowser/filebrowser/pull/2954
+ - More filetype previews: eg. raw img, office, photoshop, vector, 3d files.
+ - Introduce jobs as replacement to runners.
- Add Job status to the sidebar
- index status.
- Job status from users
- upload status
- - opentelemetry metrics
+ - Opentelemetry metrics
+ - user access,
+ - file access
+ - download count
+ - last login
+ - more sign in support
+ - LDAP
+ - 2FA
+ - SSO
+
+Upcoming 0.4.x release:
+ - Support for multiple filesystem sources https://github.com/filebrowser/filebrowser/issues/2514
+ - Onboarding process to add sources and configure them on first run.
+ - More indexing flexability
+ - option not to index hidden files/folders
+ - options folders to include/exclude from indexing
+ - implement more indexing runners for more efficienct filesystem watching
+ - tags support
+
+Stable release (v1.0.0) - Planned 2025:
+ - Once under the hood changes for things like multiple sources, jobs support, etc
+ - More robust backend and frontend testing
+ - Currently a stable release does not exist primarily because things are still changing, configuration changes are happening frequently and will for the next
+ - Rebrand to QuantumX App suite umbrella branding and github repo change.
Unplanned Future releases:
- - multiple sources https://github.com/filebrowser/filebrowser/issues/2514
- Add tools to sidebar
- duplicate file detector.
- bulk rename https://github.com/filebrowser/filebrowser/issues/2473
- - metrics tracker - user access, file access, download count, last login, etc
- - support minio, s3, and backblaze sources https://github.com/filebrowser/filebrowser/issues/2544
+ - support more source types such as minio, s3, and backblaze sources https://github.com/filebrowser/filebrowser/issues/2544
+ - Activity Log
+ - Comments support
+ - Trash Support
+ - starred/pinned files
+ - event based notifications
diff --git a/frontend/public/index.html b/frontend/public/index.html
index 7ce7b913..e5e5f562 100644
--- a/frontend/public/index.html
+++ b/frontend/public/index.html
@@ -1,11 +1,12 @@
+
{{ if .ReCaptcha }}
-
+
{{ end }}
{{ if .Name }}{{ .Name }}{{ else }}FileBrowser Quantum{{ end }}
@@ -19,7 +20,7 @@
-
+
@@ -27,94 +28,111 @@
+
@@ -138,7 +156,8 @@
{{ if .CSS }}
-
+
{{ end }}
-
+
+