{"id":48828304,"url":"https://github.com/gregluffy/homelabinfo","last_synced_at":"2026-05-01T22:01:52.594Z","repository":{"id":350726463,"uuid":"1208038109","full_name":"gregluffy/HomeLabInfo","owner":"gregluffy","description":"HomeLabInfo is a modern, self-hosted network discovery and visualization suite designed for homelab enthusiasts. ","archived":false,"fork":false,"pushed_at":"2026-04-24T22:05:05.000Z","size":2431,"stargazers_count":47,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2026-04-25T00:36:16.601Z","etag":null,"topics":["container","docker","docker-compose","dotnet","homelab","network-analysis","next","self-hosted"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gregluffy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"Roadmap/tasks.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-11T18:27:28.000Z","updated_at":"2026-04-24T22:04:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gregluffy/HomeLabInfo","commit_stats":null,"previous_names":["gregluffy/homelabinfo"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/gregluffy/HomeLabInfo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregluffy%2FHomeLabInfo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregluffy%2FHomeLabInfo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregluffy%2FHomeLabInfo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregluffy%2FHomeLabInfo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gregluffy","download_url":"https://codeload.github.com/gregluffy/HomeLabInfo/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregluffy%2FHomeLabInfo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32514340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"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":["container","docker","docker-compose","dotnet","homelab","network-analysis","next","self-hosted"],"created_at":"2026-04-14T19:01:03.570Z","updated_at":"2026-05-01T22:01:52.588Z","avatar_url":"https://github.com/gregluffy.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HomeLabInfo\n\n[![GitHub Repository](https://img.shields.io/badge/GitHub-Repository-blue?logo=github)](https://github.com/gregluffy/HomeLabInfo)\n\n\nHomeLabInfo is a self-hosted, cross-platform network scanner and visualization dashboard designed to help you manage and map your homelab infrastructure.\n\n![Homepage View](assets/homepage-view.png)\n\nIt provides an intuitive interface to seamlessly discover devices on your local network, track their online/offline statuses, and persist a visual map of your network topology. Originally inspired by traditional Windows Forms network scanners, this modernized web-based solution brings homelab management into the browser.\n\n### Visualizing Your Network\nDiscovering and managing your devices is easier than ever with our interactive topology and container management views.\n\n| Network Topology | Container Management |\n| :---: | :---: |\n| ![Network Topology](assets/network-topology-view.png) | ![Containers View](assets/containers-view.png) |\n\n### Key Features\n\n*   **Instant DHCP Discovery**: Rapidly discover and identify devices the moment they connect and request an IP address, Sending an Webhook to inform you for the new connected client on your network and ensuring your device list is always up-to-date.\n*   **Intelligent Network Mapping**: Continuously scan and track your homelab infrastructure online and offline statuses.\n*   **Interactive Topology**: View and arrange a visual map of your network structure.\n*   **Container Management**: Manage and monitor your Docker containers across different agents from one central UI.\n*   **Detailed Documentation**: For full setup and usage instructions, refer to our [User Manual](USER_MANUAL.md).\n\n![Instant DHCP Discovery](assets/dhcp-discovery-settings.png)\n\n\n## The Approach\n\nAs a developer primarily focused on **.NET**, this project is built from the ground up leveraging the power and cross-platform capabilities of **.NET 10**. Through containerization using Docker, HomeLabInfo can be easily deployed across various operating systems and architectures without worrying about environment-specific dependencies.\n\n### Technologies Used\n\n* **Built with:** .NET 10 (ASP.NET Core), Next.js, Docker.\n* **Backend**: .NET 10 (ASP.NET Core / Worker Services)\n* **Frontend**: Next.js (Modern Web Dashboard)\n* **Agent System**: .NET 10 (For remote telemetry gathering)\n* **Containerization**: Docker \u0026 Docker Compose\n* **Database**: SQLite (For persistence)\n\n## Why `network_mode: host` is Required\n\nIf you've looked at the `docker-compose.yml` file, you'll notice that the deployment relies on `network_mode: host` (or `network: host` depending on the syntax). \n\nThis is a critical requirement for the network scanning functionality to operate correctly.\n\nBy default, Docker isolates containers inside their own virtual bridge network (e.g., `172.17.0.x`). If HomeLabInfo runs on this bridge network, any ARP requests, Ping sweeps, or broadcast packets will be limited to this virtual Docker network, returning no meaningful results about your actual physical (or primary virtual) network.\n\nBy setting `network_mode: host`, the Docker container skips the isolated bridge and directly uses the network interfaces of your host machine. This allows the .NET network scanner to:\n1. Discover the true subnet range of your network.\n2. Send ARP requests and receive replies from physical devices on your LAN.\n3. Hear UDP broadcasts (like mDNS/Bonjour) properly.\n\nWithout host networking, the scanner simply won't see your homelab.\n\n## Deployment\n\nHomeLabInfo is designed to be deployed using Docker Compose. Depending on your setup, you can run everything on one machine or distribute agents across multiple servers.\n\n### 1. Unified Deployment (Hub + Agent)\nUse this if you want to run the dashboard and a local agent on the same machine.\n\n1.  Download [docker-compose.yml](docker-compose.yml).\n2.  Edit the environment variables:\n    *   `API_URL`: Set this to `http://\u003cyour-server-ip\u003e:9622/api`.\n    *   `HUB_PUBLIC_KEY`: Keep this as `CHANGE_ME` initially, then update it with the key provided by the dashboard after the first run.\n3.  Run the stack:\n    ```bash\n    docker compose up -d\n    ```\n\n### 2. Hub Only (Dashboard \u0026 Database)\nUse this on your main server to manage multiple remote agents.\n\n1.  Download [docker-compose.hub.yml](docker-compose.hub.yml).\n2.  Update the `API_URL` variable.\n3.  Run the hub:\n    ```bash\n    docker compose -f docker-compose.hub.yml up -d\n    ```\n\n### 3. Remote Agent Only\nUse this on any machine or VM you want to monitor.\n\n1.  Download [docker-compose.agent.yml](docker-compose.agent.yml).\n2.  Go to your HomeLabInfo dashboard, add a new agent, and copy the **Public Key**.\n3.  Paste the key into the `HUB_PUBLIC_KEY` environment variable.\n4.  Run the agent:\n    ```bash\n    docker compose -f docker-compose.agent.yml up -d\n    ```\n\n\n## Contributing\n\nContributions are welcome! As this project is licensed under the GNU GPLv3, any modifications or improvements you contribute must also be released under the same license, ensuring the project remains free and open-source for everyone.\n\n## Community \u0026 Feedback\n\nHomeLabInfo is built for the community. If you have suggestions, feature requests, or find a bug, please:\n\n- **Open an Issue**: Use the [GitHub Issues](https://github.com/gregluffy/HomeLabInfo/issues) to report problems.\n- **Start a Discussion**: Share your setup or ideas in the [Discussions](https://github.com/gregluffy/HomeLabInfo/discussions) tab.\n- **Contribute**: Pull requests are welcome! See the [Contributing](#contributing) section for more details.\n\n---\n\n## Security \u0026 Disclaimer\n\n\u003e [!CAUTION]\n\u003e **HomeLabInfo is designed for use on trusted local networks only.** \n\u003e\n\u003e Because this application requires `network_mode: host` to perform network scanning, it has direct access to the host's networking stack. This significantly reduces the isolation typically provided by Docker.\n\u003e \n\u003e *   **Do NOT expose this application directly to the internet.**\n\u003e *   If you need remote access, use a secure VPN (like WireGuard or Tailscale).\n\u003e *   The author provides this software \"as is\" without any warranties. Users assume all responsibility for any security risks or network issues that may arise from using this tool in their environment.\n\n## License\n\nThis project is licensed under the **GNU General Public License v3.0**. See the [LICENSE](LICENSE) file for the full text.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregluffy%2Fhomelabinfo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgregluffy%2Fhomelabinfo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregluffy%2Fhomelabinfo/lists"}