diff --git a/.github/workflows/jobs.yaml b/.github/workflows/jobs.yaml index 3c92c5948..8706578aa 100644 --- a/.github/workflows/jobs.yaml +++ b/.github/workflows/jobs.yaml @@ -22,7 +22,7 @@ jobs: runs-on: [ ubuntu-latest ] strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} @@ -84,7 +84,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Check out code @@ -141,7 +141,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} @@ -175,7 +175,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} @@ -222,7 +222,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Check out code @@ -263,7 +263,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Read .nvmrc @@ -299,7 +299,7 @@ jobs: timeout-minutes: 10 strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Check out code @@ -361,7 +361,7 @@ jobs: timeout-minutes: 10 strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Check out code @@ -419,7 +419,7 @@ jobs: timeout-minutes: 10 strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Check out code @@ -482,7 +482,7 @@ jobs: timeout-minutes: 15 strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Check out code @@ -534,7 +534,7 @@ jobs: runs-on: [ ubuntu-latest ] strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Check out code @@ -586,7 +586,7 @@ jobs: runs-on: [ ubuntu-latest ] strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Check out code @@ -638,7 +638,7 @@ jobs: runs-on: [ ubuntu-latest ] strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Check out code @@ -690,7 +690,7 @@ jobs: runs-on: [ ubuntu-latest ] strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Check out code @@ -742,7 +742,7 @@ jobs: runs-on: [ ubuntu-latest ] strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Check out code @@ -801,7 +801,7 @@ jobs: runs-on: [ ubuntu-latest ] strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Check out code @@ -862,7 +862,7 @@ jobs: runs-on: [ ubuntu-latest ] strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Check out code @@ -923,7 +923,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Check out code @@ -994,7 +994,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: @@ -1068,7 +1068,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: @@ -1146,7 +1146,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} @@ -1183,7 +1183,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} @@ -1220,7 +1220,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} @@ -1257,7 +1257,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} @@ -1294,7 +1294,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} @@ -1331,7 +1331,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} @@ -1367,7 +1367,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} @@ -1411,7 +1411,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} @@ -1456,7 +1456,7 @@ jobs: strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} @@ -1564,7 +1564,7 @@ jobs: strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} @@ -1630,7 +1630,7 @@ jobs: strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} @@ -1670,7 +1670,7 @@ jobs: echo "replace github.com/minio/console => ../" >> go.mod echo "updates to go.mod needed; to update it: go mod tidy" - go mod tidy -compat=1.18 + go mod tidy -compat=1.19 echo "Get git version to build MinIO Image"; VERSION=`git rev-parse HEAD`; @@ -1702,7 +1702,7 @@ jobs: strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] steps: @@ -1764,7 +1764,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [ 1.18.x ] + go-version: [ 1.19.x ] os: [ ubuntu-latest ] steps: - name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }} @@ -1856,7 +1856,7 @@ jobs: echo "download golang x tools" go mod download golang.org/x/tools echo "go mod tidy compat mode" - go mod tidy -compat=1.18 + go mod tidy -compat=1.19 echo "go build gocoverage.go" go build gocovmerge.go echo "put together the outs for final coverage resolution" diff --git a/.goreleaser.yml b/.goreleaser.yml index e004cc829..956f97be2 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -3,21 +3,20 @@ project_name: console release: - name_template: "Release version {{.Tag}}" - github: + name_template: "Release version {{.Tag}}" + github: owner: minio name: console - extra_files: - - glob: "*.minisig" + extra_files: + - glob: "*.minisig" before: hooks: # you may remove this if you don't use vgo - - go mod tidy -compat=1.18 + - go mod tidy -compat=1.19 builds: - - - goos: + - goos: - linux - darwin - windows @@ -47,15 +46,13 @@ builds: - -s -w -X github.com/minio/console/pkg.ReleaseTag={{.Tag}} -X github.com/minio/console/pkg.CommitID={{.FullCommit}} -X github.com/minio/console/pkg.Version={{.Version}} -X github.com/minio/console/pkg.ShortCommitID={{.ShortCommit}} -X github.com/minio/console/pkg.ReleaseTime={{.Date}} archives: - - - name_template: "{{ .ProjectName }}-{{ .Os }}-{{ .Arch }}" + - name_template: "{{ .ProjectName }}-{{ .Os }}-{{ .Arch }}" format: binary replacements: arm: arm signs: - - - signature: "${artifact}.minisig" + - signature: "${artifact}.minisig" cmd: "sh" args: - '-c' @@ -69,8 +66,7 @@ changelog: sort: asc nfpms: - - - vendor: MinIO, Inc. + - vendor: MinIO, Inc. homepage: https://github.com/minio/console maintainer: MinIO Development description: MinIO Console Server @@ -84,112 +80,112 @@ nfpms: dst: /etc/systemd/system/minio-console.service dockers: -- image_templates: - - "minio/console:{{ .Tag }}-amd64" - use: buildx - goarch: amd64 - dockerfile: Dockerfile.release - extra_files: - - LICENSE - - CREDITS - build_flag_templates: - - "--platform=linux/amd64" - - "--build-arg=TAG={{ .Tag }}" -- image_templates: - - "minio/console:{{ .Tag }}-ppc64le" - use: buildx - goarch: ppc64le - dockerfile: Dockerfile.release - extra_files: - - LICENSE - - CREDITS - build_flag_templates: - - "--platform=linux/ppc64le" - - "--build-arg=TAG={{ .Tag }}" -- image_templates: - - "minio/console:{{ .Tag }}-s390x" - use: buildx - goarch: s390x - dockerfile: Dockerfile.release - extra_files: - - LICENSE - - CREDITS - build_flag_templates: - - "--platform=linux/s390x" - - "--build-arg=TAG={{ .Tag }}" -- image_templates: - - "minio/console:{{ .Tag }}-arm64" - use: buildx - goarch: arm64 - goos: linux - dockerfile: Dockerfile.release - extra_files: - - LICENSE - - CREDITS - build_flag_templates: - - "--platform=linux/arm64" - - "--build-arg=TAG={{ .Tag }}" -- image_templates: - - "quay.io/minio/console:{{ .Tag }}-amd64" - use: buildx - goarch: amd64 - dockerfile: Dockerfile.release - extra_files: - - LICENSE - - CREDITS - build_flag_templates: - - "--platform=linux/amd64" - - "--build-arg=TAG={{ .Tag }}" -- image_templates: - - "quay.io/minio/console:{{ .Tag }}-ppc64le" - use: buildx - goarch: ppc64le - dockerfile: Dockerfile.release - extra_files: - - LICENSE - - CREDITS - build_flag_templates: - - "--platform=linux/ppc64le" - - "--build-arg=TAG={{ .Tag }}" -- image_templates: - - "quay.io/minio/console:{{ .Tag }}-s390x" - use: buildx - goarch: s390x - dockerfile: Dockerfile.release - extra_files: - - LICENSE - - CREDITS - build_flag_templates: - - "--platform=linux/s390x" - - "--build-arg=TAG={{ .Tag }}" -- image_templates: - - "quay.io/minio/console:{{ .Tag }}-arm64" - use: buildx - goarch: arm64 - goos: linux - dockerfile: Dockerfile.release - extra_files: - - LICENSE - - CREDITS - build_flag_templates: - - "--platform=linux/arm64" - - "--build-arg=TAG={{ .Tag }}" + - image_templates: + - "minio/console:{{ .Tag }}-amd64" + use: buildx + goarch: amd64 + dockerfile: Dockerfile.release + extra_files: + - LICENSE + - CREDITS + build_flag_templates: + - "--platform=linux/amd64" + - "--build-arg=TAG={{ .Tag }}" + - image_templates: + - "minio/console:{{ .Tag }}-ppc64le" + use: buildx + goarch: ppc64le + dockerfile: Dockerfile.release + extra_files: + - LICENSE + - CREDITS + build_flag_templates: + - "--platform=linux/ppc64le" + - "--build-arg=TAG={{ .Tag }}" + - image_templates: + - "minio/console:{{ .Tag }}-s390x" + use: buildx + goarch: s390x + dockerfile: Dockerfile.release + extra_files: + - LICENSE + - CREDITS + build_flag_templates: + - "--platform=linux/s390x" + - "--build-arg=TAG={{ .Tag }}" + - image_templates: + - "minio/console:{{ .Tag }}-arm64" + use: buildx + goarch: arm64 + goos: linux + dockerfile: Dockerfile.release + extra_files: + - LICENSE + - CREDITS + build_flag_templates: + - "--platform=linux/arm64" + - "--build-arg=TAG={{ .Tag }}" + - image_templates: + - "quay.io/minio/console:{{ .Tag }}-amd64" + use: buildx + goarch: amd64 + dockerfile: Dockerfile.release + extra_files: + - LICENSE + - CREDITS + build_flag_templates: + - "--platform=linux/amd64" + - "--build-arg=TAG={{ .Tag }}" + - image_templates: + - "quay.io/minio/console:{{ .Tag }}-ppc64le" + use: buildx + goarch: ppc64le + dockerfile: Dockerfile.release + extra_files: + - LICENSE + - CREDITS + build_flag_templates: + - "--platform=linux/ppc64le" + - "--build-arg=TAG={{ .Tag }}" + - image_templates: + - "quay.io/minio/console:{{ .Tag }}-s390x" + use: buildx + goarch: s390x + dockerfile: Dockerfile.release + extra_files: + - LICENSE + - CREDITS + build_flag_templates: + - "--platform=linux/s390x" + - "--build-arg=TAG={{ .Tag }}" + - image_templates: + - "quay.io/minio/console:{{ .Tag }}-arm64" + use: buildx + goarch: arm64 + goos: linux + dockerfile: Dockerfile.release + extra_files: + - LICENSE + - CREDITS + build_flag_templates: + - "--platform=linux/arm64" + - "--build-arg=TAG={{ .Tag }}" docker_manifests: -- name_template: minio/console:{{ .Tag }} - image_templates: - - minio/console:{{ .Tag }}-amd64 - - minio/console:{{ .Tag }}-arm64 - - minio/console:{{ .Tag }}-ppc64le - - minio/console:{{ .Tag }}-s390x -- name_template: quay.io/minio/console:{{ .Tag }} - image_templates: - - quay.io/minio/console:{{ .Tag }}-amd64 - - quay.io/minio/console:{{ .Tag }}-arm64 - - quay.io/minio/console:{{ .Tag }}-ppc64le - - quay.io/minio/console:{{ .Tag }}-s390x -- name_template: minio/console:latest - image_templates: - - minio/console:{{ .Tag }}-amd64 - - minio/console:{{ .Tag }}-arm64 - - minio/console:{{ .Tag }}-ppc64le - - minio/console:{{ .Tag }}-s390x + - name_template: minio/console:{{ .Tag }} + image_templates: + - minio/console:{{ .Tag }}-amd64 + - minio/console:{{ .Tag }}-arm64 + - minio/console:{{ .Tag }}-ppc64le + - minio/console:{{ .Tag }}-s390x + - name_template: quay.io/minio/console:{{ .Tag }} + image_templates: + - quay.io/minio/console:{{ .Tag }}-amd64 + - quay.io/minio/console:{{ .Tag }}-arm64 + - quay.io/minio/console:{{ .Tag }}-ppc64le + - quay.io/minio/console:{{ .Tag }}-s390x + - name_template: minio/console:latest + image_templates: + - minio/console:{{ .Tag }}-amd64 + - minio/console:{{ .Tag }}-arm64 + - minio/console:{{ .Tag }}-ppc64le + - minio/console:{{ .Tag }}-s390x diff --git a/Dockerfile b/Dockerfile index acab6f09f..a81d98e17 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,7 @@ RUN make build-static USER node -FROM golang:1.18 as golayer +FROM golang:1.19 as golayer RUN apt-get update -y && apt-get install -y ca-certificates diff --git a/README.md b/README.md index 729f9100e..4ca0f302a 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ A graphical user interface for [MinIO](https://github.com/minio/minio) | Dashboard | Creating a bucket | -| ------------- | ------------- | +|-------------------------------|-------------------------------| | ![Dashboard](images/pic1.png) | ![Dashboard](images/pic2.png) | @@ -31,16 +31,18 @@ A graphical user interface for [MinIO](https://github.com/minio/minio) ### Binary Releases -| OS | ARCH | Binary | +| OS | ARCH | Binary | |:-------:|:-------:|:----------------------------------------------------------------------------------------------------:| -| Linux | amd64 | [linux-amd64](https://github.com/minio/console/releases/latest/download/console-linux-amd64) | -| Linux | arm64 | [linux-arm64](https://github.com/minio/console/releases/latest/download/console-linux-arm64) | -| Linux | ppc64le | [linux-ppc64le](https://github.com/minio/console/releases/latest/download/console-linux-ppc64le) | -| Linux | s390x | [linux-s390x](https://github.com/minio/console/releases/latest/download/console-linux-s390x) | -| Apple | amd64 | [darwin-amd64](https://github.com/minio/console/releases/latest/download/console-darwin-amd64) | -| Windows | amd64 | [windows-amd64](https://github.com/minio/console/releases/latest/download/console-windows-amd64.exe) | +| Linux | amd64 | [linux-amd64](https://github.com/minio/console/releases/latest/download/console-linux-amd64) | +| Linux | arm64 | [linux-arm64](https://github.com/minio/console/releases/latest/download/console-linux-arm64) | +| Linux | ppc64le | [linux-ppc64le](https://github.com/minio/console/releases/latest/download/console-linux-ppc64le) | +| Linux | s390x | [linux-s390x](https://github.com/minio/console/releases/latest/download/console-linux-s390x) | +| Apple | amd64 | [darwin-amd64](https://github.com/minio/console/releases/latest/download/console-darwin-amd64) | +| Windows | amd64 | [windows-amd64](https://github.com/minio/console/releases/latest/download/console-windows-amd64.exe) | + +You can also verify the binary with [minisign](https://jedisct1.github.io/minisign/) by downloading the +corresponding [`.minisig`](https://github.com/minio/console/releases/latest) signature file. Then run: -You can also verify the binary with [minisign](https://jedisct1.github.io/minisign/) by downloading the corresponding [`.minisig`](https://github.com/minio/console/releases/latest) signature file. Then run: ``` minisign -Vm console-- -P RWTx5Zr1tiHQLwG9keckT0c45M3AGeHD6IvimQHpyRywVWGbP1aVSGav ``` @@ -48,13 +50,15 @@ minisign -Vm console-- -P RWTx5Zr1tiHQLwG9keckT0c45M3AGeHD6IvimQHpyRyw ### Docker Pull the latest release via: + ``` docker pull minio/console ``` ### Build from source + > You will need a working Go environment. Therefore, please follow [How to install Go](https://golang.org/doc/install). -> Minimum version required is go1.18 +> Minimum version required is go1.19 ``` go install github.com/minio/console/cmd/console@latest @@ -112,51 +116,54 @@ mc admin policy add myminio/ consoleAdmin admin.json mc admin policy set myminio consoleAdmin user=console ``` -> NOTE: Additionally, you can create policies to limit the privileges for other `console` users, for example, if you want the user to only have access to dashboard, buckets, notifications and watch page, the policy should look like this: +> NOTE: Additionally, you can create policies to limit the privileges for other `console` users, for example, if you +> want the user to only have access to dashboard, buckets, notifications and watch page, the policy should look like this: ```json { - "Version": "2012-10-17", - "Statement": [{ - "Action": [ - "admin:ServerInfo" - ], - "Effect": "Allow", - "Sid": "" - }, - { - "Action": [ - "s3:ListenBucketNotification", - "s3:PutBucketNotification", - "s3:GetBucketNotification", - "s3:ListMultipartUploadParts", - "s3:ListBucketMultipartUploads", - "s3:ListBucket", - "s3:HeadBucket", - "s3:GetObject", - "s3:GetBucketLocation", - "s3:AbortMultipartUpload", - "s3:CreateBucket", - "s3:PutObject", - "s3:DeleteObject", - "s3:DeleteBucket", - "s3:PutBucketPolicy", - "s3:DeleteBucketPolicy", - "s3:GetBucketPolicy" - ], - "Effect": "Allow", - "Resource": [ - "arn:aws:s3:::*" - ], - "Sid": "" - } - ] + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "admin:ServerInfo" + ], + "Effect": "Allow", + "Sid": "" + }, + { + "Action": [ + "s3:ListenBucketNotification", + "s3:PutBucketNotification", + "s3:GetBucketNotification", + "s3:ListMultipartUploadParts", + "s3:ListBucketMultipartUploads", + "s3:ListBucket", + "s3:HeadBucket", + "s3:GetObject", + "s3:GetBucketLocation", + "s3:AbortMultipartUpload", + "s3:CreateBucket", + "s3:PutObject", + "s3:DeleteObject", + "s3:DeleteBucket", + "s3:PutBucketPolicy", + "s3:DeleteBucketPolicy", + "s3:GetBucketPolicy" + ], + "Effect": "Allow", + "Resource": [ + "arn:aws:s3:::*" + ], + "Sid": "" + } + ] } ``` ## Start Console service: Before running console service, following environment settings must be supplied + ```sh # Salt to encrypt JWT payload export CONSOLE_PBKDF_PASSPHRASE=SECRET @@ -169,6 +176,7 @@ export CONSOLE_MINIO_SERVER=http://localhost:9000 ``` Now start the console service. + ``` ./console server 2021-01-19 02:36:08.893735 I | 2021/01/19 02:36:08 server.go:129: Serving console at http://localhost:9090 @@ -189,6 +197,7 @@ Copy your `public.crt` and `private.key` to `~/.console/certs`, then: For advanced users, `console` has support for multiple certificates to service clients through multiple domains. Following tree structure is expected for supporting multiple domains: + ```sh certs/ │ @@ -219,4 +228,5 @@ export CONSOLE_MINIO_SERVER=https://localhost:9000 You can verify that the apis work by doing the request on `localhost:9090/api/v1/...` # Contribute to console Project + Please follow console [Contributor's Guide](https://github.com/minio/console/blob/master/CONTRIBUTING.md) diff --git a/go.mod b/go.mod index 58cbfe9ec..83b44ff5a 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/minio/console -go 1.18 +go 1.19 require ( github.com/blang/semver/v4 v4.0.0