1
0
mirror of https://github.com/mainflux/mainflux.git synced 2025-04-24 13:48:49 +08:00

MF-1342 - Use environment variables in docker-compose to use tagged version of image (#1343)

* add MF_RELEASE_TAG

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* update readme file for MF_RELEASE_TAG

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* update readme file for MF_RELEASE_TAG

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix explanation, space

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix bad search/replace

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix bad search/replace

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* minor changes

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix readme

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* improve explanation for tag

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* replace snippet with link to code section

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* improve explanation for tag

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* replace snippet with link to code section

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* remove MF_RELEASE_TAG from service readme

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
This commit is contained in:
Mirko Teodorovic 2021-02-02 16:26:02 +01:00 committed by GitHub
parent a3dbfecb2d
commit 39a649c1bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 117 additions and 556 deletions

3
.env
View File

@ -300,3 +300,6 @@ MF_SMTP_NOTIFIER_DB_PORT=5432
MF_SMTP_NOTIFIER_DB_USER=mainflux
MF_SMTP_NOTIFIER_DB_PASS=mainflux
MF_SMTP_NOTIFIER_DB=subscriptions
# Docker image tag
MF_RELEASE_TAG=latest

View File

@ -62,6 +62,18 @@ This will bring up the Mainflux docker services and interconnect them. This comm
make run
```
If you want to run services from specific release checkout code from github and make sure that
`MF_RELEASE_TAG` in [.env](.env) is being set to match the release version
```
git checkout tags/0.10.0 -b 0.10.0
```
```
#.env:
MF_RELEASE_TAG=0.10.0
```
**docker-compose is meant and designed to be used for development and testing environments, for production we suggest using** [Kubernetes](https://mainflux.readthedocs.io/en/latest/kubernetes/)
## Usage
The quickest way to start using Mainflux is via the CLI. The latest version can be downloaded from the [official releases page][rel].

View File

@ -59,36 +59,9 @@ default values.
## Deployment
The service itself is distributed as Docker container. The following snippet
provides a compose file template that can be used to deploy the service container
locally:
The service itself is distributed as Docker container. Check the [`auth`](https://github.com/mainflux/mainflux/blob/master/docker/docker-compose.yml#L71-L94) service section in
docker-compose to see how service is deployed.
```yaml
version: "3.7"
services:
auth:
image: mainflux/auth:[version]
container_name: [instance name]
ports:
- [host machine port]:[configured HTTP port]
environment:
MF_AUTH_LOG_LEVEL: [Service log level]
MF_AUTH_DB_HOST: [Database host address]
MF_AUTH_DB_PORT: [Database host port]
MF_AUTH_DB_USER: [Database user]
MF_AUTH_DB_PASS: [Database password]
MF_AUTH_DB: [Name of the database used by the service]
MF_AUTH_DB_SSL_MODE: [SSL mode to connect to the database with]
MF_AUTH_DB_SSL_CERT: [Path to the PEM encoded certificate file]
MF_AUTH_DB_SSL_KEY: [Path to the PEM encoded key file]
MF_AUTH_DB_SSL_ROOT_CERT: [Path to the PEM encoded root certificate file]
MF_AUTH_HTTP_PORT: [Service HTTP port]
MF_AUTH_GRPC_PORT: [Service gRPC port]
MF_AUTH_SECRET: [String used for signing tokens]
MF_AUTH_SERVER_CERT: [String path to server certificate in pem format]
MF_AUTH_SERVER_KEY: [String path to server key in pem format]
MF_JAEGER_URL: [Jaeger server URL]
```
To start the service outside of the container, execute the following shell script:

View File

@ -68,50 +68,8 @@ The service is configured using the environment variables presented in the follo
## Deployment
The service itself is distributed as Docker container. The following snippet
provides a compose file template that can be used to deploy the service container
locally:
```yaml
version: "3.7"
bootstrap:
image: mainflux/bootstrap:latest
container_name: mainflux-bootstrap
depends_on:
- bootstrap-db
restart: on-failure
ports:
- 8200:8200
environment:
MF_BOOTSTRAP_LOG_LEVEL: [Bootstrap log level]
MF_BOOTSTRAP_DB_HOST: [Database host address]
MF_BOOTSTRAP_DB_PORT: [Database host port]
MF_BOOTSTRAP_DB_USER: [Database user]
MF_BOOTSTRAP_DB_PASS: [Database password]
MF_BOOTSTRAP_DB: [Name of the database used by the service]
MF_BOOTSTRAP_DB_SSL_MODE: [SSL mode to connect to the database with]
MF_BOOTSTRAP_DB_SSL_CERT: [Path to the PEM encoded certificate file]
MF_BOOTSTRAP_DB_SSL_KEY: [Path to the PEM encoded key file]
MF_BOOTSTRAP_DB_SSL_ROOT_CERT: [Path to the PEM encoded root certificate file]
MF_BOOTSTRAP_ENCRYPT_KEY: [Hex-encoded encryption key used for secure bootstrap]
MF_BOOTSTRAP_CLIENT_TLS: [Boolean value to enable/disable client TLS]
MF_BOOTSTRAP_CA_CERTS: [Path to trusted CAs in PEM format]
MF_BOOTSTRAP_PORT: 8200
MF_BOOTSTRAP_SERVER_CERT: [String path to server cert in pem format]
MF_BOOTSTRAP_SERVER_KEY: [String path to server key in pem format]
MF_SDK_BASE_URL: [Base SDK URL for the Mainflux services]
MF_SDK_THINGS_PREFIX: [SDK prefix for Things service]
MF_THINGS_ES_URL: [Things service event source URL]
MF_THINGS_ES_PASS: [Things service event source password]
MF_THINGS_ES_DB: [Things service event source database]
MF_BOOTSTRAP_ES_URL: [Bootstrap service event source URL]
MF_BOOTSTRAP_ES_PASS: [Bootstrap service event source password]
MF_BOOTSTRAP_ES_DB: [Bootstrap service event source database]
MF_BOOTSTRAP_EVENT_CONSUMER: [Bootstrap service event source consumer name]
MF_JAEGER_URL: [Jaeger server URL]
MF_AUTH_GRPC_URL: [Auth service gRPC URL]
MF_AUTH_GRPC_TIMEOUT: [Auth service gRPC request timeout in seconds]
```
The service itself is distributed as Docker container. Check the [`boostrap`](https://github.com/mainflux/mainflux/blob/master/docker/addons/bootstrap/docker-compose.yml#L32-L56) service section in
docker-compose to see how service is deployed.
To start the service outside of the container, execute the following shell script:

View File

@ -23,28 +23,8 @@ default values.
## Deployment
The service is distributed as Docker container. The following snippet provides
a compose file template that can be used to deploy the service container locally:
```yaml
version: "3.7"
services:
adapter:
image: mainflux/coap:[version]
container_name: [instance name]
ports:
- [host machine port]:[configured port]
environment:
MF_COAP_ADAPTER_PORT: [Service HTTP port]
MF_NATS_URL: [NATS instance URL]
MF_COAP_ADAPTER_LOG_LEVEL: [Service log level]
MF_COAP_ADAPTER_CLIENT_TLS: [Flag that indicates if TLS should be turned on]
MF_COAP_ADAPTER_CA_CERTS: [Path to trusted CAs in PEM format]
MF_COAP_ADAPTER_PING_PERIOD: [Hours between 1 and 24 to ping client with ACK message]
MF_JAEGER_URL: [Jaeger server URL]
MF_THINGS_AUTH_GRPC_URL: [Things service Auth gRPC URL]
MF_THINGS_AUTH_GRPC_TIMEOUT: [Things service Auth gRPC request timeout in seconds]
```
The service itself is distributed as Docker container. Check the [`coap-adapter`](https://github.com/mainflux/mainflux/blob/master/docker/docker-compose.yml#L273-L291) service section in
docker-compose to see how service is deployed.
Running this service outside of container requires working instance of the NATS service.
To start the service outside of the container, execute the following shell script:

View File

@ -23,32 +23,8 @@ default values.
| MF_CASSANDRA_WRITER_TRANSFORMER | Message transformer type | senml |
## Deployment
```yaml
version: "3.7"
cassandra-writer:
image: mainflux/cassandra-writer:[version]
container_name: [instance name]
expose:
- [Service HTTP port]
restart: on-failure
environment:
MF_NATS_URL: [NATS instance URL]
MF_CASSANDRA_WRITER_LOG_LEVEL: [Cassandra writer log level]
MF_CASSANDRA_WRITER_PORT: [Service HTTP port]
MF_CASSANDRA_WRITER_DB_CLUSTER: [Cassandra cluster comma separated addresses]
MF_CASSANDRA_WRITER_DB_KEYSPACE: [Cassandra keyspace name]
MF_CASSANDRA_WRITER_DB_USER: [Cassandra DB username]
MF_CASSANDRA_WRITER_DB_PASS: [Cassandra DB password]
MF_CASSANDRA_WRITER_DB_PORT: [Cassandra DB port]
MF_CASSANDRA_WRITER_CONFIG_PATH: [Configuration file path with NATS subjects list]
MF_CASSANDRA_WRITER_CONTENT_TYPE: [Message payload Content Type]
MF_CASSANDRA_WRITER_TRANSFORMER: [Message transformer type]
ports:
- [host machine port]:[configured HTTP port]
volume:
- ./config.toml:/config.toml
```
The service itself is distributed as Docker container. Check the [`cassandra-writer`](https://github.com/mainflux/mainflux/blob/master/docker/addons/cassandra-writer/docker-compose.yml#L30-L49) service section in
docker-compose to see how service is deployed.
To start the service, execute the following shell script:

View File

@ -24,31 +24,8 @@ default values.
## Deployment
```yaml
version: "3.7"
influxdb-writer:
image: mainflux/influxdb:[version]
container_name: [instance name]
expose:
- [Service HTTP port]
restart: on-failure
environment:
MF_NATS_URL: [NATS instance URL]
MF_INFLUX_WRITER_LOG_LEVEL: [Influx writer log level]
MF_INFLUX_WRITER_PORT: [Service HTTP port]
MF_INFLUX_WRITER_DB: [InfluxDB name]
MF_INFLUX_WRITER_DB_HOST: [InfluxDB host]
MF_INFLUX_WRITER_DB_PORT: [InfluxDB port]
MF_INFLUX_WRITER_DB_USER: [InfluxDB admin user]
MF_INFLUX_WRITER_DB_PASS: [InfluxDB admin password]
MF_INFLUX_WRITER_CONFIG_PATH: [Configuration file path with NATS subjects list]
MF_INFLUX_WRITER_CONTENT_TYPE: [Message payload Content Type]
MF_INFLUX_WRITER_TRANSFORMER: [Message transformer type]
ports:
- [host machine port]:[configured HTTP port]
volume:
- ./subjects.yaml:/config/subjects.yaml
```
The service itself is distributed as Docker container. Check the [`influxdb-writer`](https://github.com/mainflux/mainflux/blob/master/docker/addons/influxdb-writer/docker-compose.yml#L35-L58) service section in
docker-compose to see how service is deployed.
To start the service, execute the following shell script:

View File

@ -22,32 +22,8 @@ default values.
## Deployment
```yaml
version: "3.7"
mongodb-writer:
image: mainflux/mongodb-writer:[version]
container_name: [instance name]
depends_on:
- mongodb
- nats
expose:
- [Service HTTP port]
restart: on-failure
environment:
MF_NATS_URL: [NATS instance URL]
MF_MONGO_WRITER_LOG_LEVEL: [MongoDB writer log level]
MF_MONGO_WRITER_PORT: [Service HTTP port]
MF_MONGO_WRITER_DB: [MongoDB name]
MF_MONGO_WRITER_DB_HOST: [MongoDB host]
MF_MONGO_WRITER_DB_PORT: [MongoDB port]
MF_MONGO_WRITER_CONFIG_PATH: [Configuration file path with NATS subjects list]
MF_MONGO_WRITER_CONTENT_TYPE: [Message payload Content Type]
MF_MONGO_WRITER_TRANSFORMER: [Message transformer type]
ports:
- [host machine port]:[configured HTTP port]
volume:
- ./config.toml:/config.toml
```
The service itself is distributed as Docker container. Check the [`mongodb-writer`](https://github.com/mainflux/mainflux/blob/master/docker/addons/mongodb-writer/docker-compose.yml#L36-L55) service section in
docker-compose to see how service is deployed.
To start the service, execute the following shell script:

View File

@ -28,38 +28,8 @@ default values.
## Deployment
```yaml
version: "3.7"
postgres-writer:
image: mainflux/postgres-writer:[version]
container_name: [instance name]
depends_on:
- postgres
- nats
restart: on-failure
environment:
MF_NATS_URL: [NATS instance URL]
MF_POSTGRES_WRITER_LOG_LEVEL: [Service log level]
MF_POSTGRES_WRITER_PORT: [Service HTTP port]
MF_POSTGRES_WRITER_DB_HOST: [Postgres host]
MF_POSTGRES_WRITER_DB_PORT: [Postgres port]
MF_POSTGRES_WRITER_DB_USER: [Postgres user]
MF_POSTGRES_WRITER_DB_PASS: [Postgres password]
MF_POSTGRES_WRITER_DB: [Postgres database name]
MF_POSTGRES_WRITER_DB_SSL_MODE: [Postgres SSL mode]
MF_POSTGRES_WRITER_DB_SSL_CERT: [Postgres SSL cert]
MF_POSTGRES_WRITER_DB_SSL_KEY: [Postgres SSL key]
MF_POSTGRES_WRITER_DB_SSL_ROOT_CERT: [Postgres SSL Root cert]
MF_POSTGRES_WRITER_CONFIG_PATH: [Configuration file path with NATS subjects list]
MF_POSTGRES_WRITER_CONTENT_TYPE: [Message payload Content Type]
MF_POSTGRES_WRITER_TRANSFORMER: [Message transformer type]
ports:
- 9104:9104
networks:
- docker_mainflux-base-net
volume:
- ./config.toml:/config.toml
```
The service itself is distributed as Docker container. Check the [`postgres-writer`](https://github.com/mainflux/mainflux/blob/master/docker/addons/postgres-writer/docker-compose.yml#L34-L59) service section in
docker-compose to see how service is deployed.
To start the service, execute the following shell script:

View File

@ -21,3 +21,4 @@ docker-compose -f docker/docker-compose.yml up
docker-compose -f docker/addons/<path>/docker-compose.yml up
```
To pull docker images from a specific release you need to change the value of `MF_RELEASE_TAG` in `.env` before running these commands.

View File

@ -30,7 +30,7 @@ services:
- mainflux-bootstrap-db-volume:/var/lib/postgresql/data
bootstrap:
image: mainflux/bootstrap:latest
image: mainflux/bootstrap:${MF_RELEASE_TAG}
container_name: mainflux-bootstrap
depends_on:
- bootstrap-db

View File

@ -14,7 +14,7 @@ networks:
services:
cassandra-reader:
image: mainflux/cassandra-reader:latest
image: mainflux/cassandra-reader:${MF_RELEASE_TAG}
container_name: mainflux-cassandra-reader
restart: on-failure
environment:

View File

@ -28,7 +28,7 @@ services:
- mainflux-cassandra-volume:/var/lib/cassandra
cassandra-writer:
image: mainflux/cassandra-writer:latest
image: mainflux/cassandra-writer:${MF_RELEASE_TAG}
container_name: mainflux-cassandra-writer
depends_on:
- cassandra

View File

@ -31,7 +31,7 @@ services:
- mainflux-certs-db-volume:/var/lib/postgresql/data
certs:
image: mainflux/certs:latest
image: mainflux/certs:${MF_RELEASE_TAG}
container_name: mainflux-certs
depends_on:
- certs-db

View File

@ -16,7 +16,7 @@ networks:
services:
influxdb-reader:
image: mainflux/influxdb-reader:latest
image: mainflux/influxdb-reader:${MF_RELEASE_TAG}
container_name: mainflux-influxdb-reader
restart: on-failure
environment:

View File

@ -33,7 +33,7 @@ services:
- mainflux-influxdb-volume:/var/lib/influxdb
influxdb-writer:
image: mainflux/influxdb-writer:latest
image: mainflux/influxdb-writer:${MF_RELEASE_TAG}
container_name: mainflux-influxdb-writer
depends_on:
- influxdb

View File

@ -21,7 +21,7 @@ services:
- docker_mainflux-base-net
lora-adapter:
image: mainflux/lora:latest
image: mainflux/lora:${MF_RELEASE_TAG}
container_name: mainflux-lora
restart: on-failure
environment:

View File

@ -15,7 +15,7 @@ networks:
services:
mongodb-reader:
image: mainflux/mongodb-reader:latest
image: mainflux/mongodb-reader:${MF_RELEASE_TAG}
container_name: mainflux-mongodb-reader
restart: on-failure
environment:

View File

@ -34,7 +34,7 @@ services:
- mainflux-mongodb-configdb-volume:/data/configdb
mongodb-writer:
image: mainflux/mongodb-writer:latest
image: mainflux/mongodb-writer:${MF_RELEASE_TAG}
container_name: mainflux-mongodb-writer
depends_on:
- mongodb

View File

@ -27,7 +27,7 @@ services:
- mainflux-opcua-redis-volume:/data
opcua-adapter:
image: mainflux/opcua:latest
image: mainflux/opcua:${MF_RELEASE_TAG}
container_name: mainflux-opcua
restart: on-failure
environment:

View File

@ -15,7 +15,7 @@ networks:
services:
postgres-reader:
image: mainflux/postgres-reader:latest
image: mainflux/postgres-reader:${MF_RELEASE_TAG}
container_name: mainflux-postgres-reader
restart: on-failure
environment:

View File

@ -32,7 +32,7 @@ services:
- mainflux-postgres-writer-volume:/var/lib/postgresql/data
postgres-writer:
image: mainflux/postgres-writer:latest
image: mainflux/postgres-writer:${MF_RELEASE_TAG}
container_name: mainflux-postgres-writer
depends_on:
- postgres

View File

@ -14,7 +14,7 @@ networks:
services:
provision:
image: mainflux/provision:latest
image: mainflux/provision:${MF_RELEASE_TAG}
container_name: mainflux-provision
restart: on-failure
networks:

View File

@ -33,7 +33,7 @@ services:
- mainflux-twins-db-configdb-volume:/data/configdb
twins:
image: mainflux/twins:latest
image: mainflux/twins:${MF_RELEASE_TAG}
container_name: mainflux-twins
restart: on-failure
environment:

View File

@ -19,7 +19,7 @@ volumes:
services:
vault:
image: vault:latest
image: vault:${MF_RELEASE_TAG}
container_name: mainflux-vault
ports:
- ${MF_VAULT_PORT}:8200

View File

@ -69,7 +69,7 @@ services:
- mainflux-auth-db-volume:/var/lib/postgresql/data
auth:
image: mainflux/auth:latest
image: mainflux/auth:${MF_RELEASE_TAG}
container_name: mainflux-auth
depends_on:
- auth-db
@ -107,7 +107,7 @@ services:
- mainflux-users-db-volume:/var/lib/postgresql/data
users:
image: mainflux/users:latest
image: mainflux/users:${MF_RELEASE_TAG}
container_name: mainflux-users
volumes:
- ./users/emailer/templates/${MF_EMAIL_TEMPLATE}:/${MF_EMAIL_TEMPLATE}
@ -165,7 +165,7 @@ services:
- mainflux-auth-redis-volume:/data
things:
image: mainflux/things:latest
image: mainflux/things:${MF_RELEASE_TAG}
container_name: mainflux-things
depends_on:
- things-db
@ -205,7 +205,7 @@ services:
- mainflux-base-net
vernemq:
image: mainflux/vernemq:latest
image: mainflux/vernemq:${MF_RELEASE_TAG}
container_name: mainflux-vernemq
restart: on-failure
environment:
@ -217,7 +217,7 @@ services:
- mainflux-mqtt-broker-volume:/var/lib/vernemq
mqtt-adapter:
image: mainflux/mqtt:latest
image: mainflux/mqtt:${MF_RELEASE_TAG}
container_name: mainflux-mqtt
depends_on:
- vernemq
@ -243,7 +243,7 @@ services:
- mainflux-base-net
http-adapter:
image: mainflux/http:latest
image: mainflux/http:${MF_RELEASE_TAG}
container_name: mainflux-http
depends_on:
- things
@ -271,7 +271,7 @@ services:
- mainflux-es-redis-volume:/data
coap-adapter:
image: mainflux/coap:latest
image: mainflux/coap:${MF_RELEASE_TAG}
container_name: mainflux-coap
depends_on:
- things

View File

@ -21,26 +21,8 @@ default values.
## Deployment
The service is distributed as Docker container. The following snippet provides
a compose file template that can be used to deploy the service container locally:
```yaml
version: "3.7"
services:
adapter:
image: mainflux/http:[version]
container_name: [instance name]
ports:
- [host machine port]:8180
environment:
MF_NATS_URL: [NATS instance URL]
MF_HTTP_ADAPTER_LOG_LEVEL: [HTTP Adapter Log Level]
MF_HTTP_ADAPTER_PORT: [Service HTTP port]
MF_HTTP_ADAPTER_CA_CERTS: [Path to trusted CAs in PEM format]
MF_JAEGER_URL: [Jaeger server URL]
MF_THINGS_AUTH_GRPC_URL: [Things service Auth gRPC URL]
MF_THINGS_AUTH_GRPC_TIMEOUT: [Things service Auth gRPC request timeout in seconds]
```
The service itself is distributed as Docker container. Check the [`http-adapter`](https://github.com/mainflux/mainflux/blob/master/docker/docker-compose.yml#L245-L262) service section in
docker-compose to see how service is deployed.
To start the service outside of the container, execute the following shell script:

View File

@ -27,27 +27,8 @@ default values.
## Deployment
The service is distributed as Docker container. The following snippet provides
a compose file template that can be used to deploy the service container locally:
```yaml
version: "3.7"
services:
adapter:
image: mainflux/lora:[version]
container_name: [instance name]
environment:
MF_LORA_ADAPTER_LOG_LEVEL: [Service Log Level]
MF_NATS_URL: [NATS instance URL]
MF_LORA_ADAPTER_MESSAGES_URL: [LoRa Server MQTT broker URL]
MF_LORA_ADAPTER_ROUTE_MAP_URL: [Route-map database URL]
MF_LORA_ADAPTER_ROUTE_MAP_PASS: [Route-map database password]
MF_LORA_ADAPTER_ROUTE_MAP_DB: [Route-map instance]
MF_THINGS_ES_URL: [Things event source URL]
MF_THINGS_ES_PASS: [Things event source password]
MF_THINGS_ES_DB: [Things event source DB instance]
MF_LORA_ADAPTER_EVENT_CONSUMER: [Service event consumer name]
```
The service itself is distributed as Docker container. Check the [`lora-adapter`](https://github.com/mainflux/mainflux/blob/master/docker/addons/lora-adapter/docker-compose.yml#L23-L37) service section in
docker-compose to see how service is deployed.
To start the service outside of the container, execute the following shell script:

View File

@ -36,39 +36,10 @@ default values.
| MF_AUTH_CACHE_PASS | Auth cache password | "" |
| MF_AUTH_CACHE_DB | Auth cache database | "0" |
## Deployment
The service is distributed as Docker container. The following snippet provides
a compose file template that can be used to deploy the service container locally:
```yaml
version: "3.7"
services:
mqtt-adapter:
image: mainflux/mqtt:latest
container_name: mainflux-mqtt
depends_on:
- vernemq
- things
- nats
restart: on-failure
environment:
MF_MQTT_ADAPTER_LOG_LEVEL: ${MF_MQTT_ADAPTER_LOG_LEVEL}
MF_MQTT_ADAPTER_MQTT_PORT: ${MF_MQTT_ADAPTER_MQTT_PORT}
MF_MQTT_ADAPTER_WS_PORT: ${MF_MQTT_ADAPTER_WS_PORT}
MF_MQTT_ADAPTER_ES_URL: es-redis:${MF_REDIS_TCP_PORT}
MF_NATS_URL: ${MF_NATS_URL}
MF_MQTT_ADAPTER_MQTT_TARGET_HOST: vernemq
MF_MQTT_ADAPTER_MQTT_TARGET_PORT: ${MF_MQTT_BROKER_PORT}
MF_MQTT_ADAPTER_MQTT_TARGET_HEALTH_CHECK: http://vernemq:8888/health
MF_MQTT_ADAPTER_WS_TARGET_HOST: vernemq
MF_MQTT_ADAPTER_WS_TARGET_PORT: ${MF_MQTT_BROKER_WS_PORT}
MF_JAEGER_URL: ${MF_JAEGER_URL}
MF_THINGS_AUTH_GRPC_URL: ${MF_THINGS_AUTH_GRPC_URL}
MF_THINGS_AUTH_GRPC_TIMEOUT: ${MF_THINGS_AUTH_GRPC_TIMEOUT}
MF_AUTH_CACHE: things-redis:${MF_REDIS_TCP_PORT}
```
The service itself is distributed as Docker container. Check the [`mqtt-adapter`](https://github.com/mainflux/mainflux/blob/master/docker/docker-compose.yml#L219-L243) service section in
docker-compose to see how service is deployed.
To start the service outside of the container, execute the following shell script:

View File

@ -31,32 +31,8 @@ default values.
## Deployment
The service is distributed as Docker container. The following snippet provides
a compose file template that can be used to deploy the service container locally:
```yaml
version: "3.7"
services:
adapter:
image: mainflux/opcua:[version]
container_name: [instance name]
environment:
MF_OPCUA_ADAPTER_HTTP_PORT: [Service HTTP port]
MF_OPCUA_ADAPTER_LOG_LEVEL: [Service Log Level]
MF_NATS_URL: [NATS instance URL]
MF_OPCUA_ADAPTER_INTERVAL_MS: [OPC-UA Server Interval (milliseconds)]
MF_OPCUA_ADAPTER_POLICY: [OPC-UA Server Policy]
MF_OPCUA_ADAPTER_MODE: [OPC-UA Server Mode]
MF_OPCUA_ADAPTER_CERT_FILE: [OPC-UA Server Certificate file]
MF_OPCUA_ADAPTER_KEY_FILE: [OPC-UA Server Key file]
MF_OPCUA_ADAPTER_ROUTE_MAP_URL: [Route-map database URL]
MF_OPCUA_ADAPTER_ROUTE_MAP_PASS: [Route-map database password]
MF_OPCUA_ADAPTER_ROUTE_MAP_DB: [Route-map instance name]
MF_THINGS_ES_URL: [Things event source URL]
MF_THINGS_ES_PASS: [Things event source password]
MF_THINGS_ES_DB: [Things event source DB instance]
MF_OPCUA_ADAPTER_EVENT_CONSUMER: [Service event consumer name]
```
The service itself is distributed as Docker container. Check the [`opcua-adapter`](https://github.com/mainflux/mainflux/blob/master/docker/addons/opcua-adapter/docker-compose.yml#L29-L53) service section in
docker-compose to see how service is deployed.
To start the service outside of the container, execute the following shell script:

View File

@ -22,30 +22,30 @@ default values.
| MF_PROVISION_USER | User (email) for accessing Mainflux | user@example.com |
| MF_PROVISION_PASS | Mainflux password | user123 |
| MF_PROVISION_API_KEY | Mainflux authentication token | |
| MF_PROVISION_CONFIG_FILE | Provision config file | config.toml |
| MF_PROVISION_CONFIG_FILE | Provision config file | config.toml |
| MF_PROVISION_HTTP_PORT | Provision service listening port | 8091 |
| MF_PROVISION_ENV_CLIENTS_TLS | Mainflux SDK TLS verification | false |
| MF_PROVISION_SERVER_CERT | Mainflux gRPC secure server cert | |
| MF_PROVISION_SERVER_KEY | Mainflux gRPC secure server key | |
| MF_PROVISION_SERVER_KEY | Mainflux gRPC secure server key | |
| MF_PROVISION_MQTT_URL | Mainflux MQTT adapter URL | http://localhost:1883 |
| MF_PROVISION_USERS_LOCATION | Users service URL | http://locahost |
| MF_PROVISION_THINGS_LOCATION | Things service URL | http://localhost |
| MF_PROVISION_LOG_LEVEL | Service log level | http://localhost |
| MF_PROVISION_HTTP_PORT | Service listening port | 8091 |
| MF_PROVISION_USER | Mainflux user username | test@example.com |
| MF_PROVISION_PASS | Mainflux user password | password |
| MF_PROVISION_BS_SVC_URL | Mainflux Bootstrap service URL | http://localhost/things/configs |
| MF_PROVISION_BS_SVC_WHITELIST_URL | Mainflux Bootstrap service whitelist URL | http://localhost/things/state |
| MF_PROVISION_CERTS_SVC_URL | Certificats service URL | http://localhost/certs |
| MF_PROVISION_X509_PROVISIONING | Should X509 client cert be provisioned | false |
| MF_PROVISION_BS_CONFIG_PROVISIONING | Should thing config be saved in Bootstrap service | true |
| MF_PROVISION_BS_AUTO_WHITELIST | Should thing be auto whitelisted | true |
| MF_PROVISION_BS_CONTENT | Bootstrap service configs content, JSON format | {} |
| MF_PROVISION_CERTS_CA | Mainflux CA cert for generating certificates | "" |
| MF_PROVISION_CERTS_CA_KEY | Mainflux CA cert private key | "" |
| MF_PROVISION_CERTS_RSA_BITS | Certificate RSA bits parameter | 4096 |
| MF_PROVISION_CERTS_HOURS_VALID | Number of days that certificate is valid | "2400h" |
| MF_PROVISION_MQTT_URL | Mainflux MQTT adapter URL | http://localhost:1883 |
| MF_PROVISION_USERS_LOCATION | Users service URL | http://locahost |
| MF_PROVISION_THINGS_LOCATION | Things service URL | http://localhost |
| MF_PROVISION_LOG_LEVEL | Service log level | http://localhost |
| MF_PROVISION_HTTP_PORT | Service listening port | 8091 |
| MF_PROVISION_USER | Mainflux user username | test@example.com |
| MF_PROVISION_PASS | Mainflux user password | password |
| MF_PROVISION_BS_SVC_URL | Mainflux Bootstrap service URL | http://localhost/things/configs |
| MF_PROVISION_BS_SVC_WHITELIST_URL | Mainflux Bootstrap service whitelist URL | http://localhost/things/state |
| MF_PROVISION_CERTS_SVC_URL | Certificats service URL | http://localhost/certs |
| MF_PROVISION_X509_PROVISIONING | Should X509 client cert be provisioned | false |
| MF_PROVISION_BS_CONFIG_PROVISIONING | Should thing config be saved in Bootstrap service | true |
| MF_PROVISION_BS_AUTO_WHITELIST | Should thing be auto whitelisted | true |
| MF_PROVISION_BS_CONTENT | Bootstrap service configs content, JSON format | {} |
| MF_PROVISION_CERTS_CA | Mainflux CA cert for generating certificates | "" |
| MF_PROVISION_CERTS_CA_KEY | Mainflux CA cert private key | "" |
| MF_PROVISION_CERTS_RSA_BITS | Certificate RSA bits parameter | 4096 |
| MF_PROVISION_CERTS_HOURS_VALID | Number of days that certificate is valid | "2400h" |
By default, call to `/mapping` endpoint will create one thing and two channels (`control` and `data`) and connect it. If there is a requirement for different provision layout we can use [config](docker/configs/config.toml) file in addition to environment variables.

View File

@ -27,31 +27,8 @@ default values.
## Deployment
```yaml
version: "3.7"
cassandra-reader:
image: mainflux/cassandra-reader:[version]
container_name: [instance name]
expose:
- [Service HTTP port]
restart: on-failure
environment:
MF_CASSANDRA_READER_PORT: [Service HTTP port]
MF_CASSANDRA_READER_DB_CLUSTER: [Cassandra cluster comma separated addresses]
MF_CASSANDRA_READER_DB_KEYSPACE: [Cassandra keyspace name]
MF_CASSANDRA_READER_DB_USER: [Cassandra DB username]
MF_CASSANDRA_READER_DB_PASS: [Cassandra DB password]
MF_CASSANDRA_READER_DB_PORT: [Cassandra DB port]
MF_CASSANDRA_READER_CLIENT_TLS: [Flag that indicates if TLS should be turned on]
MF_CASSANDRA_READER_CA_CERTS: [Path to trusted CAs in PEM format]
MF_CASSANDRA_READER_SERVER_CERT: [String path to server cert in pem format]
MF_CASSANDRA_READER_SERVER_KEY: [String path to server key in pem format]
MF_JAEGER_URL: [Jaeger server URL]
MF_THINGS_AUTH_GRPC_URL: [Things service Auth gRPC URL]
MF_THINGS_AUTH_GRPC_TIMEOUT: [Things service Auth gRPC request timeout in seconds]
ports:
- [host machine port]:[configured HTTP port]
```
The service itself is distributed as Docker container. Check the [`cassandra-reader`](https://github.com/mainflux/mainflux/blob/master/docker/addons/cassandra-reader/docker-compose.yml#L15-L35) service section in
docker-compose to see how service is deployed.
To start the service, execute the following shell script:

View File

@ -26,29 +26,8 @@ default values.
## Deployment
```yaml
version: "3.7"
influxdb-reader:
image: mainflux/influxdb-reader:[version]
container_name: [instance name]
restart: on-failure
environment:
MF_INFLUX_READER_PORT: [Service HTTP port]
MF_INFLUX_READER_DB: [InfluxDB name]
MF_INFLUX_READER_DB_HOST: [InfluxDB host]
MF_INFLUX_READER_DB_PORT: [InfluxDB port]
MF_INFLUX_READER_DB_USER: [InfluxDB admin user]
MF_INFLUX_READER_DB_PASS: [InfluxDB admin password]
MF_INFLUX_READER_CLIENT_TLS: [Flag that indicates if TLS should be turned on]
MF_INFLUX_READER_CA_CERTS: [Path to trusted CAs in PEM format]
MF_INFLUX_READER_SERVER_CERT: [String path to server cert in pem format]
MF_INFLUX_READER_SERVER_KEY: [String path to server key in pem format]
MF_JAEGER_URL: [Jaeger server URL]
MF_THINGS_AUTH_GRPC_URL: [Things service Auth gRPC URL]
MF_THINGS_AUTH_GRPC_TIMEOUT: [Things service Auth gRPC request timeout in seconds]
ports:
- [host machine port]:[configured HTTP port]
```
The service itself is distributed as Docker container. Check the [`influxdb-reader`](https://github.com/mainflux/mainflux/blob/master/docker/addons/influxdb-reader/docker-compose.yml#L17-L40) service section in
docker-compose to see how service is deployed.
To start the service, execute the following shell script:

View File

@ -24,29 +24,8 @@ default values.
## Deployment
```yaml
version: "3.7"
mongodb-reader:
image: mainflux/mongodb-reader:[version]
container_name: [instance name]
expose:
- [Service HTTP port]
restart: on-failure
environment:
MF_MONGO_READER_PORT: [Service HTTP port]
MF_MONGO_READER_DB: [MongoDB name]
MF_MONGO_READER_DB_HOST: [MongoDB host]
MF_MONGO_READER_DB_PORT: [MongoDB port]
MF_MONGO_READER_CLIENT_TLS: [Flag that indicates if TLS should be turned on]
MF_MONGO_READER_CA_CERTS: [Path to trusted CAs in PEM format]
MF_MONGO_READER_SERVER_CERT: [String path to server cert in pem format]
MF_MONGO_READER_SERVER_KEY: [String path to server key in pem format]
MF_JAEGER_URL: [Jaeger server URL]
MF_THINGS_AUTH_GRPC_URL: [Things service Auth gRPC URL]
MF_THINGS_AUTH_GRPC_TIMEOUT: [Things service Auth gRPC request timeout in seconds]
ports:
- [host machine port]:[configured HTTP port]
```
The service itself is distributed as Docker container. Check the [`mongodb-reader`](https://github.com/mainflux/mainflux/blob/master/docker/addons/mongodb-reader/docker-compose.yml#L16-L37) service section in
docker-compose to see how service is deployed.
To start the service, execute the following shell script:

View File

@ -29,36 +29,8 @@ default values.
## Deployment
```yaml
version: "3.7"
postgres-writer:
image: mainflux/postgres-writer:[version]
container_name: [instance name]
depends_on:
- postgres
- nats
restart: on-failure
environment:
MF_NATS_URL: [NATS instance URL]
MF_POSTGRES_READER_LOG_LEVEL: [Service log level]
MF_POSTGRES_READER_PORT: [Service HTTP port]
MF_POSTGRES_READER_DB_HOST: [Postgres host]
MF_POSTGRES_READER_DB_PORT: [Postgres port]
MF_POSTGRES_READER_DB_USER: [Postgres user]
MF_POSTGRES_READER_DB_PASS: [Postgres password]
MF_POSTGRES_READER_DB: [Postgres database name]
MF_POSTGRES_READER_DB_SSL_MODE: [Postgres SSL mode]
MF_POSTGRES_READER_DB_SSL_CERT: [Postgres SSL cert]
MF_POSTGRES_READER_DB_SSL_KEY: [Postgres SSL key]
MF_POSTGRES_READER_DB_SSL_ROOT_CERT: [Postgres SSL Root cert]
MF_JAEGER_URL: [Jaeger server URL]
MF_THINGS_AUTH_GRPC_URL: [Things service Auth gRPC URL]
MF_THINGS_AUTH_GRPC_TIMEOUT: [Things service Auth gRPC request timeout in seconds]
ports:
- 8180:8180
networks:
- docker_mainflux-base-net
```
The service itself is distributed as Docker container. Check the [`postgres-reader`](https://github.com/mainflux/mainflux/blob/master/docker/addons/postgres-reader/docker-compose.yml#L17-L41) service section in
docker-compose to see how service is deployed.
To start the service, execute the following shell script:

View File

@ -51,47 +51,8 @@ default values.
## Deployment
The service itself is distributed as Docker container. The following snippet
provides a compose file template that can be used to deploy the service container
locally:
```yaml
version: "3.7"
services:
things:
image: mainflux/things:[version]
container_name: [instance name]
ports:
- [host machine port]:[configured HTTP port]
environment:
MF_THINGS_LOG_LEVEL: [Things log level]
MF_THINGS_DB_HOST: [Database host address]
MF_THINGS_DB_PORT: [Database host port]
MF_THINGS_DB_USER: [Database user]
MF_THINGS_DB_PASS: [Database password]
MF_THINGS_DB: [Name of the database used by the service]
MF_THINGS_DB_SSL_MODE: [SSL mode to connect to the database with]
MF_THINGS_DB_SSL_CERT: [Path to the PEM encoded certificate file]
MF_THINGS_DB_SSL_KEY: [Path to the PEM encoded key file]
MF_THINGS_DB_SSL_ROOT_CERT: [Path to the PEM encoded root certificate file]
MF_THINGS_CA_CERTS: [Path to trusted CAs in PEM format]
MF_THINGS_CACHE_URL: [Cache database URL]
MF_THINGS_CACHE_PASS: [Cache database password]
MF_THINGS_CACHE_DB: [Cache instance that should be used]
MF_THINGS_ES_URL: [Event store URL]
MF_THINGS_ES_PASS: [Event store password]
MF_THINGS_ES_DB: [Event store instance name]
MF_THINGS_HTTP_PORT: [Things service HTTP port]
MF_THINGS_AUTH_HTTP_PORT: [Things service Auth HTTP port]
MF_THINGS_AUTH_GRPC_PORT: [Things service Auth gRPC port]
MF_THINGS_SERVER_CERT: [String path to server cert in pem format]
MF_THINGS_SERVER_KEY: [String path to server key in pem format]
MF_THINGS_SINGLE_USER_EMAIL: [User email for single user mode (no gRPC communication with users)]
MF_THINGS_SINGLE_USER_TOKEN: [User token for single user mode that should be passed in auth header]
MF_JAEGER_URL: [Jaeger server URL]
MF_AUTH_GRPC_URL: [Auth service gRPC URL]
MF_AUTH_GRPC_TIMEOUT: [Auth service gRPC request timeout in seconds]
```
The service itself is distributed as Docker container. Check the [`things `](https://github.com/mainflux/mainflux/blob/master/docker/docker-compose.yml#L167-L194) service section in
docker-compose to see how service is deployed.
To start the service outside of the container, execute the following shell script:

View File

@ -37,39 +37,8 @@ default values.
## Deployment
The service itself is distributed as Docker container. The following snippet
provides a compose file template that can be used to deploy the service
container locally:
```yaml
version: "3"
services:
twins:
image: mainflux/twins:[version]
container_name: [instance name]
ports:
- [host machine port]:[configured HTTP port]
environment:
MF_TWINS_LOG_LEVEL: [Twins log level]
MF_TWINS_HTTP_PORT: [Service HTTP port]
MF_TWINS_SERVER_CERT: [String path to server cert in pem format]
MF_TWINS_SERVER_KEY: [String path to server key in pem format]
MF_JAEGER_URL: [Jaeger server URL]
MF_TWINS_DB: [Database name]
MF_TWINS_DB_HOST: [Database host address]
MF_TWINS_DB_PORT: [Database host port]
MF_TWINS_SINGLE_USER_EMAIL: [User email for single user mode]
MF_TWINS_SINGLE_USER_TOKEN: [User token for single user mode]
MF_TWINS_CLIENT_TLS: [Flag that indicates if TLS should be turned on]
MF_TWINS_CA_CERTS: [Path to trusted CAs in PEM format]
MF_TWINS_CHANNEL_ID: [NATS notifications channel ID]
MF_NATS_URL: [Mainflux NATS broker URL]
MF_AUTH_GRPC_URL: [Auth service gRPC URL]
MF_AUTH_GRPC_TIMEOUT: [Auth service gRPC request timeout in seconds]
MF_TWINS_ES_URL: [Event store URL]
MF_TWINS_ES_PASS: [Event store password]
MF_TWINS_ES_DB: [Event store instance name]
```
The service itself is distributed as Docker container. Check the [`twins`](https://github.com/mainflux/mainflux/blob/master/docker/addons/twins/docker-compose.yml#L35-L58) service section in
docker-compose to see how service is deployed.
To start the service outside of the container, execute the following shell
script:

View File

@ -46,43 +46,8 @@ default values.
## Deployment
The service itself is distributed as Docker container. The following snippet
provides a compose file template that can be used to deploy the service container
locally:
```yaml
version: "3.7"
services:
users:
image: mainflux/users:[version]
container_name: [instance name]
ports:
- [host machine port]:[configured HTTP port]
environment:
MF_USERS_LOG_LEVEL: [Users log level]
MF_USERS_DB_HOST: [Database host address]
MF_USERS_DB_PORT: [Database host port]
MF_USERS_DB_USER: [Database user]
MF_USERS_DB_PASS: [Database password]
MF_USERS_DB: [Name of the database used by the service]
MF_USERS_DB_SSL_MODE: [SSL mode to connect to the database with]
MF_USERS_DB_SSL_CERT: [Path to the PEM encoded certificate file]
MF_USERS_DB_SSL_KEY: [Path to the PEM encoded key file]
MF_USERS_DB_SSL_ROOT_CERT: [Path to the PEM encoded root certificate file]
MF_USERS_HTTP_PORT: [Service HTTP port]
MF_USERS_SERVER_CERT: [String path to server certificate in pem format]
MF_USERS_SERVER_KEY: [String path to server key in pem format]
MF_JAEGER_URL: [Jaeger server URL]
MF_EMAIL_DRIVER: [Mail server driver smtp]
MF_EMAIL_HOST: [MF_EMAIL_HOST]
MF_EMAIL_PORT: [MF_EMAIL_PORT]
MF_EMAIL_USERNAME: [MF_EMAIL_USERNAME]
MF_EMAIL_PASSWORD: [MF_EMAIL_PASSWORD]
MF_EMAIL_FROM_ADDRESS: [MF_EMAIL_FROM_ADDRESS]
MF_EMAIL_FROM_NAME: [MF_EMAIL_FROM_NAME]
MF_EMAIL_TEMPLATE: [MF_EMAIL_TEMPLATE]
MF_TOKEN_RESET_ENDPOINT: [MF_TOKEN_RESET_ENDPOINT]
```
The service itself is distributed as Docker container. Check the [`users`](https://github.com/mainflux/mainflux/blob/master/docker/docker-compose.yml#L109-L143) service section in
docker-compose to see how service is deployed.
To start the service outside of the container, execute the following shell script:
@ -99,7 +64,30 @@ make users
make install
# set the environment variables and run the service
MF_USERS_LOG_LEVEL=[Users log level] MF_USERS_DB_HOST=[Database host address] MF_USERS_DB_PORT=[Database host port] MF_USERS_DB_USER=[Database user] MF_USERS_DB_PASS=[Database password] MF_USERS_DB=[Name of the database used by the service] MF_USERS_DB_SSL_MODE=[SSL mode to connect to the database with] MF_USERS_DB_SSL_CERT=[Path to the PEM encoded certificate file] MF_USERS_DB_SSL_KEY=[Path to the PEM encoded key file] MF_USERS_DB_SSL_ROOT_CERT=[Path to the PEM encoded root certificate file] MF_USERS_HTTP_PORT=[Service HTTP port] MF_USERS_SERVER_CERT=[Path to server certificate] MF_USERS_SERVER_KEY=[Path to server key] MF_JAEGER_URL=[Jaeger server URL] MF_EMAIL_DRIVER=[Mail server driver smtp] MF_EMAIL_HOST=[Mail server host] MF_EMAIL_PORT=[Mail server port] MF_EMAIL_USERNAME=[Mail server username] MF_EMAIL_PASSWORD=[Mail server password] MF_EMAIL_FROM_ADDRESS=[Email from address] MF_EMAIL_FROM_NAME=[Email from name] MF_EMAIL_TEMPLATE=[Email template file] MF_TOKEN_RESET_ENDPOINT=[Password reset token endpoint] $GOBIN/mainflux-users
MF_USERS_LOG_LEVEL=[Users log level] \
MF_USERS_DB_HOST=[Database host address] \
MF_USERS_DB_PORT=[Database host port] \
MF_USERS_DB_USER=[Database user] \
MF_USERS_DB_PASS=[Database password] \
MF_USERS_DB=[Name of the database used by the service] \
MF_USERS_DB_SSL_MODE=[SSL mode to connect to the database with] \
MF_USERS_DB_SSL_CERT=[Path to the PEM encoded certificate file] \
MF_USERS_DB_SSL_KEY=[Path to the PEM encoded key file] \
MF_USERS_DB_SSL_ROOT_CERT=[Path to the PEM encoded root certificate file] \
MF_USERS_HTTP_PORT=[Service HTTP port] \
MF_USERS_SERVER_CERT=[Path to server certificate] \
MF_USERS_SERVER_KEY=[Path to server key] \
MF_JAEGER_URL=[Jaeger server URL] \
MF_EMAIL_DRIVER=[Mail server driver smtp] \
MF_EMAIL_HOST=[Mail server host] \
MF_EMAIL_PORT=[Mail server port] \
MF_EMAIL_USERNAME=[Mail server username] \
MF_EMAIL_PASSWORD=[Mail server password] \
MF_EMAIL_FROM_ADDRESS=[Email from address] \
MF_EMAIL_FROM_NAME=[Email from name] \
MF_EMAIL_TEMPLATE=[Email template file] \
MF_TOKEN_RESET_ENDPOINT=[Password reset token endpoint] \
$GOBIN/mainflux-users
```
If `MF_EMAIL_TEMPLATE` doesn't point to any file service will function but password reset functionality will not work.