nodered-grafana-influxdb

Docker compose file for Grafana


version: "2.4"

name: grafana-example-com

services:
  grafana:
    image: grafana/grafana:latest-ubuntu

    container_name: grafana.example.com
    
    restart: always

    user: www-data
    
    network_mode: host
    
    volumes:
      - ./conf:/etc/grafana
      - ./data:/var/lib/grafana

    ports:
      - 3000:3000

    labels:
      - com.centurylinklabs.watchtower.enable=true

Grafana configuration file

# Grafana config file for https://dashboard.dev.example.com
# Filename: /srv/dashboard.dev.example.com/grafana-conf/grafana.ini
#
# Uses only Google Authentication domain restricted to omnyk.com
# MariaDB is used for metadata storage

[server]
#http_port = 80
#domain = dev.example.com
#enforce_domain = true
root_url = 'https://dashboard.dev.example.com'

[database]
type = mysql
host = mysql
name = dashboard
user = dashboard
password = Zwxz2YIUU1s9mhs3

; [smtp]
; enabled         = true
; ehlo_identity   = dashboard.dev.example.com
; host            =
; user            =
; password        =
; from_address    =
; from_name       = 'Dashboard'
; skip_verify     = false
; #startTLS_policy = MandatoryStartTLS
; tls_skip_verify_insecure = false

[analytics]
reporting_enabled = false

[security]
cookie_secure = true
admin_user = admin

[users]
allow_sign_up = false
allow_org_create = false
auto_assign_org = true
auto_assign_org_id = 1
auto_assign_org_role = Viewer
default_theme = light

[auth]
disable_login_form = true
; TODO, signout_redirect_url needs to be checked
; oauth_auto_login = true
; signout_redirect_url =


[auth.google]
enabled = false
allow_sign_up = false
allowed_domains = 
client_id = 
client_secret = 
scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
auth_url = https://accounts.google.com/o/oauth2/auth
token_url = https://accounts.google.com/o/oauth2/token

[date_formats]
defautl_timezone = Asia/Kolkata

[panels]
; need this to load photos via embedded html img tags
disable_sanitize_html = true

Docker compose file for MySQL

version: "2.4"

name: mysql-dev-example-com

services:

  mysql:
    image: mysql:8.3
    
    container_name: mysql.dev.example.com

    restart: always

    environment:
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_DATABASE=${MYSQL_DATABASE}
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}

    volumes:
      - ./mysql-data:/var/lib/mysql
      - ./mysql-conf/my.cnf:/root/.my.cnf

    ports:
      - "3306:3306"

    labels:
      - com.centurylinklabs.watchtower.enable=true

MySQL my.cnf file

[mysql]
user=root
password=9NZXo34631MN2I2E0p07

[mysqldump]
user=root
password=9NZXo34631MN2I2E0p07

.env file for MySQL

# Mysql Database
MYSQL_ROOT_PASSWORD=9NZXo34631MN2I2E0p07
MYSQL_DATABASE=dashboard
MYSQL_USER=dashboard
MYSQL_PASSWORD=ndsbnsfjdnbkjfshZJBHJBads

Docker compose file for InfluxDB

version: "2.4"

name: influxdb-example-com

services:
  influxdb:
  image: influxdb:latest

  container_name: influxdb.example.com
  
  restart: always
  
  ports:
    - "8086:8086"        
  
  volumes:
    - "./influxdb-data:/var/lib/influxdb"
  
  environment:
    - INFLUXDB_ADMIN_USER_PASSWORD=${INFLUXDB_ADMIN_USER_PASSWORD}
    - INFLUXDB_USER=${INFLUXDB_USER}
    - INFLUXDB_USER_PASSWORD=${INFLUXDB_USER_PASSWORD}
    - INFLUXDB_DB=${INFLUXDB_DB}
    - INFLUXDB_HTTP_READINESS_TIMEOUT=${INFLUXDB_HTTP_READINESS_TIMEOUT}

.env file for InfluxDB

INFLUXDB_ADMIN_USER_PASSWORD=influxdb@123
INFLUXDB_USER=influxdb
INFLUXDB_USER_PASSWORD=influxdb@123
INFLUXDB_DB=influxdb
INFLUXDB_HTTP_READINESS_TIMEOUT=30

Docker compose file for Node-RED

version: "2.4"

name: nodered-example-com

services: 
  node-red:
    image: nodered/node-red:latest

    container_name: nodered.example.com

    ports:
      - "1880:1880"

    volumes:
      - "./node-red-data:/data"

    labels:
      - com.centurylinklabs.watchtower.enable=true