{"id":35167860,"url":"https://github.com/scanopy/scanopy","last_synced_at":"2026-07-05T01:02:11.036Z","repository":{"id":317251516,"uuid":"1066625952","full_name":"scanopy/scanopy","owner":"scanopy","description":"Network diagrams that update themselves","archived":false,"fork":false,"pushed_at":"2026-06-26T22:21:41.000Z","size":67165,"stargazers_count":5098,"open_issues_count":46,"forks_count":244,"subscribers_count":23,"default_branch":"main","last_synced_at":"2026-06-27T00:27:57.157Z","etag":null,"topics":["documentation","documentation-generator","documentation-tools","homelab","network-analysis","network-diagram","network-diagrams","network-docs","network-documentation","network-mapper","network-mapping-tool","network-visualization","network-visualizer","networking","self-hosted","visualization"],"latest_commit_sha":null,"homepage":"https://scanopy.net","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scanopy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"contributing.md","funding":".github/funding.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"buy_me_a_coffee":"mayanayza"}},"created_at":"2025-09-29T18:37:20.000Z","updated_at":"2026-06-25T12:21:17.000Z","dependencies_parsed_at":"2025-10-29T16:11:40.901Z","dependency_job_id":"9ebcbd79-fb94-4394-8588-ee02d7f14494","html_url":"https://github.com/scanopy/scanopy","commit_stats":null,"previous_names":["mayanayza/netvisor","scanopy/scanopy","netvisor-io/netvisor"],"tags_count":97,"template":false,"template_full_name":null,"purl":"pkg:github/scanopy/scanopy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scanopy%2Fscanopy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scanopy%2Fscanopy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scanopy%2Fscanopy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scanopy%2Fscanopy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scanopy","download_url":"https://codeload.github.com/scanopy/scanopy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scanopy%2Fscanopy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35140189,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-04T02:00:05.987Z","response_time":113,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["documentation","documentation-generator","documentation-tools","homelab","network-analysis","network-diagram","network-diagrams","network-docs","network-documentation","network-mapper","network-mapping-tool","network-visualization","network-visualizer","networking","self-hosted","visualization"],"created_at":"2025-12-28T20:00:42.044Z","updated_at":"2026-07-05T01:02:11.023Z","avatar_url":"https://github.com/scanopy.png","language":"Rust","funding_links":["https://buymeacoffee.com/mayanayza"],"categories":["Rust","Table of Contents"],"sub_categories":["Network"],"readme":"# Scanopy\n\n\u003cp align=\"left\"\u003e\n  \u003cimg src=\"./media/logo.png\" width=\"100\" alt=\"Scanopy Logo\"\u003e\n\u003c/p\u003e\n\n**Network documentation, without the drawing.**\n\nScanopy replaces manual network diagrams with a continuously maintained model of what's actually running. A single daemon scans on a schedule and produces four views from each scan: L2 (physical), L3 (logical), workloads, and applications. Unlike diagrams drawn in draw.io that go stale the week they're saved, or IaC state that misses drift and resources provisioned outside the pipeline, Scanopy reflects the current state of your infrastructure. Export as SVG, Mermaid, or Confluence; embed live maps; or feed the model into your existing source of truth.\n\n![Docker Pulls](https://img.shields.io/docker/pulls/mayanayza/netvisor-server?style=for-the-badge\u0026logo=docker)  ![Github Stars](https://img.shields.io/github/stars/scanopy/scanopy?style=for-the-badge\u0026logo=github\n)\u003cbr\u003e\n![GitHub release](https://img.shields.io/github/v/release/scanopy/scanopy?style=for-the-badge) ![License](https://img.shields.io/github/license/scanopy/scanopy?style=for-the-badge)\u003cbr\u003e\n![Daemon image size](https://img.shields.io/docker/image-size/mayanayza/scanopy-daemon?style=for-the-badge\u0026label=Daemon%20image%20size) ![Server image size](https://img.shields.io/docker/image-size/mayanayza/scanopy-server?style=for-the-badge\u0026label=Server%20image%20size\n)\u003cbr\u003e\n![Daemon](https://img.shields.io/github/actions/workflow/status/scanopy/scanopy/daemon-ci.yml?label=daemon-ci\u0026style=for-the-badge)  ![Server](https://img.shields.io/github/actions/workflow/status/scanopy/scanopy/server-ci.yml?label=server-ci\u0026style=for-the-badge)  ![UI](https://img.shields.io/github/actions/workflow/status/scanopy/scanopy/ui-ci.yml?label=ui-ci\u0026style=for-the-badge)\u003cbr\u003e\n[![Discord](https://img.shields.io/discord/1432872786828726392?logo=discord\u0026label=discord\u0026labelColor=white\u0026color=7289da\u0026style=for-the-badge)](https://discord.gg/b7ffQr8AcZ) [![Translations](https://img.shields.io/weblate/progress/scanopy?style=for-the-badge\u0026logo=weblate)](https://hosted.weblate.org/engage/scanopy/)\n\n\u003e 💡 **Prefer not to self-host?** [Get a free trial](https://scanopy.net?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=cloud_trial) of Scanopy Cloud\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"50%\" valign=\"top\"\u003e\n      \u003cimg src=\"./media/l2.png\" alt=\"L2 view\" /\u003e\n      \u003cp align=\"center\"\u003e\u003cstrong\u003eL2 (Physical)\u003c/strong\u003e\u003cbr/\u003e\u003csub\u003eEvery switch, every port, every link.\u003c/sub\u003e\u003c/p\u003e\n    \u003c/td\u003e\n    \u003ctd width=\"50%\" valign=\"top\"\u003e\n      \u003cimg src=\"./media/l3.png\" alt=\"L3 view\" /\u003e\n      \u003cp align=\"center\"\u003e\u003cstrong\u003eL3 (Logical)\u003c/strong\u003e\u003cbr/\u003e\u003csub\u003eSubnets and how hosts connect across them.\u003c/sub\u003e\u003c/p\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"50%\" valign=\"top\"\u003e\n      \u003cimg src=\"./media/wl.png\" alt=\"Workloads view\" /\u003e\n      \u003cp align=\"center\"\u003e\u003cstrong\u003eWorkloads\u003c/strong\u003e\u003cbr/\u003e\u003csub\u003eBare metal to hypervisors to containers.\u003c/sub\u003e\u003c/p\u003e\n    \u003c/td\u003e\n    \u003ctd width=\"50%\" valign=\"top\"\u003e\n      \u003cimg src=\"./media/app.png\" alt=\"Applications view\" /\u003e\n      \u003cp align=\"center\"\u003e\u003cstrong\u003eApplications\u003c/strong\u003e\u003cbr/\u003e\u003csub\u003eServices and their dependencies, grouped by application.\u003c/sub\u003e\u003c/p\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## ✨ Features\n\n- **Automatic discovery**: Maps hosts and services by scanning the network. One scanner, no per-device agents.\n- **230+ service definitions**: Auto-detects databases, web servers, containers, network infrastructure, and enterprise applications.\n- **Four views from one scan**: L2 (physical), L3 (logical), workloads, and application dependencies.\n- **Distributed scanning**: Deploy daemons across segments to map multi-site and multi-VLAN topologies.\n- **Docker \u0026 SNMP integration**: Native discovery for containerized services and network hardware.\n- **Scheduled rescans**: Documentation stays current as infrastructure changes.\n- **Multi-user + RBAC**: Organization management, role-based access, and shareable live views for teammates or external stakeholders.\n\n## 🎯 Perfect For\n\n- **Platform \u0026 DevOps teams**: Trace service dependencies without APM. Map containers, VMs, and hardware in one model.\n- **Network engineers**: Multi-VLAN, multi-site topology diagrams derived from SNMP, LLDP, and ARP. No manual drawing.\n- **IT operations**: Keep inventory, topology, and dependencies current across teams and sites.\n- **MSPs**: Per-client documentation with shareable live views.\n- **Home labs**: Document your infrastructure without opening draw.io.\n\n## 📋 Licensing\n**Self-hosted ([AGPL-3.0](LICENSE.md)):** Free for all use. Requires source disclosure for network services and copyleft compliance.   \n**Self-hosted ([Commercial license](COMMERCIAL-LICENSE.md)):** For those who cannot comply with AGPL-3.0 terms. Contact licensing@scanopy.net  \n**Hosted Solution:** **[Scanopy Cloud](https://scanopy.net?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=cloud_trial)** subscription for zero infrastructure management  \n\n## 🚀 Quick Start for Self Hosting\n\n**Docker Compose**\n\n```bash\ncurl -O https://raw.githubusercontent.com/scanopy/scanopy/refs/heads/main/docker-compose.yml\ndocker compose up -d\n```\n\n**Proxmox**\n\nUse this [helper script](https://community-scripts.github.io/ProxmoxVE/scripts?id=scanopy) to create a Scanopy LXC.\n\n**Unraid**\n\nAvailable as an Unraid community app.\n\n\u003e 💡 **Prefer not to self-host?** [Get a free trial](https://scanopy.net?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=cloud_trial) of Scanopy Cloud\n\n---\n\nAccess the UI at `http://\u003cyour-server-ip\u003e:60072`, create your account, and wait for the first discovery to complete.\n\nFor detailed setup options and configuration, see the [Installation Guide](https://scanopy.net/docs/server-installation?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=docs).\n\n## 📚 Documentation + API\n\n**[scanopy.net/docs](https://scanopy.net/docs?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=docs)**\n\n## 🚀 Demo\n\n**[demo.scanopy.net](https://demo.scanopy.net/?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=demo)**. Hosted demo app with a sample dataset. Try the full UI without installing anything.\n\n## 🤝 Contributing\n\nWe welcome contributions! See our [contributing guide](contributing.md) for details.\n\nGreat first contributions:\n- [Adding service definitions](contributing.md#adding-service-definitions)\n- [Translating Scanopy](https://hosted.weblate.org/engage/scanopy/) into your language\n\n## 💬 Community \u0026 Support\n\n- **Discord**: [Join our Discord](https://discord.gg/b7ffQr8AcZ) for help and discussions\n- **Issues**: [Report bugs or request features](https://github.com/scanopy/scanopy/issues/new)\n- **Discussions**: [GitHub Discussions](https://github.com/scanopy/scanopy/discussions)\n\n---\n**Translations powered by Weblate**\n\n**Built with ❤️ in NYC**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscanopy%2Fscanopy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscanopy%2Fscanopy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscanopy%2Fscanopy/lists"}