netmaker/compose/docker-compose.ee.yml
2023-03-20 10:19:36 -04:00

130 lines
3.6 KiB
YAML

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_LIST: "stun.NETMAKER_BASE_DOMAIN:3478,stun1.netmaker.io:3478,stun2.netmaker.io:3478,stun1.l.google.com:19302,stun2.l.google.com:19302"
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"
DEFAULT_PROXY_MODE: "off"
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: {}