{
  "slug": "nebula",
  "category": "mesh-vpns",
  "name": "Nebula",
  "description": "Overlay networking tool originally built at Slack that connects hosts over mutually authenticated, encrypted tunnels using its own certificate authority and firewall rules, with self-hosted lighthouse nodes for discovery.",
  "website": "https://github.com/slackhq/nebula",
  "source": "https://github.com/slackhq/nebula",
  "license": "MIT",
  "platforms": [
    "windows",
    "macos",
    "linux",
    "android",
    "ios"
  ],
  "jurisdiction": null,
  "pick": false,
  "pick_reason": null,
  "disclosure": null,
  "grade": "C",
  "score": 71,
  "coverage": 100,
  "summary": "Nebula scores 71 out of 100 (grade C) on the mesh VPNs and private networks criteria. It meets 5 of 7 criteria: open source, no ads or data sales, keys stay on devices, self-hosted coordination server and no connection logs by default. It does not meet no trackers or telemetry and independent audit.",
  "url": "https://privacyratings.com/mesh-vpns/nebula/",
  "markdown": "https://privacyratings.com/mesh-vpns/nebula/index.md",
  "answers": {
    "open_source": {
      "title": "Open source",
      "weight": 3,
      "answer": "yes",
      "evidence": "https://github.com/slackhq/nebula/blob/master/LICENSE",
      "note": "MIT."
    },
    "no_trackers": {
      "title": "No trackers or telemetry",
      "weight": 3,
      "answer": "no",
      "evidence": "https://nebula.defined.net/docs/",
      "note": "No telemetry in the source code, but the official documentation site loads Google Analytics."
    },
    "no_ads": {
      "title": "No ads or data sales",
      "weight": 2,
      "answer": "yes",
      "evidence": "https://github.com/slackhq/nebula",
      "note": "Free open-source software maintained by Defined Networking, which sells a managed version, with no ads."
    },
    "independent_audit": {
      "title": "Independent audit",
      "weight": 2,
      "answer": "no",
      "evidence": null,
      "note": "No independent audit is published."
    },
    "transparency_report": {
      "title": "Transparency report",
      "weight": 2,
      "answer": "n/a",
      "evidence": null,
      "note": "Only applies to hosted services with a website to test."
    },
    "user_notice": {
      "title": "Tells users about requests",
      "weight": 1,
      "answer": "n/a",
      "evidence": null,
      "note": "Only applies to hosted services with a website to test."
    },
    "tls": {
      "title": "TLS configuration",
      "weight": 2,
      "answer": "n/a",
      "evidence": null,
      "note": "Only applies to hosted services with a website to test."
    },
    "security_headers": {
      "title": "Security headers",
      "weight": 1,
      "answer": "n/a",
      "evidence": null,
      "note": "Only applies to hosted services with a website to test."
    },
    "web_standards": {
      "title": "Modern web standards",
      "weight": 1,
      "answer": "n/a",
      "evidence": null,
      "note": "Only applies to hosted services with a website to test."
    },
    "device_keys": {
      "title": "Keys stay on devices",
      "weight": 3,
      "answer": "yes",
      "evidence": "https://nebula.defined.net/docs/guides/sign-certificates-with-public-keys/",
      "note": "Each host can create its own key pair, and only the public key is sent to the certificate authority for signing. Lighthouses only help hosts find each other."
    },
    "self_hosted_control": {
      "title": "Self-hosted coordination server",
      "weight": 2,
      "answer": "yes",
      "evidence": "https://nebula.defined.net/docs/guides/quick-start/",
      "note": "The certificate authority and lighthouses are self-hosted and open source. A managed version is sold separately."
    },
    "no_connection_logs": {
      "title": "No connection logs by default",
      "weight": 2,
      "answer": "yes",
      "evidence": "https://nebula.defined.net/docs/config/logging/",
      "note": "Logs are written locally. The open-source version has no vendor service to send them to."
    }
  },
  "tests": {
    "ssllabs": null,
    "observatory": null,
    "internetnl_web": null,
    "internetnl_mail": null,
    "trackers": null,
    "tested_at": "2026-10-01T06:38:30.480Z"
  },
  "last_modified": "2026-10-01T06:56:31Z"
}