browser

package
v0.1.0-cvefix.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2022 License: Apache-2.0 Imports: 7 Imported by: 0

README

MinIO File Browser

MinIO Browser provides minimal set of UI to manage buckets and objects on minio server. MinIO Browser is written in javascript and released under Apache 2.0 License.

Installation

Install node
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
exec -l $SHELL
nvm install stable
Install node dependencies
npm install
Install go-bindata and go-bindata-assetfs

If you do not have a working Golang environment, please follow Install Golang

go get github.com/go-bindata/go-bindata/go-bindata
go get github.com/elazarl/go-bindata-assetfs/go-bindata-assetfs

Generating Assets

Generate ui-assets.go
npm run release

This generates ui-assets.go in the current directory. Now do make in the parent directory to build the minio binary with the newly generated ui-assets.go

Run MinIO Browser with live reload

Run MinIO Browser with live reload
npm run dev

Open http://localhost:8080/minio/ in your browser to play with the application.

Run MinIO Browser with live reload on custom port

Edit browser/webpack.config.js

diff --git a/browser/webpack.config.js b/browser/webpack.config.js
index 3ccdaba..9496c56 100644
--- a/browser/webpack.config.js
+++ b/browser/webpack.config.js
@@ -58,6 +58,7 @@ var exports = {
     historyApiFallback: {
       index: '/minio/'
     },
+    port: 8888,
     proxy: {
       '/minio/webrpc': {
         target: 'http://localhost:9000',
@@ -97,7 +98,7 @@ var exports = {
 if (process.env.NODE_ENV === 'dev') {
   exports.entry = [
     'webpack/hot/dev-server',
-    'webpack-dev-server/client?http://localhost:8080',
+    'webpack-dev-server/client?http://localhost:8888',
     path.resolve(__dirname, 'app/index.js')
   ]
 }
npm run dev

Open http://localhost:8888/minio/ in your browser to play with the application.

Run MinIO Browser with live reload on any IP

Edit browser/webpack.config.js

diff --git a/browser/webpack.config.js b/browser/webpack.config.js
index 8bdbba53..139f6049 100644
--- a/browser/webpack.config.js
+++ b/browser/webpack.config.js
@@ -71,6 +71,7 @@ var exports = {
     historyApiFallback: {
       index: '/minio/'
     },
+    host: '0.0.0.0',
     proxy: {
       '/minio/webrpc': {
         target: 'http://localhost:9000',
npm run dev

Open http://IP:8080/minio/ in your browser to play with the application.

Run tests

npm run test

Docker development environment

This approach will download the sources on your machine such that you are able to use your IDE or editor of choice. A Docker container will be used in order to provide a controlled build environment without messing with your host system.

Prepare host system

Install Git and Docker.

Development within container

Prepare and build container

git clone git@github.com:minio/minio.git
cd minio
docker build -t minio-dev -f Dockerfile.dev.browser .

Run container, build and run core

docker run -it --rm --name minio-dev -v "$PWD":/minio minio-dev

cd /minio/browser
npm install
npm run release
cd /minio
make
./minio server /data

Note Endpoint IP (the one which is not 127.0.0.1), AccessKey and SecretKey (both default to minioadmin) in order to enter them in the browser later.

Open another terminal. Connect to container

docker exec -it minio-dev bash

Apply patch to allow access from outside container

cd /minio
git apply --ignore-whitespace <<EOF
diff --git a/browser/webpack.config.js b/browser/webpack.config.js
index 8bdbba53..139f6049 100644
--- a/browser/webpack.config.js
+++ b/browser/webpack.config.js
@@ -71,6 +71,7 @@ var exports = {
     historyApiFallback: {
       index: '/minio/'
     },
+    host: '0.0.0.0',
     proxy: {
       '/minio/webrpc': {
         target: 'http://localhost:9000',
EOF

Build and run frontend with auto-reload

cd /minio/browser
npm install
npm run dev

Open http://IP:8080/minio/ in your browser to play with the application.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var UICommitID = "e2579b1f5a234eb695b33da879bc55ba1f6b98b5"
View Source
var UIReleaseTag = "RELEASE.2021-01-12T13-07-37Z"
View Source
var UIVersion = "2021-01-12T13:07:37Z"

Functions

func Asset

func Asset(name string) ([]byte, error)

Asset loads and returns the asset for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetDir

func AssetDir(name string) ([]string, error)

AssetDir returns the file names below a certain directory embedded in the file by go-bindata. For example if you run go-bindata on data/... and data contains the following hierarchy:

data/
  foo.txt
  img/
    a.png
    b.png

then AssetDir("data") would return []string{"foo.txt", "img"} AssetDir("data/img") would return []string{"a.png", "b.png"} AssetDir("foo.txt") and AssetDir("notexist") would return an error AssetDir("") will return []string{"data"}.

func AssetInfo

func AssetInfo(name string) (os.FileInfo, error)

AssetInfo loads and returns the asset info for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetNames

func AssetNames() []string

AssetNames returns the names of the assets.

func MustAsset

func MustAsset(name string) []byte

MustAsset is like Asset but panics when Asset would return an error. It simplifies safe initialization of global variables.

func RestoreAsset

func RestoreAsset(dir, name string) error

RestoreAsset restores an asset under the given directory

func RestoreAssets

func RestoreAssets(dir, name string) error

RestoreAssets restores an asset under the given directory recursively

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL