moved files to src
|
@ -1,3 +0,0 @@
|
||||||
*
|
|
||||||
!docker/*
|
|
||||||
!filebrowser
|
|
121
.golangci.yml
|
@ -1,121 +0,0 @@
|
||||||
linters-settings:
|
|
||||||
dupl:
|
|
||||||
threshold: 100
|
|
||||||
exhaustive:
|
|
||||||
default-signifies-exhaustive: false
|
|
||||||
funlen:
|
|
||||||
lines: 100
|
|
||||||
statements: 50
|
|
||||||
gci:
|
|
||||||
local-prefixes: github.com/filebrowser/filebrowser
|
|
||||||
goconst:
|
|
||||||
min-len: 2
|
|
||||||
min-occurrences: 2
|
|
||||||
gocritic:
|
|
||||||
enabled-tags:
|
|
||||||
- diagnostic
|
|
||||||
- experimental
|
|
||||||
- opinionated
|
|
||||||
- performance
|
|
||||||
- style
|
|
||||||
disabled-checks:
|
|
||||||
- dupImport # https://github.com/go-critic/go-critic/issues/845
|
|
||||||
- ifElseChain
|
|
||||||
- octalLiteral
|
|
||||||
- whyNoLint
|
|
||||||
- wrapperFunc
|
|
||||||
gocyclo:
|
|
||||||
min-complexity: 15
|
|
||||||
goimports:
|
|
||||||
local-prefixes: github.com/filebrowser/filebrowser
|
|
||||||
gomnd:
|
|
||||||
settings:
|
|
||||||
mnd:
|
|
||||||
# don't include the "operation" and "assign"
|
|
||||||
checks: argument,case,condition,return
|
|
||||||
govet:
|
|
||||||
check-shadowing: true
|
|
||||||
lll:
|
|
||||||
line-length: 140
|
|
||||||
maligned:
|
|
||||||
suggest-new: true
|
|
||||||
misspell:
|
|
||||||
locale: US
|
|
||||||
nolintlint:
|
|
||||||
allow-leading-space: true # don't require machine-readable nolint directives (i.e. with no leading space)
|
|
||||||
allow-unused: false # report any unused nolint directives
|
|
||||||
require-explanation: false # don't require an explanation for nolint directives
|
|
||||||
require-specific: false # don't require nolint directives to be specific about which linter is being skipped
|
|
||||||
|
|
||||||
linters:
|
|
||||||
# please, do not use `enable-all`: it's deprecated and will be removed soon.
|
|
||||||
# inverted configuration with `enable-all` and `disable` is not scalable during updates of golangci-lint
|
|
||||||
disable-all: true
|
|
||||||
enable:
|
|
||||||
- bodyclose
|
|
||||||
- deadcode
|
|
||||||
- depguard
|
|
||||||
- dogsled
|
|
||||||
- dupl
|
|
||||||
- errcheck
|
|
||||||
- exportloopref
|
|
||||||
- exhaustive
|
|
||||||
- funlen
|
|
||||||
- gochecknoinits
|
|
||||||
- goconst
|
|
||||||
- gocritic
|
|
||||||
- gocyclo
|
|
||||||
- goimports
|
|
||||||
- gomnd
|
|
||||||
- goprintffuncname
|
|
||||||
- gosec
|
|
||||||
- gosimple
|
|
||||||
- govet
|
|
||||||
- ineffassign
|
|
||||||
- lll
|
|
||||||
- misspell
|
|
||||||
- nakedret
|
|
||||||
- nolintlint
|
|
||||||
- rowserrcheck
|
|
||||||
- staticcheck
|
|
||||||
- structcheck
|
|
||||||
- stylecheck
|
|
||||||
- typecheck
|
|
||||||
- unconvert
|
|
||||||
- unparam
|
|
||||||
- unused
|
|
||||||
- varcheck
|
|
||||||
- whitespace
|
|
||||||
- prealloc
|
|
||||||
|
|
||||||
issues:
|
|
||||||
exclude-rules:
|
|
||||||
- path: cmd/.*.go
|
|
||||||
linters:
|
|
||||||
- gochecknoinits
|
|
||||||
- path: .*_test.go
|
|
||||||
linters:
|
|
||||||
- lll
|
|
||||||
- gochecknoinits
|
|
||||||
- gocyclo
|
|
||||||
- funlen
|
|
||||||
- dupl
|
|
||||||
- scopelint
|
|
||||||
- text: "Auther"
|
|
||||||
linters:
|
|
||||||
- misspell
|
|
||||||
- text: "strconv.Parse"
|
|
||||||
linters:
|
|
||||||
- gomnd
|
|
||||||
|
|
||||||
run:
|
|
||||||
go: '1.18'
|
|
||||||
skip-dirs:
|
|
||||||
- frontend/
|
|
||||||
skip-files:
|
|
||||||
- http/rice-box.go
|
|
||||||
|
|
||||||
# golangci.com configuration
|
|
||||||
# https://github.com/golangci/golangci/wiki/Configuration
|
|
||||||
service:
|
|
||||||
golangci-lint-version: 1.27.x # use the fixed version to not introduce new linters unexpectedly
|
|
240
.goreleaser.yml
|
@ -1,240 +0,0 @@
|
||||||
project_name: filebrowser
|
|
||||||
|
|
||||||
env:
|
|
||||||
- GO111MODULE=on
|
|
||||||
|
|
||||||
build:
|
|
||||||
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 }}
|
|
||||||
main: main.go
|
|
||||||
binary: filebrowser
|
|
||||||
goos:
|
|
||||||
- darwin
|
|
||||||
- linux
|
|
||||||
- windows
|
|
||||||
- freebsd
|
|
||||||
goarch:
|
|
||||||
- amd64
|
|
||||||
- 386
|
|
||||||
- arm
|
|
||||||
- arm64
|
|
||||||
goarm:
|
|
||||||
- 5
|
|
||||||
- 6
|
|
||||||
- 7
|
|
||||||
ignore:
|
|
||||||
- goos: darwin
|
|
||||||
goarch: 386
|
|
||||||
- goos: freebsd
|
|
||||||
goarch: arm
|
|
||||||
|
|
||||||
archives:
|
|
||||||
-
|
|
||||||
name_template: "{{.Os}}-{{.Arch}}{{if .Arm}}v{{.Arm}}{{end}}-{{ .ProjectName }}"
|
|
||||||
format: tar.gz
|
|
||||||
format_overrides:
|
|
||||||
- goos: windows
|
|
||||||
format: zip
|
|
||||||
|
|
||||||
dockers:
|
|
||||||
-
|
|
||||||
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"
|
|
||||||
goos: linux
|
|
||||||
goarch: amd64
|
|
||||||
image_templates:
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-amd64"
|
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-amd64"
|
|
||||||
extra_files:
|
|
||||||
- docker_config.json
|
|
||||||
-
|
|
||||||
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"
|
|
||||||
goos: linux
|
|
||||||
goarch: arm64
|
|
||||||
image_templates:
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-arm64"
|
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-arm64"
|
|
||||||
extra_files:
|
|
||||||
- docker_config.json
|
|
||||||
-
|
|
||||||
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"
|
|
||||||
goos: linux
|
|
||||||
goarch: arm
|
|
||||||
goarm: '6'
|
|
||||||
image_templates:
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-armv6"
|
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-armv6"
|
|
||||||
extra_files:
|
|
||||||
- docker_config.json
|
|
||||||
-
|
|
||||||
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"
|
|
||||||
goos: linux
|
|
||||||
goarch: arm
|
|
||||||
goarm: '7'
|
|
||||||
image_templates:
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-armv7"
|
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-armv7"
|
|
||||||
extra_files:
|
|
||||||
- docker_config.json
|
|
||||||
## s6 based docker images
|
|
||||||
-
|
|
||||||
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"
|
|
||||||
goos: linux
|
|
||||||
goarch: amd64
|
|
||||||
image_templates:
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-amd64-s6"
|
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-amd64-s6"
|
|
||||||
extra_files:
|
|
||||||
- docker/root
|
|
||||||
-
|
|
||||||
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"
|
|
||||||
goos: linux
|
|
||||||
goarch: arm64
|
|
||||||
image_templates:
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-arm64-s6"
|
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-arm64-s6"
|
|
||||||
extra_files:
|
|
||||||
- docker/root
|
|
||||||
-
|
|
||||||
dockerfile: Dockerfile.s6.armhf
|
|
||||||
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"
|
|
||||||
goos: linux
|
|
||||||
goarch: arm
|
|
||||||
goarm: '6'
|
|
||||||
image_templates:
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-armv6-s6"
|
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-armv6-s6"
|
|
||||||
extra_files:
|
|
||||||
- docker/root
|
|
||||||
-
|
|
||||||
dockerfile: Dockerfile.s6.armhf
|
|
||||||
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"
|
|
||||||
goos: linux
|
|
||||||
goarch: arm
|
|
||||||
goarm: '7'
|
|
||||||
image_templates:
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-armv7-s6"
|
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-armv7-s6"
|
|
||||||
extra_files:
|
|
||||||
- docker/root
|
|
||||||
docker_manifests:
|
|
||||||
- name_template: "filebrowser/filebrowser:latest"
|
|
||||||
image_templates:
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-amd64"
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-arm64"
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-armv6"
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-armv7"
|
|
||||||
- name_template: "filebrowser/filebrowser:{{ .Tag }}"
|
|
||||||
image_templates:
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-amd64"
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-arm64"
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-armv6"
|
|
||||||
- "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 }}-armv6"
|
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-armv7"
|
|
||||||
## s6 image manifests
|
|
||||||
- name_template: "filebrowser/filebrowser:s6"
|
|
||||||
image_templates:
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-amd64-s6"
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-arm64-s6"
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-armv6-s6"
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-armv7-s6"
|
|
||||||
- name_template: "filebrowser/filebrowser:{{ .Tag }}-s6"
|
|
||||||
image_templates:
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-amd64-s6"
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-arm64-s6"
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-armv6-s6"
|
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-armv7-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 }}-armv6-s6"
|
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-armv7-s6"
|
|
||||||
brews:
|
|
||||||
- name: filebrowser
|
|
||||||
tap:
|
|
||||||
owner: filebrowser
|
|
||||||
name: homebrew-tap
|
|
||||||
folder: Formula
|
|
||||||
homepage: https://filebrowser.org
|
|
||||||
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"
|
|
24
Dockerfile
|
@ -1,7 +1,20 @@
|
||||||
|
FROM node:14.21-slim as nbuild
|
||||||
|
WORKDIR /app
|
||||||
|
COPY ./src/frontend ./
|
||||||
|
RUN npm i
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
FROM golang:alpine as base
|
||||||
|
WORKDIR /app
|
||||||
|
COPY ./src/ ./
|
||||||
|
COPY --from=nbuild /app/dist ./frontend/dist
|
||||||
|
RUN go build -o filebrowser .
|
||||||
|
|
||||||
FROM alpine:latest
|
FROM alpine:latest
|
||||||
RUN apk --update add ca-certificates \
|
RUN apk --no-cache add \
|
||||||
mailcap \
|
ca-certificates \
|
||||||
curl
|
mailcap \
|
||||||
|
curl
|
||||||
|
|
||||||
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s \
|
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s \
|
||||||
CMD curl -f http://localhost/health || exit 1
|
CMD curl -f http://localhost/health || exit 1
|
||||||
|
@ -9,7 +22,6 @@ HEALTHCHECK --start-period=2s --interval=5s --timeout=3s \
|
||||||
VOLUME /srv
|
VOLUME /srv
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|
||||||
COPY docker_config.json /.filebrowser.json
|
COPY --from=base /app/docker_config.json /.filebrowser.json
|
||||||
COPY filebrowser /filebrowser
|
COPY --from=base /app/filebrowser /filebrowser
|
||||||
|
|
||||||
ENTRYPOINT [ "/filebrowser" ]
|
ENTRYPOINT [ "/filebrowser" ]
|
|
@ -1,16 +0,0 @@
|
||||||
FROM ghcr.io/linuxserver/baseimage-alpine:3.14
|
|
||||||
|
|
||||||
RUN apk --update add ca-certificates \
|
|
||||||
mailcap \
|
|
||||||
curl
|
|
||||||
|
|
||||||
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s \
|
|
||||||
CMD curl -f http://localhost/health || exit 1
|
|
||||||
|
|
||||||
# copy local files
|
|
||||||
COPY docker/root/ /
|
|
||||||
COPY filebrowser /usr/bin/filebrowser
|
|
||||||
|
|
||||||
# ports and volumes
|
|
||||||
VOLUME /srv /config /database
|
|
||||||
EXPOSE 80
|
|
|
@ -1,16 +0,0 @@
|
||||||
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.14
|
|
||||||
|
|
||||||
RUN apk --update add ca-certificates \
|
|
||||||
mailcap \
|
|
||||||
curl
|
|
||||||
|
|
||||||
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s \
|
|
||||||
CMD curl -f http://localhost/health || exit 1
|
|
||||||
|
|
||||||
# copy local files
|
|
||||||
COPY docker/root/ /
|
|
||||||
COPY filebrowser /usr/bin/filebrowser
|
|
||||||
|
|
||||||
# ports and volumes
|
|
||||||
VOLUME /srv /config /database
|
|
||||||
EXPOSE 80
|
|
|
@ -1,16 +0,0 @@
|
||||||
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.14
|
|
||||||
|
|
||||||
RUN apk --update add ca-certificates \
|
|
||||||
mailcap \
|
|
||||||
curl
|
|
||||||
|
|
||||||
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s \
|
|
||||||
CMD curl -f http://localhost/health || exit 1
|
|
||||||
|
|
||||||
# copy local files
|
|
||||||
COPY docker/root/ /
|
|
||||||
COPY filebrowser /usr/bin/filebrowser
|
|
||||||
|
|
||||||
# ports and volumes
|
|
||||||
VOLUME /srv /config /database
|
|
||||||
EXPOSE 80
|
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 843 B After Width: | Height: | Size: 843 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
@ -14,7 +14,7 @@ export default async function search(base, query) {
|
||||||
let data = await res.json();
|
let data = await res.json();
|
||||||
|
|
||||||
data = data.map((item) => {
|
data = data.map((item) => {
|
||||||
item.url = `/files${base}` + url.encodePath(item.path);
|
item.url = `/${base}` + url.encodePath(item.path);
|
||||||
|
|
||||||
if (item.dir) {
|
if (item.dir) {
|
||||||
item.url += "/";
|
item.url += "/";
|