{"id":13430948,"url":"https://github.com/georg-jung/BlazorWoL","last_synced_at":"2025-03-16T06:31:40.315Z","repository":{"id":37235856,"uuid":"227704034","full_name":"georg-jung/BlazorWoL","owner":"georg-jung","description":"A simple blazor application that enables you to do Wake-on-LAN / send magic packets in the network where it is hosted.","archived":false,"fork":false,"pushed_at":"2023-02-24T18:18:06.000Z","size":379,"stargazers_count":32,"open_issues_count":1,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-01T02:27:30.575Z","etag":null,"topics":["blazor","blazor-server","entity-framework-core","wake-on-lan"],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/georg-jung.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-12-12T21:57:58.000Z","updated_at":"2024-07-08T10:07:21.000Z","dependencies_parsed_at":"2024-01-22T05:49:29.378Z","dependency_job_id":null,"html_url":"https://github.com/georg-jung/BlazorWoL","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georg-jung%2FBlazorWoL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georg-jung%2FBlazorWoL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georg-jung%2FBlazorWoL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georg-jung%2FBlazorWoL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/georg-jung","download_url":"https://codeload.github.com/georg-jung/BlazorWoL/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221656491,"owners_count":16858780,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["blazor","blazor-server","entity-framework-core","wake-on-lan"],"created_at":"2024-07-31T02:00:59.236Z","updated_at":"2024-10-27T09:31:13.101Z","avatar_url":"https://github.com/georg-jung.png","language":"C#","funding_links":[],"categories":["Sample Projects"],"sub_categories":["Others"],"readme":"# Blazor Wake-on-LAN\n\n[![CI](https://github.com/georg-jung/BlazorWoL/actions/workflows/ci.yml/badge.svg)](https://github.com/georg-jung/BlazorWoL/actions/workflows/ci.yml)\n\nThis is a [Wake-on-LAN](https://en.wikipedia.org/wiki/Wake-on-LAN) app for your network, written in server-side blazor. I developed it for internal use at my workplace and because I wanted to build a small, limited-scope but fully-working and done-right blazor app. [Getting started](#getting-started) is as easy as downloading and running. Feel free to improve/fork/PR this if you think I could have done anything better.\n\n## Getting Started\n\n### With Docker\n\nYou can start a BlazorWoL docker container like this:\n\n```bash\ndocker run -e \"ConnectionStrings__SqliteConnection=Data Source=/blazorwol/db.sqlite\" -v /var/blazorwol:/blazorwol --network host --name blazorwol ghcr.io/georg-jung/blazorwol:latest\n```\n\nPlease note that this does not work on Windows, even with WSL, as docker host networking is required.\n\n### By downloading binaries\n\n1. [Download](#download) and unzip the [latest release](https://github.com/georg-jung/BlazorWoL/releases/latest/).\n2. Run the application by starting `WoL.exe`\n3. Open the shown location in a browser (probably `localhost:5000`) and add your first host.\n\nYou can add the application to IIS for more serious hosting. You can set up T-SQL as a backend for backup etc.. See the [`appsettings.json` file](WoL/appsettings.json) for details. If you host this in IIS you might want to [configure it to be always running](https://serverfault.com/a/823531), otherwise the first request after some idle time will take seconds.\n\n## Download\n\nThe platform-specific releases have no prerequisits. Just unpack and double-click. The framework dependend release is smaller and portable but requires [.Net 7 Runtime to be installed](https://dotnet.microsoft.com/download/dotnet-core).\n\n* [Windows x86](https://github.com/georg-jung/BlazorWoL/releases/latest/download/win-x86.zip)\n  * This app does not take advantage of 64bit, so I chose to deploy x86 due to the smaller footprint.\n* [Windows x86 IIS](https://github.com/georg-jung/BlazorWoL/releases/latest/download/win-x86-iis.zip)\n  * All files listed here except from the *Runtime Dependent* one are self contained. Thus, you don't need to have the .Net runtime installed. They are published as single file executables too (you get one ~85mb exe file instead of hundreds of smaller files). To be able to host a .Net application in IIS it must not be published as a single file. So, if you want to host BlazorWoL in IIS, you may choose this download.\n* [Windows ARM](https://github.com/georg-jung/BlazorWoL/releases/latest/download/win-arm.zip)\n* [Linux x64](https://github.com/georg-jung/BlazorWoL/releases/latest/download/linux-x64.zip)\n* [Runtime Dependent (.Net 7.0)](https://github.com/georg-jung/BlazorWoL/releases/latest/download/fdd.zip) *previously known as framework dependent*\n\n## Features\n\n![Screenshot](screenshot-01-index.png)\n\n* Wake arbitrary hosts on the network of the server where this is hosted via [Magic Packet](https://superuser.com/a/1066637)\n* Add new hosts via the webinterface using either their hostname or their mac address.\n* Detect the online status of saved hosts. To determine, they are at the same time [ping](https://en.wikipedia.org/wiki/Ping_(networking_utility))ed and we try to establish a TCP connection on port 3389. This port [is used](https://serverfault.com/a/12006) by the Microsoft Remote Desktop Protocol. This way, we can work with hosts that don't answer normal pings.\n* Delete existing hosts from the list.\n* When waking a host, the application repeatedly tries to reach the host and updates you about the status. You see immediately when the host finished booting so that you can connect via ssh/RDP/etc..\n\n## Showcase\n\nThis application uses the following techniques and might be suitable as a simple but full-fledged example of how they work:\n\n* [Blazor](https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor)\n  * Components and Pages in Razor\n  * UI-Server-interaction which would typically require AJAX/writing JavaScript. See the `Wake` page and the *Status* column of the index page.\n* .Net 7\n* [Entity Framework Core](https://docs.microsoft.com/en-us/ef/core/) Code First\n  * Automatic Migrations\n  * Supports T-SQL and SQLite, selection by connection string in `appsettings.json`\n* Dependency Injection using [`Microsoft.Extensions.DependencyInjection`](https://www.nuget.org/packages/Microsoft.Extensions.DependencyInjection/)\n* Continuous Integration and Continuous Deployment using GitHub Actions.\n  * Docker image creation and push\n  * Zipped executables in GitHub Release\n* Dependency updates are partly automated using [Dependabot](https://dependabot.com/).\n* Usage of Microsoft.Extensions.Logging with event ids and custom parameters.\n* Usage of Application Insights to keep track of logged application events in production.\n* Git height based versioning using [NBGV](https://github.com/dotnet/nerdbank.gitversioning).\n\n## Known Limitations\n\n* Adding hosts by hostname is currently impossible on platforms except Windows and Linux, as there is no appropriate ARP API.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorg-jung%2FBlazorWoL","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeorg-jung%2FBlazorWoL","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorg-jung%2FBlazorWoL/lists"}