2019-04-09 14:39:42 -04:00
# MinIO File Browser
2017-01-23 21:07:22 -05:00
2019-04-09 14:39:42 -04:00
``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 ](./LICENSE ).
2017-01-23 21:07:22 -05:00
2020-05-25 13:09:12 -04:00
2017-01-23 21:07:22 -05:00
## Installation
2019-06-11 18:31:10 -04:00
### Install node
2017-01-23 21:07:22 -05:00
```sh
2019-06-11 18:31:10 -04:00
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
exec -l $SHELL
nvm install stable
2017-01-23 21:07:22 -05:00
```
2020-05-18 14:35:57 -04:00
### Install node dependencies
```sh
npm install
```
2017-02-01 16:12:13 -05:00
### Install `go-bindata` and `go-bindata-assetfs`
2017-01-23 21:07:22 -05:00
2019-08-15 19:00:50 -04:00
If you do not have a working Golang environment, please follow [Install Golang ](https://golang.org/doc/install )
2017-01-23 21:07:22 -05:00
```sh
2019-06-11 18:31:10 -04:00
go get github.com/go-bindata/go-bindata/go-bindata
go get github.com/elazarl/go-bindata-assetfs/go-bindata-assetfs
2017-01-23 21:07:22 -05:00
```
2017-02-01 16:12:13 -05:00
## Generating Assets
2017-01-23 21:07:22 -05:00
### Generate ui-assets.go
```sh
2019-06-11 18:31:10 -04:00
npm run release
2017-01-23 21:07:22 -05:00
```
2017-05-10 12:52:31 -04:00
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``
2017-02-01 16:12:13 -05:00
2020-05-25 13:09:12 -04:00
## Run MinIO Browser with live reload
2019-04-09 14:39:42 -04:00
### Run MinIO Browser with live reload
2017-01-23 21:07:22 -05:00
```sh
2019-06-11 18:31:10 -04:00
npm run dev
2017-01-23 21:07:22 -05:00
```
2020-05-25 13:09:12 -04:00
Open [http://localhost:8080/minio/ ](http://localhost:8080/minio/ ) in your browser to play with the application.
2017-02-01 16:12:13 -05:00
2019-04-09 14:39:42 -04:00
### Run MinIO Browser with live reload on custom port
2017-02-01 16:12:13 -05:00
Edit `browser/webpack.config.js`
```diff
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': {
2020-05-25 13:09:12 -04:00
target: 'http://localhost:9000',
2017-02-01 16:12:13 -05:00
@@ -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')
]
}
```
```sh
2019-06-11 18:31:10 -04:00
npm run dev
2017-02-01 16:12:13 -05:00
```
2020-05-25 13:09:12 -04:00
Open [http://localhost:8888/minio/ ](http://localhost:8888/minio/ ) in your browser to play with the application.
2020-05-18 14:35:57 -04:00
### Run MinIO Browser with live reload on any IP
Edit `browser/webpack.config.js`
```diff
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': {
2020-05-25 13:09:12 -04:00
target: 'http://localhost:9000',
```
2020-05-18 14:35:57 -04:00
2020-05-25 13:09:12 -04:00
```sh
npm run dev
2020-05-18 14:35:57 -04:00
```
2020-05-25 13:09:12 -04:00
Open [http://IP:8080/minio/ ](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 ](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git ) and [Docker ](https://docs.docker.com/get-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
2020-05-18 14:35:57 -04:00
```sh
2020-05-25 13:09:12 -04:00
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
```sh
docker exec -it minio-dev bash
```
Apply patch to allow access from outside container
```sh
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
```sh
cd /minio/browser
npm install
2020-05-18 14:35:57 -04:00
npm run dev
```
2020-05-25 13:09:12 -04:00
Open [http://IP:8080/minio/ ](http://IP:8080/minio/ ) in your browser to play with the application.