github gravitl/netmaker v0.19.0

latest releases: v0.25.0, v0.24.3, v0.24.2...
16 months ago

Netmaker v0.19.0

whats new

  • TURN
  • dependency updates
  • internet gateways (0.0.0.0/0) for egress
  • deprecated editing of network parameters
  • allow extra ips for extclient (not enabled in UI)

whats fixed

  • unbiased random string
  • get traffic keys on pull
  • CI updates
  • install/update script updates
  • firewall checks

known issues

  • Caddy does not handle netmaker exporter well for EE
  • Migration causes a listen port of 0 for some upgraded hosts
  • Docker clients can not re-join after deletion
  • Innacurate Ext Client Metrics
  • Issue with Mac + IPv6 addressing
  • Nodes on same local network may not always connect
  • List populates egress ranges twice
  • If you do NOT set STUN_LIST on server, it could lead to strange behavior on client

Upgrade from 0.18.7

How to upgrade your server to include TURN. In docker-compose.yml:

  1. Replace v0.18.7 with v0.19.0 for both netmaker and netmaker-ui images.
  2. In docker-compose.yml, add the following to services.netmaker.environment:
      TURN_SERVER_HOST: "turn.NETMAKER_BASE_DOMAIN"
      TURN_SERVER_API_HOST: "https://turnapi.NETMAKER_BASE_DOMAIN"
      TURN_PORT: "3479"
      TURN_USERNAME: "REPLACE_TURN_USERNAME"
      TURN_PASSWORD: "REPLACE_TURN_PASSWORD"
      USE_TURN: "true"

2.a Replace NETMAKER_BASE_DOMAIN with your base domain. Replace REPLACE_TURN_USERNAME with a username of your choice, and REPLACE_TURN_PASSWORD with a password (should be strong)

  1. Add the following section to services (in line with netmaker:, caddy:, mq:, etc):
  turn:
    container_name: turn
    image: gravitl/turnserver:v1.0.0
    network_mode: "host"
    volumes:
      - turn_server:/etc/config
    environment:
      DEBUG_MODE: "off"
      VERBOSITY: "1"
      TURN_PORT: "3479"
      TURN_API_PORT: "8089"
      CORS_ALLOWED_ORIGIN: "*"
      TURN_SERVER_HOST: "turn.NETMAKER_BASE_DOMAIN"
      USERNAME: "REPLACE_TURN_USERNAME"
      PASSWORD: "REPLACE_TURN_PASSWORD"

3.a replace NETMAKER_BASE_DOMAIN, REPLACE_TURN_USERNAME, and REPLACE_TURN_PASSWORD with the same values as in 1.a.

  1. Add "turn_server: {}" to your "volumes" section. It should look like this:
volumes:
  caddy_data: {}
  caddy_conf: {}
  sqldata: {}
  dnsconfig: {}
  mosquitto_logs: {}
  turn_server: {}
  1. add an "extra_hosts" section to caddy in the docker-compose. It should now look like this:
 caddy:
    image: caddy:2.6.2
    container_name: caddy
    restart: unless-stopped
    extra_hosts:
      - "host.docker.internal:host-gateway"
    volumes:
      - /root/Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_conf:/config
    ports:
      - "80:80"
      - "443:443"
  1. Modify the Caddyfile to add two new domains for TURN and TURN_API. Add the following sections, adjusting for your domain:
# TURN
https://turn.NETMAKER_BASE_DOMAIN {
	reverse_proxy host.docker.internal:3479
}

#TURN API
https://turnapi.NETMAKER_BASE_DOMAIN {
        reverse_proxy http://host.docker.internal:8089
}
  1. run docker-compose up -d

You should now have turn configured with your server.

Don't miss a new netmaker release

NewReleases is sending notifications on new releases.