This is a Web UI for minio s3 server. Web UI works on top of REST API - adminio-API Build with Angular and mdbootstrap
Kind | Create | List | Update | Delete |
---|---|---|---|---|
Bucket | V | V | add/remove events, change lifecycle, manage quota, tags, policy, encryption | V |
User | V | V | update password, change policy | V |
Policy | V | V | V | V |
Group | V | V | add users to group, remove users, change policy | only if group is empty (has no members) |
- create multiple buckets at once
- fully editable policy constructor
- copy policies
- upload and download bucket lifecycles and policies
- bucket quota
docker-compose -f docker-compose.yml up
it will bring up:
- minio server on 9000 port
- adminio API on 8080 port
- adminio UI on 80 port
after that you can go to http://localhost
and try out
For a production ready demo, please see docker-stack.yml to boot up the following:
- adminio-ui
- adminio-api
Provided configuration will run the UI and the API on the same hostname. While the API component is exposed on a /api
route to avoid an otherwise necessary CORS setup.
The stack requires the following components to be setup externally:
- Docker Swarm (though minor with minor changes, this works with Compose)
- a running and to the stack accessible MinIO
- Traefik v1.7 (configured via labels)
- Traefik ingress via an attachable (Docker) network named
public
Before running make sure that you minio server and adminio-api is started.
docker run rzrbld/adminio-ui:latest
This example run only for test purposes, unless you running UI and API of adminio on the same server.
Environment | Description | Default |
---|---|---|
API_BASE_URL | adminio-api REST endpoint | http://localhost:8080 |
ADMINIO_PROD | production mode, can be true or false |
false |
ADMINIO_MULTI_BACKEND | multibackend mode, can be true or false |
false |
ADMINIO_BACKENDS | json obj with names and urls of all you adminio-api instances | [{"name":"myminio","url":"http://localhost:8080"},{"name":"localhost","url":"http://localhost:8081"},{"name":"error","url":"http://localhost:8082"}] |
NGX_ROOT_PATH | nginx location variable | / |
NGX_PORT | nginx port variable | 80 |
In real life cases you'll need to change this environment variables at Dockerfile
- API_BASE_URL
which points to adminio-api REST endpoint and ADMINIO_PROD
which can be set to true
or false
.
If you run multiple instances of adminio-api you can set ADMINIO_MULTI_BACKEND
to true
and fill ADMINIO_BACKENDS
example with needed urls and names. Please note - in this case you still need points API_BASE_URL
to one of this instances. And then build a docker image.
go to Helm chart repo
Method that described above also works if you build with npm run build
.
In this case example command will be look like this $ export API_BASE_URL=http://example.com:8099 && export ADMINIO_PROD=false && npm run build
after that distributive can be obtained at ./dist
folder.
If you build project with ng build
you will need to set adminio-api REST endpoint at apiBaseUrl
variable in file src/environments/environment.ts
or src/environments/environment.prod.ts
.
by default apiBaseUrl variable
is set to http://localhost:8080
.
in this case example command will be look like this - $ export API_BASE_URL=http://example.com:8099 && export ADMINIO_PROD=false && npm start
it will bring up a dev server on port 4201. Navigate to http://localhost:4201/
. The app will automatically reload if you change any of the source files.
you will need to set adminio-api REST endpoint at apiBaseUrl
variable in file src/environments/environment.ts
or src/environments/environment.prod.ts
then run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.