MinIO Console fork with ARM64 support
  • JavaScript 84.8%
  • TypeScript 7.7%
  • Go 7%
  • Shell 0.3%
  • Makefile 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Alex 2017f33b26
Release v2.0.4 (#3574)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2025-09-05 14:03:49 -07:00
.github Fixed UI security issues and updated project dependencies (#3556) 2025-06-18 17:57:15 -06:00
api Remove more unused APIs (#3537) 2025-05-14 15:41:50 -07:00
cmd/console Bump up minio/pkg to v3 (#3349) 2024-05-24 10:44:55 -07:00
docs/ldap Removing Operator UI (#2692) 2023-03-02 21:35:08 -06:00
hack add header linter to avoid license header mistakes (#1414) 2022-01-25 10:48:49 -08:00
images Update README.md screenshots (#3543) 2025-05-19 13:00:33 -07:00
integration Remove more unused APIs (#3537) 2025-05-14 15:41:50 -07:00
models Remove more unused APIs (#3537) 2025-05-14 15:41:50 -07:00
pkg Remove more unused APIs (#3537) 2025-05-14 15:41:50 -07:00
policies Pod Events (#807) 2021-06-17 16:24:22 -07:00
systemd Update doc links to new docs subdomain (#3573) 2025-09-05 11:49:47 -07:00
web-app Release v2.0.4 (#3574) 2025-09-05 14:03:49 -07:00
.gitignore Updated Packages & versions (#3525) 2025-04-03 01:29:17 -06:00
.golangci.bck.yml Updated Packages & versions (#3525) 2025-04-03 01:29:17 -06:00
.golangci.yml License modal improvements (#3567) 2025-07-29 01:38:35 -06:00
.license.tmpl add header linter to avoid license header mistakes (#1414) 2022-01-25 10:48:49 -08:00
.nvmrc Upgrade Dependencies (#2589) 2023-01-23 19:51:29 -08:00
.prettierrc.json Fix Set Policy on Groups with spaces (#3453) 2024-10-28 20:28:07 +01:00
.semgrepignore Rename portal-ui to web-app (#3178) 2023-12-29 11:44:01 -06:00
CHANGELOG.md Release v2.0.4 (#3574) 2025-09-05 14:03:49 -07:00
code_of_conduct.md add code of conduct, contributing and security guidelines (#61) 2020-04-09 12:04:15 -07:00
CONTRIBUTING.md Rename restapi to api (#3176) 2023-12-26 15:07:30 -06:00
CREDITS make sure go toolchain is correctly set (#3502) 2025-02-10 12:41:51 -08:00
cross-compile.sh Cross Compile in Parallel two archs at a time (#825) 2021-06-18 11:44:01 -07:00
DEVELOPMENT.md Remove all unnecessary Dockerfiles from repo (#3340) 2024-05-08 21:53:47 -06:00
generator.config.js Use automatic URI encoding (#3352) 2024-06-05 14:48:27 -07:00
go.mod Fixed UI security issues and updated project dependencies (#3556) 2025-06-18 17:57:15 -06:00
go.sum Fixed vulnerabilities in go packages (#3531) 2025-05-05 13:50:36 -07:00
LICENSE Add license file 2020-04-01 21:56:04 -07:00
Makefile Remove more unused APIs (#3537) 2025-05-14 15:41:50 -07:00
NOTICE Updated copyright tags to 2023 (#2631) 2023-02-06 20:32:49 -08:00
README.md docs: add more color to the readme (#3549) 2025-06-04 10:56:58 -07:00
SECURITY.md Ref Con for Login Page Links (#2694) 2023-03-06 16:12:25 -08:00
semgrep.yaml Use automatic URI encoding (#3352) 2024-06-05 14:48:27 -07:00
swagger.yml Remove more unused APIs (#3537) 2025-05-14 15:41:50 -07:00
verify-gofmt.sh Catch error in gofmt (#2266) 2022-08-29 19:28:39 -05:00
VULNERABILITY_REPORT.md update README.md to link the binaries 2021-02-04 23:49:56 -08:00
yarn.lock Release v1.7.4 (#3472) 2024-11-26 14:47:40 -06:00

MinIO Console

build license

A graphical user interface for MinIO

Object Browser Creating a bucket Object Details
Object Browser Dashboard Dashboard
Object Browser Dashboard Dashboard

Table of Contents

MinIO Console is a library that provides a management and browser UI overlay for the MinIO Server.

Setup

All console needs is a MinIO user with admin privileges and URL pointing to your MinIO deployment.

Note

We don't recommend using MinIO's Operator Credentials

1. Create a user console using mc

mc admin user add myminio/
Enter Access Key: console
Enter Secret Key: xxxxxxxx

2. Create a policy for console with admin access to all resources (for testing)

cat > admin.json << EOF
{
	"Version": "2012-10-17",
	"Statement": [{
			"Action": [
				"admin:*"
			],
			"Effect": "Allow",
			"Sid": ""
		},
		{
			"Action": [
                "s3:*"
			],
			"Effect": "Allow",
			"Resource": [
				"arn:aws:s3:::*"
			],
			"Sid": ""
		}
	]
}
EOF
mc admin policy create myminio/ consoleAdmin admin.json

3. Set the policy for the new console user

mc admin policy attach 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:

{
  "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

# Salt to encrypt JWT payload
export CONSOLE_PBKDF_PASSPHRASE=SECRET

# Required to encrypt JWT payload
export CONSOLE_PBKDF_SALT=SECRET

# MinIO Endpoint
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

By default console runs on port 9090 this can be changed with --port of your choice.

Start Console service with TLS:

Copy your public.crt and private.key to ~/.console/certs, then:

./console server
2021-01-19 02:36:08.893735 I | 2021/01/19 02:36:08 server.go:129: Serving console at http://[::]:9090
2021-01-19 02:36:08.893735 I | 2021/01/19 02:36:08 server.go:129: Serving console at https://[::]:9443

For advanced users, console has support for multiple certificates to service clients through multiple domains.

Following tree structure is expected for supporting multiple domains:

 certs/
  │
  ├─ public.crt
  ├─ private.key
  │
  ├─ example.com/
  │   │
  │   ├─ public.crt
  │   └─ private.key
  └─ foobar.org/
     │
     ├─ public.crt
     └─ private.key
  ...

Connect Console to a Minio using TLS and a self-signed certificate

Copy the MinIO ca.crt under ~/.console/certs/CAs, then:

export CONSOLE_MINIO_SERVER=https://localhost:9000
./console server

You can verify that the apis work by doing the request on localhost:9090/api/v1/...

Debug logging

In some cases it may be convenient to log all HTTP requests. This can be enabled by setting the CONSOLE_DEBUG_LOGLEVEL environment variable to one of the following values:

  • 0 (default) uses no logging.
  • 1 log single line per request for server-side errors (status-code 5xx).
  • 2 log single line per request for client-side and server-side errors (status-code 4xx/5xx).
  • 3 log single line per request for all requests (status-code 4xx/5xx).
  • 4 log details per request for server-side errors (status-code 5xx).
  • 5 log details per request for client-side and server-side errors (status-code 4xx/5xx).
  • 6 log details per request for all requests (status-code 4xx/5xx).

A single line logging has the following information:

  • Remote endpoint (IP + port) of the request. Note that reverse proxies may hide the actual remote endpoint of the client's browser.
  • HTTP method and URL
  • Status code of the response (websocket connections are hijacked, so no response is shown)
  • Duration of the request

The detailed logging also includes all request and response headers (if any).

Contribute to console Project

Please follow console Contributor's Guide