123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- version: "3.4"
- services:
- netmaker:
- container_name: netmaker
- image: gravitl/netmaker:REPLACE_SERVER_IMAGE_TAG
- restart: always
- volumes:
- - dnsconfig:/root/config/dnsconfig
- - sqldata:/root/data
- environment:
- BROKER_ENDPOINT: "wss://broker.NETMAKER_BASE_DOMAIN/mqtt"
- BROKER_TYPE: "emqx"
- EMQX_REST_ENDPOINT: "http://mq:18083"
- SERVER_NAME: "NETMAKER_BASE_DOMAIN"
- STUN_DOMAIN: "stun.NETMAKER_BASE_DOMAIN"
- SERVER_HOST: "SERVER_PUBLIC_IP"
- SERVER_API_CONN_STRING: "api.NETMAKER_BASE_DOMAIN:443"
- COREDNS_ADDR: "SERVER_PUBLIC_IP"
- DNS_MODE: "on"
- SERVER_HTTP_HOST: "api.NETMAKER_BASE_DOMAIN"
- API_PORT: "8081"
- MASTER_KEY: "REPLACE_MASTER_KEY"
- CORS_ALLOWED_ORIGIN: "*"
- DISPLAY_KEYS: "on"
- DATABASE: "sqlite"
- NODE_ID: "netmaker-server-1"
- SERVER_BROKER_ENDPOINT: "ws://mq:8083/mqtt"
- MQ_USERNAME: "REPLACE_MQ_USERNAME"
- MQ_PASSWORD: "REPLACE_MQ_PASSWORD"
- STUN_PORT: "3478"
- VERBOSITY: "1"
- METRICS_EXPORTER: "on"
- LICENSE_KEY: "YOUR_LICENSE_KEY"
- NETMAKER_ACCOUNT_ID: "YOUR_ACCOUNT_ID"
- ports:
- - "3478:3478/udp"
- netmaker-ui:
- container_name: netmaker-ui
- image: gravitl/netmaker-ui:REPLACE_UI_IMAGE_TAG
- depends_on:
- - netmaker
- links:
- - "netmaker:api"
- restart: always
- environment:
- BACKEND_URL: "https://api.NETMAKER_BASE_DOMAIN"
- caddy:
- image: caddy:2.6.2
- container_name: caddy
- restart: unless-stopped
- volumes:
- - /root/Caddyfile:/etc/caddy/Caddyfile
- - caddy_data:/data
- - caddy_conf:/config
- ports:
- - "80:80"
- - "443:443"
- coredns:
- container_name: coredns
- image: coredns/coredns
- command: -conf /root/dnsconfig/Corefile
- depends_on:
- - netmaker
- restart: always
- volumes:
- - dnsconfig:/root/dnsconfig
- mq:
- container_name: mq
- image: emqx/emqx:5.0.17
- restart: unless-stopped
- environment:
- EMQX_NAME: "emqx"
- EMQX_DASHBOARD__DEFAULT_PASSWORD: "REPLACE_MQ_PASSWORD"
- EMQX_DASHBOARD__DEFAULT_USERNAME: "REPLACE_MQ_USERNAME"
- ports:
- - "1883:1883" # MQTT
- - "8883:8883" # SSL MQTT
- - "8083:8083" # Websockets
- - "18083:18083" # Dashboard/REST_API
- prometheus:
- container_name: prometheus
- image: gravitl/netmaker-prometheus:latest
- environment:
- NETMAKER_METRICS_TARGET: "netmaker-exporter.NETMAKER_BASE_DOMAIN"
- LICENSE_KEY: "YOUR_LICENSE_KEY"
- restart: always
- volumes:
- - prometheus_data:/prometheus
- depends_on:
- - netmaker
- grafana:
- container_name: grafana
- image: gravitl/netmaker-grafana:latest
- environment:
- PROMETHEUS_HOST: "prometheus.NETMAKER_BASE_DOMAIN"
- NETMAKER_METRICS_TARGET: "netmaker-exporter.NETMAKER_BASE_DOMAIN"
- LICENSE_KEY: "YOUR_LICENSE_KEY"
- volumes:
- - grafana_data:/var/lib/grafana
- restart: always
- links:
- - prometheus
- depends_on:
- - prometheus
- - netmaker
- netmaker-exporter:
- container_name: netmaker-exporter
- image: gravitl/netmaker-exporter:latest
- restart: always
- depends_on:
- - netmaker
- environment:
- SERVER_BROKER_ENDPOINT: "ws://mq:8083/mqtt"
- BROKER_ENDPOINT: "wss://broker.NETMAKER_BASE_DOMAIN/mqtt"
- PROMETHEUS: "on"
- VERBOSITY: "1"
- API_PORT: "8085"
- LICENSE_KEY: "YOUR_LICENSE_KEY"
- PROMETHEUS_HOST: https://prometheus.NETMAKER_BASE_DOMAIN
- volumes:
- caddy_data: {}
- caddy_conf: {}
- sqldata: {}
- dnsconfig: {}
- mosquitto_logs: {}
- prometheus_data: {}
- grafana_data: {}
|