diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index ee01149a..bda5ad73 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -1,13 +1,9 @@ +--- name: main - on: push: - branches: - - "master" - tags: - - "v*" + branches: [master] pull_request: - jobs: # linters lint-frontend: @@ -16,12 +12,12 @@ jobs: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: - package_json_file: "frontend/package.json" + package_json_file: frontend/package.json - uses: actions/setup-node@v4 with: - node-version: "22.x" - cache: "pnpm" - cache-dependency-path: "frontend/pnpm-lock.yaml" + node-version: 22.x + cache: pnpm + cache-dependency-path: frontend/pnpm-lock.yaml - run: make lint-frontend lint-backend: runs-on: ubuntu-latest @@ -44,12 +40,12 @@ jobs: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: - package_json_file: "frontend/package.json" + package_json_file: frontend/package.json - uses: actions/setup-node@v4 with: - node-version: "22.x" - cache: "pnpm" - cache-dependency-path: "frontend/pnpm-lock.yaml" + node-version: 22.x + cache: pnpm + cache-dependency-path: frontend/pnpm-lock.yaml - run: make test-frontend test-backend: runs-on: ubuntu-latest @@ -68,8 +64,6 @@ jobs: # release release: runs-on: ubuntu-latest - needs: [lint, test] - if: startsWith(github.event.ref, 'refs/tags/v') steps: - uses: actions/checkout@v4 with: @@ -79,12 +73,12 @@ jobs: go-version: 1.23.0 - uses: pnpm/action-setup@v4 with: - package_json_file: "frontend/package.json" + package_json_file: frontend/package.json - uses: actions/setup-node@v4 with: - node-version: "22.x" - cache: "pnpm" - cache-dependency-path: "frontend/pnpm-lock.yaml" + node-version: 22.x + cache: pnpm + cache-dependency-path: frontend/pnpm-lock.yaml - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx @@ -92,14 +86,36 @@ jobs: - name: Build frontend run: make build-frontend - name: Login to Docker Hub - uses: docker/login-action@v1 + uses: docker/login-action@v3 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + registry: https://git.linuxcrack.zip + username: ${{ gitea.actor }} + password: ${{ secrets.USER_TOKEN }} + - name: Get current tag + id: get_tag + run: echo "tag=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT - name: Run GoReleaser uses: goreleaser/goreleaser-action@v2 with: version: latest args: release --clean env: - GITHUB_TOKEN: ${{ secrets.GH_PAT }} + GITHUB_TOKEN: ${{ secrets.USER_TOKEN }} + - name: Upload artefacts + uses: christopherhx/gitea-upload-artifact@v4 + with: + url: https://git.linuxcrack.zip + path: | + dist/*.tar.gz + dist/*.zip + dist/*.exe + dist/*.txt + if-no-files-found: error + compression-level: 0 + - name: Push Docker images to registry + run: |- + TAG=${{ steps.get_tag.outputs.tag }} + for arch in amd64 arm64; do + docker tag filebrowser/filebrowser:${TAG}-$arch git.linuxcrack.zip/midou/filebrowser:${TAG}-$arch + docker push git.linuxcrack.zip/midou/filebrowser:${TAG}-$arch + done diff --git a/.github/workflows/pr-lint.yaml b/.github/workflows/pr-lint.yaml index f2878cf2..db76b47e 100644 --- a/.github/workflows/pr-lint.yaml +++ b/.github/workflows/pr-lint.yaml @@ -1,16 +1,10 @@ -name: "Lint PR" - +--- +name: Lint PR on: pull_request_target: - types: - - opened - - reopened - - edited - - synchronize - + types: [opened, reopened, edited, synchronize] permissions: pull-requests: write - jobs: main: name: Validate PR title @@ -19,8 +13,7 @@ jobs: - uses: amannn/action-semantic-pull-request@v5 id: lint_pr_title env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - + GITHUB_TOKEN: ${{ secrets.USER_TOKEN }} - uses: marocchino/sticky-pull-request-comment@v2 # When the previous steps fails, the workflow would stop. By adding this # condition you can continue the execution with the populated error message. @@ -29,11 +22,8 @@ jobs: header: pr-title-lint-error message: | Hey there and thank you for opening this pull request! 👋🏼 - We require pull request titles to follow the [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/) and it looks like your proposed title needs to be adjusted. - Details: - ``` ${{ steps.lint_pr_title.outputs.error_message }} ``` @@ -43,4 +33,4 @@ jobs: uses: marocchino/sticky-pull-request-comment@v2 with: header: pr-title-lint-error - delete: true \ No newline at end of file + delete: true diff --git a/.goreleaser.yml b/.goreleaser.yml index 0e0a5d65..c0a83bd8 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -1,193 +1,159 @@ +--- version: 2 - project_name: filebrowser - -env: - - GO111MODULE=on - +env: [GO111MODULE=on] builds: - - env: - - CGO_ENABLED=0 + - env: [CGO_ENABLED=0] ldflags: - - -s -w -X github.com/filebrowser/filebrowser/v2/version.Version={{ .Version }} -X github.com/filebrowser/filebrowser/v2/version.CommitSHA={{ .ShortCommit }} + - -s -w -X git.linuxcrack.zip/midou/filebrowser/v2/version.Version={{ .Version }} + -X git.linuxcrack.zip/midou/filebrowser/v2/version.CommitSHA={{ .ShortCommit }} main: main.go binary: filebrowser - goos: - - darwin - - linux - - windows - - freebsd - goarch: - - amd64 - - 386 - - arm - - arm64 - - riscv64 - goarm: - - 5 - - 6 - - 7 + goos: [darwin, linux, windows, freebsd] + goarch: [amd64, 386, arm, arm64, riscv64] + goarm: [5, 6, 7] ignore: - goos: darwin goarch: 386 - goos: freebsd goarch: arm - archives: - - - name_template: "{{.Os}}-{{.Arch}}{{if .Arm}}v{{.Arm}}{{end}}-{{ .ProjectName }}" - formats: [ 'tar.gz' ] + - name_template: '{{.Os}}-{{.Arch}}{{if .Arm}}v{{.Arm}}{{end}}-{{ .ProjectName }}' + formats: [tar.gz] format_overrides: - goos: windows - formats: [ 'zip' ] - + formats: [zip] dockers: - - - dockerfile: Dockerfile + - dockerfile: Dockerfile use: buildx build_flag_templates: - - "--pull" - - "--label=org.opencontainers.image.created={{.Date}}" - - "--label=org.opencontainers.image.name={{.ProjectName}}" - - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" - - "--label=org.opencontainers.image.source={{.GitURL}}" - - "--platform=linux/amd64" + - --pull + - --label=org.opencontainers.image.created={{.Date}} + - --label=org.opencontainers.image.name={{.ProjectName}} + - --label=org.opencontainers.image.revision={{.FullCommit}} + - --label=org.opencontainers.image.version={{.Version}} + - --label=org.opencontainers.image.source={{.GitURL}} + - --platform=linux/amd64 goos: linux goarch: amd64 image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-amd64" - - "filebrowser/filebrowser:v{{ .Major }}-amd64" - extra_files: - - docker_config.json - - healthcheck.sh - - - dockerfile: Dockerfile + - filebrowser/filebrowser:{{ .Tag }}-amd64 + - filebrowser/filebrowser:v{{ .Major }}-amd64 + extra_files: [docker_config.json, healthcheck.sh] + - dockerfile: Dockerfile use: buildx build_flag_templates: - - "--pull" - - "--label=org.opencontainers.image.created={{.Date}}" - - "--label=org.opencontainers.image.name={{.ProjectName}}" - - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" - - "--label=org.opencontainers.image.source={{.GitURL}}" - - "--platform=linux/arm64" + - --pull + - --label=org.opencontainers.image.created={{.Date}} + - --label=org.opencontainers.image.name={{.ProjectName}} + - --label=org.opencontainers.image.revision={{.FullCommit}} + - --label=org.opencontainers.image.version={{.Version}} + - --label=org.opencontainers.image.source={{.GitURL}} + - --platform=linux/arm64 goos: linux goarch: arm64 image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-arm64" - - "filebrowser/filebrowser:v{{ .Major }}-arm64" - extra_files: - - docker_config.json - - healthcheck.sh - - - dockerfile: Dockerfile + - filebrowser/filebrowser:{{ .Tag }}-arm64 + - filebrowser/filebrowser:v{{ .Major }}-arm64 + extra_files: [docker_config.json, healthcheck.sh] + - dockerfile: Dockerfile use: buildx build_flag_templates: - - "--pull" - - "--label=org.opencontainers.image.created={{.Date}}" - - "--label=org.opencontainers.image.name={{.ProjectName}}" - - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" - - "--label=org.opencontainers.image.source={{.GitURL}}" - - "--platform=linux/arm/v6" + - --pull + - --label=org.opencontainers.image.created={{.Date}} + - --label=org.opencontainers.image.name={{.ProjectName}} + - --label=org.opencontainers.image.revision={{.FullCommit}} + - --label=org.opencontainers.image.version={{.Version}} + - --label=org.opencontainers.image.source={{.GitURL}} + - --platform=linux/arm/v6 goos: linux goarch: arm goarm: '6' image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-armv6" - - "filebrowser/filebrowser:v{{ .Major }}-armv6" - extra_files: - - docker_config.json - - healthcheck.sh - - - dockerfile: Dockerfile + - filebrowser/filebrowser:{{ .Tag }}-armv6 + - filebrowser/filebrowser:v{{ .Major }}-armv6 + extra_files: [docker_config.json, healthcheck.sh] + - dockerfile: Dockerfile use: buildx build_flag_templates: - - "--pull" - - "--label=org.opencontainers.image.created={{.Date}}" - - "--label=org.opencontainers.image.name={{.ProjectName}}" - - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" - - "--label=org.opencontainers.image.source={{.GitURL}}" - - "--platform=linux/arm/v7" + - --pull + - --label=org.opencontainers.image.created={{.Date}} + - --label=org.opencontainers.image.name={{.ProjectName}} + - --label=org.opencontainers.image.revision={{.FullCommit}} + - --label=org.opencontainers.image.version={{.Version}} + - --label=org.opencontainers.image.source={{.GitURL}} + - --platform=linux/arm/v7 goos: linux goarch: arm goarm: '7' image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-armv7" - - "filebrowser/filebrowser:v{{ .Major }}-armv7" + - filebrowser/filebrowser:{{ .Tag }}-armv7 + - filebrowser/filebrowser:v{{ .Major }}-armv7 extra_files: - docker_config.json - healthcheck.sh ## s6 based docker images - - - dockerfile: Dockerfile.s6 + - dockerfile: Dockerfile.s6 use: buildx build_flag_templates: - - "--pull" - - "--label=org.opencontainers.image.created={{.Date}}" - - "--label=org.opencontainers.image.name={{.ProjectName}}" - - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" - - "--label=org.opencontainers.image.source={{.GitURL}}" - - "--platform=linux/amd64" + - --pull + - --label=org.opencontainers.image.created={{.Date}} + - --label=org.opencontainers.image.name={{.ProjectName}} + - --label=org.opencontainers.image.revision={{.FullCommit}} + - --label=org.opencontainers.image.version={{.Version}} + - --label=org.opencontainers.image.source={{.GitURL}} + - --platform=linux/amd64 goos: linux goarch: amd64 image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-amd64-s6" - - "filebrowser/filebrowser:v{{ .Major }}-amd64-s6" - extra_files: - - docker/root - - healthcheck.sh - - - dockerfile: Dockerfile.s6.aarch64 + - filebrowser/filebrowser:{{ .Tag }}-amd64-s6 + - filebrowser/filebrowser:v{{ .Major }}-amd64-s6 + extra_files: [docker/root, healthcheck.sh] + - dockerfile: Dockerfile.s6.aarch64 use: buildx build_flag_templates: - - "--pull" - - "--label=org.opencontainers.image.created={{.Date}}" - - "--label=org.opencontainers.image.name={{.ProjectName}}" - - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" - - "--label=org.opencontainers.image.source={{.GitURL}}" - - "--platform=linux/arm64" + - --pull + - --label=org.opencontainers.image.created={{.Date}} + - --label=org.opencontainers.image.name={{.ProjectName}} + - --label=org.opencontainers.image.revision={{.FullCommit}} + - --label=org.opencontainers.image.version={{.Version}} + - --label=org.opencontainers.image.source={{.GitURL}} + - --platform=linux/arm64 goos: linux goarch: arm64 image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-arm64-s6" - - "filebrowser/filebrowser:v{{ .Major }}-arm64-s6" - extra_files: - - docker/root - - healthcheck.sh + - filebrowser/filebrowser:{{ .Tag }}-arm64-s6 + - filebrowser/filebrowser:v{{ .Major }}-arm64-s6 + extra_files: [docker/root, healthcheck.sh] docker_manifests: - - name_template: "filebrowser/filebrowser:latest" + - name_template: filebrowser/filebrowser:latest image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-amd64" - - "filebrowser/filebrowser:{{ .Tag }}-arm64" - - "filebrowser/filebrowser:{{ .Tag }}-armv7" - - name_template: "filebrowser/filebrowser:{{ .Tag }}" + - filebrowser/filebrowser:{{ .Tag }}-amd64 + - filebrowser/filebrowser:{{ .Tag }}-arm64 + - filebrowser/filebrowser:{{ .Tag }}-armv7 + - name_template: filebrowser/filebrowser:{{ .Tag }} image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-amd64" - - "filebrowser/filebrowser:{{ .Tag }}-arm64" - - "filebrowser/filebrowser:{{ .Tag }}-armv7" - - name_template: "filebrowser/filebrowser:v{{ .Major }}" + - filebrowser/filebrowser:{{ .Tag }}-amd64 + - filebrowser/filebrowser:{{ .Tag }}-arm64 + - filebrowser/filebrowser:{{ .Tag }}-armv7 + - name_template: filebrowser/filebrowser:v{{ .Major }} image_templates: - - "filebrowser/filebrowser:v{{ .Major }}-amd64" - - "filebrowser/filebrowser:v{{ .Major }}-arm64" - - "filebrowser/filebrowser:v{{ .Major }}-armv7" + - filebrowser/filebrowser:v{{ .Major }}-amd64 + - filebrowser/filebrowser:v{{ .Major }}-arm64 + - filebrowser/filebrowser:v{{ .Major }}-armv7 ## s6 image manifests - - name_template: "filebrowser/filebrowser:s6" + - name_template: filebrowser/filebrowser:s6 image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-amd64-s6" - - "filebrowser/filebrowser:{{ .Tag }}-arm64-s6" - - name_template: "filebrowser/filebrowser:{{ .Tag }}-s6" + - filebrowser/filebrowser:{{ .Tag }}-amd64-s6 + - filebrowser/filebrowser:{{ .Tag }}-arm64-s6 + - name_template: filebrowser/filebrowser:{{ .Tag }}-s6 image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-amd64-s6" - - "filebrowser/filebrowser:{{ .Tag }}-arm64-s6" - - name_template: "filebrowser/filebrowser:v{{ .Major }}-s6" + - filebrowser/filebrowser:{{ .Tag }}-amd64-s6 + - filebrowser/filebrowser:{{ .Tag }}-arm64-s6 + - name_template: filebrowser/filebrowser:v{{ .Major }}-s6 image_templates: - - "filebrowser/filebrowser:v{{ .Major }}-amd64-s6" - - "filebrowser/filebrowser:v{{ .Major }}-arm64-s6" + - filebrowser/filebrowser:v{{ .Major }}-amd64-s6 + - filebrowser/filebrowser:v{{ .Major }}-arm64-s6 brews: - name: filebrowser repository: @@ -198,5 +164,7 @@ brews: commit_author: name: FileBrowser Robot email: robot@filebrowser.org - description: File Browser is a create-your-own-cloud-kind of software where you can install it on a server, direct it to a path and then access your files through a nice web interface - license: "MIT" + description: File Browser is a create-your-own-cloud-kind of software where you + can install it on a server, direct it to a path and then access your files through + a nice web interface + license: MIT diff --git a/frontend/src/components/Sidebar.vue b/frontend/src/components/Sidebar.vue index 4d55cf0f..4c7e587e 100644 --- a/frontend/src/components/Sidebar.vue +++ b/frontend/src/components/Sidebar.vue @@ -94,13 +94,24 @@
File Browser - File Browser + + + File Browser + + + File Browser (fork) + + {{ " " }} {{ version }} diff --git a/frontend/src/components/files/VideoPlayer.vue b/frontend/src/components/files/VideoPlayer.vue index a1947f90..40ac4d3e 100644 --- a/frontend/src/components/files/VideoPlayer.vue +++ b/frontend/src/components/files/VideoPlayer.vue @@ -92,10 +92,17 @@ const initVideoPlayer = async () => { const getOptions = (...srcOpt: any[]) => { const options = { controlBar: { - skipButtons: { - forward: 5, - backward: 5, - }, + volumePanel: {}, + playbackRateButton: {}, + currentTimeDisplay: {}, + timeDivider: {}, + durationDisplay: {}, + remainingTimeDisplay: {}, + progressControl: {}, + liveDisplay: {}, + customControlSpacer: {}, + playToggle: {}, + fullscreenToggle: {}, }, html5: { nativeTextTracks: false,