{
  "schema": "tesign-radar/item/1",
  "generated_at": "2026-09-29T02:28:04.402Z",
  "lang": "en",
  "slug": "roborock-local-server",
  "url": "https://tesign.com/en/item/roborock-local-server/",
  "alternates": {
    "ko": {
      "html": "https://tesign.com/item/roborock-local-server/",
      "json": "https://tesign.com/item/roborock-local-server/index.json",
      "markdown": "https://tesign.com/item/roborock-local-server/index.md"
    },
    "en": {
      "html": "https://tesign.com/en/item/roborock-local-server/",
      "json": "https://tesign.com/en/item/roborock-local-server/index.json",
      "markdown": "https://tesign.com/en/item/roborock-local-server/index.md"
    }
  },
  "name": "Roborock Local Server",
  "use_label": "Run a Roborock vacuum without the cloud",
  "one_liner": "Runs Roborock's cloud backend on your own network so the vacuum keeps maps and controls without internet.",
  "text": {
    "why": "Roborock vacuums store maps locally but route map data through Roborock's cloud, and keep restarting their network when they can't reach it — so cutting them off the internet broke them.",
    "take": "It cuts the cloud dependency in software alone, without opening the device.",
    "build": [
      "It runs HTTPS and MQTT on your LAN and redirects DNS so the vacuum connects to it instead of Roborock. No disassembly, soldering or bootloader unlocking, and new vacuums work without prior cloud registration. Install with Docker Compose or as a Home Assistant add-on."
    ],
    "who": [
      {
        "role": "Home Assistant users who want their Roborock vacuum off the internet.",
        "situation": null
      }
    ],
    "start": [
      {
        "command": false,
        "text": "Check the network requirements in the install guide, run the server with Docker Compose or the Home Assistant add-on, then run onboarding from a second machine."
      }
    ],
    "caveat": [
      "You need to manage your home network yourself (DNS changes, certificates). The README notes upstream authentication changes are the most frequent point of failure."
    ]
  },
  "cta": {
    "type": "self_host",
    "label": "SELF-HOST",
    "url": "https://python-roborock.github.io/local_roborock_server"
  },
  "ready": "self-host",
  "categories": [
    "hardware"
  ],
  "categories_confirmed": true,
  "tags": [
    "스마트홈",
    "로봇청소기",
    "자체 호스팅",
    "개인정보"
  ],
  "platform": [],
  "license": {
    "spdx": "MIT",
    "scope": "permissive",
    "scope_text": "Use, change and redistribute, commercially too. Keep the notice.",
    "url": "https://spdx.org/licenses/MIT.html",
    "note": null,
    "open_source": true
  },
  "language": "Python",
  "source_urls": {
    "canonical": "https://python-roborock.github.io/local_roborock_server",
    "github": "https://github.com/python-roborock/local_roborock_server",
    "huggingface": null,
    "app_store": null,
    "sightings": [
      {
        "source": "showhn",
        "url": "https://github.com/Python-roborock/local_roborock_server",
        "posted_at": "2026-09-28T12:52:17.000Z",
        "hn_url": "https://news.ycombinator.com/item?id=49877182"
      }
    ]
  },
  "numbers": {
    "as_of": "2026-09-28T21:00:00.000Z",
    "stars": 646,
    "stars_unit": "GitHub stars",
    "stars_checked_at": "2026-09-28T14:04:15.022Z",
    "stars_observed_since_check": 0,
    "star_delta_24h": null,
    "star_delta_7d": null,
    "star_delta_30d": null,
    "star_delta_unit": "GitHub stars gained in the window, GH Archive events summed to as_of",
    "spark_14d": [
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null
    ],
    "hf_likes": null,
    "hf_likes_observed_at": null,
    "hn_points": 1,
    "hn_points_observed_at": "2026-09-28T14:05:29.093Z",
    "store": null,
    "method": "Star total = the value last checked on GitHub (stars_checked_at) + increases observed via GH Archive since. The 24h · 7d · 30d gains are GH Archive hourly events summed to the reference time (as_of). No score of ours."
  },
  "ranks": null,
  "activity": {
    "pushed_at": "2026-09-28T02:12:30.000Z",
    "owner_type": null,
    "open_issues": null,
    "contributors": null,
    "releases_count": null,
    "latest_release": null,
    "checked_at": null,
    "core_checked_at": "2026-09-28T14:04:15.022Z"
  },
  "signals": [
    {
      "kind": "new",
      "label": "NEW",
      "value": "0h OLD WHEN SEEN"
    }
  ],
  "images": {
    "og": "https://tesign.com/img/roborock-local-server-cc5eb99970.png",
    "cover": "https://tesign.com/img/roborock-local-server-cc5eb99970.png",
    "cover_width": 2400,
    "cover_height": 1260,
    "gallery": [
      "https://tesign.com/img/roborock-local-server-cc5eb99970.png"
    ],
    "alt": "The Roborock Local Server docs: start-here steps covering installation, Docker Compose, Home Assistant and onboarding.",
    "tier": 1
  },
  "dates": {
    "first_seen_at": "2026-09-28T13:44:53.436Z",
    "source_created_at": "2026-09-28T12:52:17.000Z",
    "discovery_hours": 0.8767877777777778,
    "launch_signal_at": "2026-09-28T12:52:17.000Z",
    "kept_at": "2026-09-29T02:28:00.592Z",
    "first_published_at": "2026-09-29T02:28:00.745Z",
    "updated_at": "2026-09-29T02:28:00.699Z",
    "ingestion_mode": "live"
  },
  "notes": [
    "This file was produced by the same build, from the same data, as the tesign.com item page. The text is editorial; the numbers are stored observations.",
    "null in the JSON means not observed — never zero. The Markdown writes [unconfirmed] for it.",
    "Star total = the value last checked on GitHub (stars_checked_at) + increases observed via GH Archive since. The 24h · 7d · 30d gains are GH Archive hourly events summed to the reference time (as_of). No score of ours.",
    "A summary, not legal advice."
  ]
}
