From a4ecd8bca2bb2938871127dd888b5abd6e282924 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Sat, 25 Mar 2017 02:34:04 -0700 Subject: [PATCH] docs: Add config directory documentation/guide. (#3889) --- docs/config/README.md | 88 +++++++++++++++++++++++++++ docs/config/config.sample.json | 106 +++++++++++++++++++++++++++++++++ 2 files changed, 194 insertions(+) create mode 100644 docs/config/README.md create mode 100644 docs/config/config.sample.json diff --git a/docs/config/README.md b/docs/config/README.md new file mode 100644 index 000000000..5b7cb5a08 --- /dev/null +++ b/docs/config/README.md @@ -0,0 +1,88 @@ +# Minio Server `config.json` (v16) Guide [![Slack](https://slack.minio.io/slack?type=svg)](https://slack.minio.io) [![Go Report Card](https://goreportcard.com/badge/minio/minio)](https://goreportcard.com/report/minio/minio) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) [![codecov](https://codecov.io/gh/minio/minio/branch/master/graph/badge.svg)](https://codecov.io/gh/minio/minio) + +Minio server stores all its configuration data in `${HOME}/.minio/config.json` file by default. Following sections provide detailed explanation of each fields and how to customize them. A complete example of `config.json` is available [here](https://raw.githubusercontent.com/minio/minio/master/docs/config/config.sample.json) + +## Configuration Directory +The default configuration directory is `${HOME}/.minio`. You can override the default configuration directory using `--config-dir` command-line option. Minio server generates a new `config.json` with auto-generated access credentials when its started for the first time. + +```sh +minio server --config-dir /etc/minio +``` + +### Certificate Directory +TLS certificates are stored under ``${HOME}/.minio/certs`` directory. You need to place certificates here to enable `HTTPS` based access. Read more about [How to secure access to Minio server with TLS](http://docs.minio.io/docs/how-to-secure-access-to-minio-server-with-tls). + +Following is the directory structure for Minio server with TLS certificates. + +```sh +$ tree ~/.minio +/home/user1/.minio +├── certs +│   ├── CAs +│   ├── private.key +│   └── public.crt +└── config.json +``` + +### Configuration Fields +#### Version +|Field|Type|Description| +|:---|:---|:---| +|``version``|_string_| `version` determines the configuration file format. Any older version will be automatically be migrated to the latest version upon startup. [DO NOT EDIT THIS FIELD MANUALLY]| + +#### Credential +|Field|Type|Description| +|:---|:---|:---| +|``credential``| | Auth credential for object storage and web access.| +|``credential.accessKey`` | _string_ | Access key of 5 to 20 characters in length. You may override this field with `MINIO_ACCESS_KEY` environment variable.| +|``credential.secretKey`` | _string_ | Secret key of 8 to 40 characters in length. You may override this field with `MINIO_SECRET_KEY` environment variable.| + +Example: + +```sh +export MINIO_ACCESS_KEY=admin +export MINIO_SECRET_KEY=password +minio server ~/Photos +``` + +#### Region +|Field|Type|Description| +|:---|:---|:---| +|``region``| _string_ | `region` describes the physical location of the server. By default it is set to `us-east-1`, which is same as AWS3's default region. If you are unsure leave it to default.| + +#### Browser +|Field|Type|Description| +|:---|:---|:---| +|``browser``| _string_ | Enable or disable access to web UI. By default it is set to `on`. You may override this field with ``MINIO_BROWSER`` environment variable.| + +Example: + +```sh +export MINIO_BROWSER=off +minio server ~/Photos +``` + +#### Logger +|Field|Type|Description| +|:---|:---|:---| +|``logger ``| |Server logs errors and fatal messages via logger. You may enable one or more loggers at the same time.| +|``logger.console``| |Send log messages to console.| +|``logger.console.enable``| _bool_ | Enable or disable console logger. Default is set to _true_.| +|``logger.file``| |Send log message to a file.| +|``logger.file.enable``| _bool_ | Enable or disable file logger. Default is set to _false_.| +|``logger.file.filename``| _string_ | Path and name of the log file. Example: _/var/log/minio.log_ | + +#### Notify +|Field|Type|Description| +|:---|:---|:---| +|``notify``| |Notify enables bucket notification events for lambda computing via the following targets.| +|``notify.amqp``| |[Configure to publish Minio events via AMQP target.](http://docs.minio.io/docs/minio-bucket-notification-guide#AMQP)| +|``notify.elasticsearch``| |[Configure to publich Minio events via Elasticsearch target.](http://docs.minio.io/docs/minio-bucket-notification-guide#Elasticsearch)| +|``notify.redis``| |[Configure to publish Minio events via Redis target.](http://docs.minio.io/docs/minio-bucket-notification-guide#Redis)| +|``notify.nats``| |[Configure to publish Minio events via NATS target.](http://docs.minio.io/docs/minio-bucket-notification-guide#NATS)| +|``notify.postgresql``| |[Configure to publish Minio events via PostgreSQL target.](http://docs.minio.io/docs/minio-bucket-notification-guide#PostgreSQL)| +|``notify.kafka``| |[Configure to publish Minio events via Apache Kafka target.](http://docs.minio.io/docs/minio-bucket-notification-guide#apache-kafka)| +|``notify.webhook``| |[Configure to publish Minio events via Webhooks target.](http://docs.minio.io/docs/minio-bucket-notification-guide#webhooks)| + +## Explore Further +* [Minio Quickstart Guide](https://docs.minio.io/docs/minio-quickstart-guide) diff --git a/docs/config/config.sample.json b/docs/config/config.sample.json new file mode 100644 index 000000000..8e421c3fc --- /dev/null +++ b/docs/config/config.sample.json @@ -0,0 +1,106 @@ +{ + "version": "16", + "credential": { + "accessKey": "USWUXHGYZQYFYFFIT3RE", + "secretKey": "MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03" + }, + "region": "us-east-1", + "browser": "on", + "logger": { + "console": { + "enable": true + }, + "file": { + "enable": false, + "filename": "" + } + }, + "notify": { + "amqp": { + "1": { + "enable": true, + "url": "amqp://myuser:mypassword@localhost:5672", + "exchange": "bucketevents", + "routingKey": "bucketlogs", + "exchangeType": "fanout", + "mandatory": false, + "immediate": false, + "durable": false, + "internal": false, + "noWait": false, + "autoDeleted": false + } + }, + "nats": { + "1": { + "enable": true, + "address": "0.0.0.0:4222", + "subject": "bucketevents", + "username": "yourusername", + "password": "yoursecret", + "token": "", + "secure": false, + "pingInterval": 0 + "streaming": { + "enable": false, + "clusterID": "", + "clientID": "", + "async": false, + "maxPubAcksInflight": 0 + } + } + }, + "elasticsearch": { + "1": { + "enable": true, + "url": "http://127.0.0.1:9200", + "index": "bucketevents" + } + }, + "redis": { + "1": { + "enable": true, + "address": "127.0.0.1:6379", + "password": "yoursecret", + "key": "bucketevents" + } + }, + "postgresql": { + "1": { + "enable": true, + "connectionString": "", + "table": "bucketevents", + "host": "127.0.0.1", + "port": "5432", + "user": "postgres", + "password": "mypassword", + "database": "bucketevents_db" + } + }, + "kafka": { + "1": { + "enable": true, + "brokers": ["localhost:9092"], + "topic": "bucketevents" + } + }, + "webhook": { + "1": { + "enable": true, + "endpoint": "http://requestb.in/1525x9n1" + } + }, + "mysql": { + "1": { + "enable": true, + "dsnString": "", + "table": "minio_images", + "host": "172.17.0.1", + "port": "3306", + "user": "root", + "password": "password", + "database": "miniodb" + } + } + } +}