123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- version: "3.4"
- services:
- netmaker:
- container_name: netmaker
- image: gravitl/netmaker:v0.14.5
- cap_add:
- - NET_ADMIN
- - NET_RAW
- - SYS_MODULE
- sysctls:
- - net.ipv4.ip_forward=1
- - net.ipv4.conf.all.src_valid_mark=1
- - net.ipv6.conf.all.disable_ipv6=0
- - net.ipv6.conf.all.forwarding=1
- restart: always
- volumes:
- - dnsconfig:/root/config/dnsconfig
- - sqldata:/root/data
- - shared_certs:/etc/netmaker
- environment:
- SERVER_NAME: "broker.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"
- CLIENT_MODE: "on"
- MASTER_KEY: "REPLACE_MASTER_KEY"
- CORS_ALLOWED_ORIGIN: "*"
- DISPLAY_KEYS: "on"
- DATABASE: "sqlite"
- NODE_ID: "netmaker-server-1"
- MQ_HOST: "mq"
- MQ_PORT: "443"
- MQ_SERVER_PORT: "1883"
- HOST_NETWORK: "off"
- VERBOSITY: "1"
- MANAGE_IPTABLES: "on"
- PORT_FORWARD_SERVICES: "dns"
- ports:
- - "51821-51830:51821-51830/udp"
- expose:
- - "8081"
- labels:
- - traefik.enable=true
- - traefik.http.routers.netmaker-api.entrypoints=websecure
- - traefik.http.routers.netmaker-api.rule=Host(`api.NETMAKER_BASE_DOMAIN`)
- - traefik.http.routers.netmaker-api.service=netmaker-api
- - traefik.http.services.netmaker-api.loadbalancer.server.port=8081
- netmaker-ui:
- container_name: netmaker-ui
- image: gravitl/netmaker-ui:v0.14.5
- depends_on:
- - netmaker
- links:
- - "netmaker:api"
- restart: always
- environment:
- BACKEND_URL: "https://api.NETMAKER_BASE_DOMAIN"
- expose:
- - "80"
- labels:
- - traefik.enable=true
- - traefik.http.middlewares.nmui-security.headers.accessControlAllowOriginList=*.NETMAKER_BASE_DOMAIN
- - traefik.http.middlewares.nmui-security.headers.stsSeconds=31536000
- - traefik.http.middlewares.nmui-security.headers.browserXssFilter=true
- - traefik.http.middlewares.nmui-security.headers.customFrameOptionsValue=SAMEORIGIN
- - traefik.http.middlewares.nmui-security.headers.customResponseHeaders.X-Robots-Tag=none
- - traefik.http.middlewares.nmui-security.headers.customResponseHeaders.Server= # Remove the server name
- - traefik.http.routers.netmaker-ui.entrypoints=websecure
- - traefik.http.routers.netmaker-ui.middlewares=nmui-security@docker
- - traefik.http.routers.netmaker-ui.rule=Host(`dashboard.NETMAKER_BASE_DOMAIN`)
- - traefik.http.routers.netmaker-ui.service=netmaker-ui
- - traefik.http.services.netmaker-ui.loadbalancer.server.port=80
- coredns:
- container_name: coredns
- image: coredns/coredns
- command: -conf /root/dnsconfig/Corefile
- depends_on:
- - netmaker
- restart: always
- volumes:
- - dnsconfig:/root/dnsconfig
- traefik:
- image: traefik:v2.6
- container_name: traefik
- command:
- - "--certificatesresolvers.http.acme.email=YOUR_EMAIL"
- - "--certificatesresolvers.http.acme.storage=/letsencrypt/acme.json"
- - "--certificatesresolvers.http.acme.tlschallenge=true"
- - "--entrypoints.websecure.address=:443"
- - "--entrypoints.websecure.http.tls=true"
- - "--entrypoints.websecure.http.tls.certResolver=http"
- - "--log.level=INFO"
- - "--providers.docker=true"
- - "--providers.docker.exposedByDefault=false"
- - "--serverstransport.insecureskipverify=true"
- restart: always
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock:ro
- - traefik_certs:/letsencrypt
- ports:
- - "443:443"
- mq:
- container_name: mq
- image: eclipse-mosquitto:2.0.11-openssl
- depends_on:
- - netmaker
- restart: unless-stopped
- volumes:
- - /root/mosquitto.conf:/mosquitto/config/mosquitto.conf
- - mosquitto_data:/mosquitto/data
- - mosquitto_logs:/mosquitto/log
- - shared_certs:/mosquitto/certs
- expose:
- - "8883"
- labels:
- - traefik.enable=true
- - traefik.tcp.routers.mqtts.rule=HostSNI(`broker.NETMAKER_BASE_DOMAIN`)
- - traefik.tcp.routers.mqtts.tls.passthrough=true
- - traefik.tcp.services.mqtts-svc.loadbalancer.server.port=8883
- - traefik.tcp.routers.mqtts.service=mqtts-svc
- - traefik.tcp.routers.mqtts.entrypoints=websecure
- volumes:
- traefik_certs: {}
- shared_certs: {}
- sqldata: {}
- dnsconfig: {}
- mosquitto_data: {}
- mosquitto_logs: {}
|