# # Copyright © 2016-2018 The Thingsboard Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # version: '2.2' services: zookeeper: restart: always image: "wurstmeister/zookeeper" ports: - "2181" kafka: restart: always image: "wurstmeister/kafka" ports: - "9092:9092" environment: KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_LISTENERS: INSIDE://:9093,OUTSIDE://:9092 KAFKA_ADVERTISED_LISTENERS: INSIDE://:9093,OUTSIDE://kafka:9092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE KAFKA_CREATE_TOPICS: "${KAFKA_TOPICS}" KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'false' KAFKA_LOG_RETENTION_BYTES: 1073741824 KAFKA_LOG_SEGMENT_BYTES: 268435456 KAFKA_LOG_RETENTION_MS: 300000 KAFKA_LOG_CLEANUP_POLICY: delete depends_on: - zookeeper tb-js-executor: restart: always image: "${DOCKER_REPO}/${JS_EXECUTOR_DOCKER_NAME}:${TB_VERSION}" scale: 20 environment: TB_KAFKA_SERVERS: kafka:9092 env_file: - tb-js-executor.env depends_on: - kafka tb: restart: always image: "${DOCKER_REPO}/${TB_NODE_DOCKER_NAME}:${TB_VERSION}" ports: - "8080" logging: driver: "json-file" options: max-size: "200m" max-file: "30" env_file: - tb-node.env environment: ZOOKEEPER_URL: zk:2181 TB_KAFKA_SERVERS: kafka:9092 JS_EVALUATOR: remote DATABASE_TS_TYPE: sql DATABASE_ENTITIES_TYPE: sql SQL_DATA_FOLDER: /usr/share/thingsboard/data/db volumes: - ./tb-node/db:/usr/share/thingsboard/data/db - ./tb-node/conf:/config - ./tb-node/log:/var/log/thingsboard depends_on: - kafka tb-mqtt-transport1: restart: always image: "${DOCKER_REPO}/${MQTT_TRANSPORT_DOCKER_NAME}:${TB_VERSION}" ports: - "1883" environment: TB_KAFKA_SERVERS: kafka:9092 env_file: - tb-mqtt-transport.env depends_on: - kafka tb-mqtt-transport2: restart: always image: "${DOCKER_REPO}/${MQTT_TRANSPORT_DOCKER_NAME}:${TB_VERSION}" ports: - "1883" environment: TB_KAFKA_SERVERS: kafka:9092 env_file: - tb-mqtt-transport.env depends_on: - kafka tb-http-transport1: restart: always image: "${DOCKER_REPO}/${HTTP_TRANSPORT_DOCKER_NAME}:${TB_VERSION}" ports: - "8081" environment: TB_KAFKA_SERVERS: kafka:9092 env_file: - tb-http-transport.env depends_on: - kafka tb-http-transport2: restart: always image: "${DOCKER_REPO}/${HTTP_TRANSPORT_DOCKER_NAME}:${TB_VERSION}" ports: - "8081" environment: TB_KAFKA_SERVERS: kafka:9092 env_file: - tb-http-transport.env depends_on: - kafka tb-coap-transport: restart: always image: "${DOCKER_REPO}/${COAP_TRANSPORT_DOCKER_NAME}:${TB_VERSION}" ports: - "5683:5683/udp" environment: TB_KAFKA_SERVERS: kafka:9092 env_file: - tb-coap-transport.env depends_on: - kafka tb-web-ui1: restart: always image: "${DOCKER_REPO}/${WEB_UI_DOCKER_NAME}:${TB_VERSION}" ports: - "8080" environment: TB_HOST: tb TB_PORT: 8080 env_file: - tb-web-ui.env tb-web-ui2: restart: always image: "${DOCKER_REPO}/${WEB_UI_DOCKER_NAME}:${TB_VERSION}" ports: - "8080" environment: TB_HOST: tb TB_PORT: 8080 env_file: - tb-web-ui.env web: restart: always container_name: haproxy-certbot image: nmarus/haproxy-certbot volumes: - ./haproxy/config:/config - ./haproxy/letsencrypt:/etc/letsencrypt - ./haproxy/certs.d:/usr/local/etc/haproxy/certs.d ports: - "80:80" - "443:443" - "1883:1883" - "9999:9999" cap_add: - NET_ADMIN environment: HTTP_PORT: 80 HTTPS_PORT: 443 MQTT_PORT: 1883 FORCE_HTTPS_REDIRECT: "false" links: - tb-web-ui1 - tb-web-ui2 - tb-mqtt-transport1 - tb-mqtt-transport2 - tb-http-transport1 - tb-http-transport2