diff --git a/.gitignore b/.gitignore index 4c6db7aa..570bdb7d 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,8 @@ _old rice-box.go .idea/ -/filebrowser -/filebrowser.exe +/backend +/backend.exe /frontend/dist /frontend/pkg /frontend/test-results diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dc4faa3..5415c456 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ All notable changes to this project will be documented in this file. For commit - can enable/disable indexing a specified list of directories/files - can enable/disable indexing hidden files - prepped for multiple sources (not supported yet!) - - Theme and Branding support (see updates to [configuration wiki](https://github.com/gtsteffaniak/filebrowser/wiki/Configuration) on how to use) + - Theme and Branding support (see updates to [configuration wiki](https://github.com/gtsteffaniak/filebrowser/wiki/Configuration) on how to use) - Automatically expire shares https://github.com/gtsteffaniak/filebrowser/issues/208 **Notes**: @@ -19,6 +19,8 @@ All notable changes to this project will be documented in this file. For commit - Icon styling tweaked so all icons have a background. - Updated Login page styling. - Settings profile menu has been simplified, password changes happen in user management. + - Improved windows compatibility and built on windows platform to fix false windows defender warning. + - If no "root" location is provided in the server config, the default is the **current directory** (rather than `/srv` like before) **Bugfixes**: - Fixed setting share expiration time would not work due to type conversion error. @@ -27,10 +29,10 @@ All notable changes to this project will be documented in this file. For commit - Fixed manual language selection issue. - Fixed exact date time issue. - New login page: -image +image + Example branding in sidebar: diff --git a/Dockerfile b/Dockerfile index 0eb5aa55..65b446dd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,8 +6,8 @@ COPY ./backend ./ #RUN swag init --output swagger/docs RUN ln -s swagger /usr/local/go/src/ RUN go build -ldflags="-w -s \ - -X 'github.com/gtsteffaniak/filebrowser/version.Version=${VERSION}' \ - -X 'github.com/gtsteffaniak/filebrowser/version.CommitSHA=${REVISION}'" \ + -X 'github.com/gtsteffaniak/filebrowser/backend/version.Version=${VERSION}' \ + -X 'github.com/gtsteffaniak/filebrowser/backend/version.CommitSHA=${REVISION}'" \ -o filebrowser . FROM node:slim AS nbuild diff --git a/README.md b/README.md index 071842de..7b484161 100644 --- a/README.md +++ b/README.md @@ -15,44 +15,44 @@ > [!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. -FileBrowser Quantum is a fork of the file browser opensource project with the following changes: +FileBrowser Quantum is a fork of the file browser open-source project with the following changes: - 1. [x] Indexes files efficiently. (See [indexing Wiki](https://github.com/gtsteffaniak/filebrowser/wiki/Indexing) for more info.) + 1. ✅ Indexes files efficiently. (See [indexing Wiki](https://github.com/gtsteffaniak/filebrowser/wiki/Indexing) 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. + 2. ✅ Revamped and simplified GUI navbar and sidebar menu. - Additional compact view mode as well as refreshed view mode styles. - Many graphical and user experience improvements. - right-click context menu - 3. [x] Revamped and simplified configuration via `config.yaml` config file. - 4. [x] Better listing browsing + 3. ✅ Revamped and simplified configuration via `config.yaml` config file. + 4. ✅ Better listing browsing - Instantly Switches view modes and sort order without reloading data. - Folder sizes are displayed - Navigating remembers the scroll position, navigating back keeps the last scroll position. - 5. [x] Developer API support + 5. ✅ Developer API support - 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. - - pagination for directory items for extremely large directories. + - ❌ jobs/runners are not supported yet (planned). + - ❌ per-user rules are not supported yet (planned). + - ❌ pagination for directory items for extremely large directories. + - ❌ shell commands are completely removed and will not be returned. - see feature matrix below for more. ## About FileBrowser Quantum provides a file-managing interface within a specified directory and can be used to upload, delete, preview, rename, and edit your files. -It allows the creation of multiple users and each user can have its -directory. +It allows the creation of multiple users and each user can have its directory. -This repository is a fork of the original [filebrowser](https://github.com/filebrowser/filebrowser) -with a collection of changes that make this program work better in terms of -aesthetics and performance. Improved search, simplified UI -(without removing features) and more secure and up-to-date -build are just a few examples. +This repository is a fork of the original [filebrowser](https://github.com/filebrowser/filebrowser) + with a collection of changes that make this program work better in terms of + aesthetics and performance. Improved search, simplified UI + (without removing features) and more secure and up-to-date + build are just a few examples. FileBrowser Quantum differs significantly from the original. There are hundreds of thousands of lines changed and they are generally @@ -103,8 +103,7 @@ Configuration is done via the `config.yaml`, see the [Configuration Wiki](https: ## Migration from the original filebrowser -See the [Migration -Wiki](https://github.com/gtsteffaniak/filebrowser/wiki/Migration) +See the [Migration Wiki](https://github.com/gtsteffaniak/filebrowser/wiki/Migration) ## Comparison Chart diff --git a/backend/.goreleaser.yaml b/backend/.goreleaser.yaml index 40aab458..19ce4dec 100644 --- a/backend/.goreleaser.yaml +++ b/backend/.goreleaser.yaml @@ -6,7 +6,7 @@ builds: # Build configuration for darwin and linux - id: default ldflags: &ldflags - - -s -w -X github.com/gtsteffaniak/filebrowser/version.Version={{ .Version }} -X github.com/gtsteffaniak/filebrowser/version.CommitSHA={{ .ShortCommit }} + - -s -w -X github.com/gtsteffaniak/filebrowser/backend/version.Version={{ .Version }} -X github.com/gtsteffaniak/filebrowser/backend/version.CommitSHA={{ .ShortCommit }} main: main.go binary: filebrowser goos: @@ -17,10 +17,10 @@ builds: - arm - arm64 goarm: - - 6 - - 7 + - "6" + - "7" hooks: - post: + post: - upx {{ .Path }} # Compress the binary with UPX # Build configuration for windows without arm @@ -32,7 +32,6 @@ builds: # - windows # goarch: # - amd64 -# - arm64 archives: - name_template: "{{.Os}}-{{.Arch}}{{if .Arm}}v{{.Arm}}{{end}}-{{ .ProjectName }}" diff --git a/backend/settings/config.go b/backend/settings/config.go index 2cbc1048..f1eac01b 100644 --- a/backend/settings/config.go +++ b/backend/settings/config.go @@ -102,7 +102,7 @@ func setDefaults() Settings { BaseURL: "", Database: "database.db", Log: "stdout", - Root: "/srv", + Root: ".", }, Auth: Auth{ TokenExpirationTime: "2h", @@ -123,6 +123,7 @@ func setDefaults() Settings { DisableSettings: false, ViewMode: "normal", Locale: "en", + GallerySize: 3, Permissions: users.Permissions{ Create: false, Rename: false, diff --git a/frontend/src/utils/sort.test.js b/frontend/src/utils/sort.test.js index bfc095d5..8ddc28b5 100644 --- a/frontend/src/utils/sort.test.js +++ b/frontend/src/utils/sort.test.js @@ -21,7 +21,7 @@ describe('testSort', () => { expect(sortedItems(input, "name")).toEqual(expected); }); - it('sort items with extentions by name correctly', () => { + it('sort items with extensions by name correctly', () => { const input = [ { name: "zebra.txt" }, { name: "1.txt" }, diff --git a/frontend/src/views/Login.vue b/frontend/src/views/Login.vue index ee62cce7..3b23725c 100644 --- a/frontend/src/views/Login.vue +++ b/frontend/src/views/Login.vue @@ -147,21 +147,24 @@ export default { } .login-brand { + padding-bottom: 0 !important; + padding: 0em !important; + padding-top: 0.5em !important; display: flex; align-content: center; justify-content: center; align-items: center; - padding: 0 !important; } .brand-text { padding: 1em !important; - padding-top: 0 !important; + padding-top: 0.9em !important; } .login-brand i { font-size: 5em !important; - padding: 0 !important; + padding-top: 0em !important; + padding-bottom: 0em !important; } \ No newline at end of file diff --git a/makefile b/makefile index fee8bfb7..e7b69c7b 100644 --- a/makefile +++ b/makefile @@ -24,7 +24,7 @@ run: run-frontend sed -i '/func init/,+3d' ./swagger/docs/docs.go; \ fi && \ FILEBROWSER_NO_EMBEDED=true go run \ - --ldflags="-w -s -X 'github.com/gtsteffaniak/filebrowser/version.CommitSHA=testingCommit' -X 'github.com/gtsteffaniak/filebrowser/version.Version=testing'" . -c test_config.yaml + --ldflags="-w -s -X 'github.com/gtsteffaniak/filebrowser/backend/version.CommitSHA=testingCommit' -X 'github.com/gtsteffaniak/filebrowser/backend/version.Version=testing'" . -c test_config.yaml run-frontend: cd backend/http && rm -rf dist && rm -rf embed/* && ln -s ../../frontend/dist && \ @@ -51,3 +51,8 @@ test-frontend: test-frontend-playwright: npx playwright install docker build -t gtstef/filebrowser-tests -f Dockerfile.playwright . + +# Run on a windows machine! +release-windows: + cd frontend && npm run build-windows && \ + cd ../backend && go build --ldflags="-w -s -X github.com/gtsteffaniak/filebrowser/backend/version.CommitSHA=' -X 'github.com/gtsteffaniak/filebrowser/backend/version.Version='" . \ No newline at end of file