1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- version: "3.4"
- services:
- netmaker:
- container_name: netmaker
- image: gravitl/netmaker:$SERVER_IMAGE_TAG
- env_file: ./netmaker.env
- restart: always
- volumes:
- - dnsconfig:/root/config/dnsconfig
- - sqldata:/root/data
- environment:
- # config-dependant vars
- - STUN_LIST=stun1.netmaker.io:3478,stun2.netmaker.io:3478,stun1.l.google.com:19302,stun2.l.google.com:19302
- # The domain/host IP indicating the mq broker address
- - BROKER_ENDPOINT=wss://broker.${NM_DOMAIN} # For EMQX broker use `BROKER_ENDPOINT=wss://broker.${NM_DOMAIN}/mqtt`
- # For EMQX broker (uncomment the two lines below)
- #- BROKER_TYPE=emqx
- #- EMQX_REST_ENDPOINT=http://mq:18083
- # The base domain of netmaker
- - SERVER_NAME=${NM_DOMAIN}
- - SERVER_API_CONN_STRING=api.${NM_DOMAIN}:443
- # Address of the CoreDNS server. Defaults to SERVER_HOST
- - COREDNS_ADDR=${SERVER_HOST}
- # Overrides SERVER_HOST if set. Useful for making HTTP available via different interfaces/networks.
- - SERVER_HTTP_HOST=api.${NM_DOMAIN}
- netmaker-ui:
- container_name: netmaker-ui
- image: gravitl/netmaker-ui:$UI_IMAGE_TAG
- env_file: ./netmaker.env
- environment:
- # config-dependant vars
- # URL where UI will send API requests. Change based on SERVER_HOST, SERVER_HTTP_HOST, and API_PORT
- BACKEND_URL: "https://api.${NM_DOMAIN}"
- depends_on:
- - netmaker
- links:
- - "netmaker:api"
- restart: always
- caddy:
- image: caddy:2.8.4
- container_name: caddy
- env_file: ./netmaker.env
- restart: unless-stopped
- extra_hosts:
- - "host.docker.internal:host-gateway"
- volumes:
- - ./Caddyfile:/etc/caddy/Caddyfile
- - caddy_data:/data
- - caddy_conf:/config
- ports:
- - "80:80"
- - "443:443"
- coredns:
- #network_mode: host
- container_name: coredns
- image: coredns/coredns:1.10.1
- command: -conf /root/dnsconfig/Corefile
- env_file: ./netmaker.env
- restart: always
- depends_on:
- - netmaker
- volumes:
- - dnsconfig:/root/dnsconfig
- mq:
- container_name: mq
- image: eclipse-mosquitto:2.0.15-openssl
- env_file: ./netmaker.env
- depends_on:
- - netmaker
- restart: unless-stopped
- command: [ "/mosquitto/config/wait.sh" ]
- volumes:
- - ./mosquitto.conf:/mosquitto/config/mosquitto.conf
- - ./wait.sh:/mosquitto/config/wait.sh
- - mosquitto_logs:/mosquitto/log
- - mosquitto_data:/mosquitto/data
- volumes:
- caddy_data: { } # runtime data for caddy
- caddy_conf: { } # configuration file for Caddy
- sqldata: { }
- dnsconfig: { } # storage for coredns
- mosquitto_logs: { } # storage for mqtt logs
- mosquitto_data: { } # storage for mqtt data
|