{"id":27808539,"url":"https://github.com/trugamr/wol","last_synced_at":"2025-05-01T10:51:53.445Z","repository":{"id":251654924,"uuid":"837467169","full_name":"Trugamr/wol","owner":"Trugamr","description":"🦭 Wake up your devices with a single command or click. A Wake-On-LAN tool that works via CLI and web interface.","archived":false,"fork":false,"pushed_at":"2025-04-14T18:30:55.000Z","size":126,"stargazers_count":514,"open_issues_count":3,"forks_count":11,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-05-01T10:51:48.160Z","etag":null,"topics":["cli","go","magic-packet","self-hosted","selfhosted","wake-on-lan","web-interface"],"latest_commit_sha":null,"homepage":"","language":"Go","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/Trugamr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"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}},"created_at":"2024-08-03T04:25:34.000Z","updated_at":"2025-04-30T20:42:32.000Z","dependencies_parsed_at":"2025-02-28T18:23:00.384Z","dependency_job_id":"a55f40bd-37d0-4705-bea1-64fe3b4c938a","html_url":"https://github.com/Trugamr/wol","commit_stats":null,"previous_names":["trugamr/wol"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Trugamr%2Fwol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Trugamr%2Fwol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Trugamr%2Fwol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Trugamr%2Fwol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Trugamr","download_url":"https://codeload.github.com/Trugamr/wol/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251864113,"owners_count":21656288,"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":["cli","go","magic-packet","self-hosted","selfhosted","wake-on-lan","web-interface"],"created_at":"2025-05-01T10:51:52.819Z","updated_at":"2025-05-01T10:51:53.420Z","avatar_url":"https://github.com/Trugamr.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wol 🦭\n\nA CLI tool to send Wake-On-LAN (WOL) magic packets to wake up devices on your\nnetwork. Features both CLI commands and a web interface.\n\n\u003cimg src=\"assets/images/web.png\" alt=\"Web Interface\" /\u003e\n\n## Features\n\n- Send WOL magic packets via CLI or web interface\n- Configure multiple machines with names for easy access\n- List configured machines\n- Web interface for easy wake-up\n- Docker support\n\n## Installation\n\n### Pre-built binaries\n\nDownload the latest release for your platform from the\n[releases page](https://github.com/trugamr/wol/releases).\n\nAvailable for:\n\n- Linux (x86_64, arm64, armv7)\n- macOS (x86_64, arm64)\n- Windows (x86_64)\n\n### Using Go\n\n```sh\ngo install github.com/trugamr/wol@latest\n```\n\n### Using Docker\n\n```sh\ndocker run --network host -v $(pwd)/config.yaml:/etc/wol/config.yaml ghcr.io/trugamr/wol:latest\n```\n\nOr using docker-compose:\n\n```yaml\n# Method 1: Using bind mount\nservices:\n  wol:\n    image: ghcr.io/trugamr/wol:latest\n    command: serve # To start the web interface\n    network_mode: \"host\"\n    volumes:\n      - ./config.yaml:/etc/wol/config.yaml\n\n# Method 2: Using environment variables\nservices:\n  wol:\n    image: ghcr.io/trugamr/wol:latest\n    command: serve # To start the web interface\n    network_mode: \"host\"\n    environment:\n      WOL_CONFIG: |\n        machines:\n          - name: desktop\n            mac: \"00:11:22:33:44:55\"\n            ip: \"192.168.1.100\"\n          - name: server\n            mac: \"AA:BB:CC:DD:EE:FF\"\n            ip: \"192.168.1.101\"\n        server:\n          listen: \":7777\"\n```\n\nCheck out `examples/reverse-proxy.yml` for an example of running wol behind\nreverse proxy with basic auth, https etc.\n\n\u003e [!NOTE]\n\u003e The config file should be mounted to `/etc/wol/config.yaml` inside the\n\u003e container. Host networking is recommended for Wake-on-LAN packets to work\n\u003e properly on your local network.\n\n## Configuration\n\nCreate a `config.yaml` file in one of these locations (in order of precedence):\n\n- `./config.yaml` (current directory)\n- `~/.wol/config.yaml` (home directory)\n- `/etc/wol/config.yaml` (system-wide)\n\nAlternatively, you can provide the configuration via the `WOL_CONFIG` environment variable:\n\n```sh\nexport WOL_CONFIG='\nmachines:\n  - name: desktop\n    mac: \"00:11:22:33:44:55\"\n    ip: \"192.168.1.100\" # Optional, for status checking\n  - name: server\n    mac: \"AA:BB:CC:DD:EE:FF\"\n    ip: \"192.168.1.101\" # Optional, for status checking\n\nserver:\n  listen: \":7777\" # Optional, defaults to :7777\n'\n```\n\nExample configuration:\n\n```yaml\nmachines:\n  - name: desktop\n    mac: \"00:11:22:33:44:55\"\n    ip: \"192.168.1.100\" # Optional, for status checking\n  - name: server\n    mac: \"AA:BB:CC:DD:EE:FF\"\n    ip: \"192.168.1.101\" # Optional, for status checking\n\nserver:\n  listen: \":7777\" # Optional, defaults to :7777\n```\n\n## Usage\n\n### CLI Commands\n\n```sh\n# List all configured machines\nwol list\n\n# Wake up a machine by name\nwol send --name desktop\n\n# Wake up a machine by MAC address\nwol send --mac \"00:11:22:33:44:55\"\n\n# Start the web interface\nwol serve\n\n# Show version information\nwol version\n```\n\n### Web Interface\n\nThe web interface is available at `http://localhost:7777` when running the serve\ncommand. It provides:\n\n- List of all configured machines\n- One-click wake up buttons\n- Real-time machine status monitoring (when IP is configured)\n- Version information\n- Links to documentation and support\n\n## Building from Source\n\n```sh\n# Clone the repository\ngit clone https://github.com/trugamr/wol.git\ncd wol\n\n# Build\ngo build\n\n# Run\n./wol\n```\n\n## Known Issues\n\n### Docker Container Ping Permissions\n\nWhen running in a Docker container, the machine status feature that uses ping may not work due to permission issues. This is because the application uses [pro-bing](https://github.com/prometheus-community/pro-bing) for sending pings, which requires specific Linux kernel settings.\n\nTo fix this issue, you need to set the following sysctl parameter on your host system:\n\n```sh\nsysctl -w net.ipv4.ping_group_range=\"0 2147483647\"\n```\n\nTo make this change persistent, add it to your `/etc/sysctl.conf` file.\n\nFor more details, see [issue #12](https://github.com/Trugamr/wol/issues/12).\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE.md)\nfile for details.\n\n## Contributing\n\nContributions are welcome! Feel free to open issues or submit pull requests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrugamr%2Fwol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrugamr%2Fwol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrugamr%2Fwol/lists"}