{"id":26481038,"url":"https://github.com/francescor/wirego","last_synced_at":"2026-04-19T03:31:41.407Z","repository":{"id":151356330,"uuid":"365976054","full_name":"francescor/wirego","owner":"francescor","description":"Simple bash script to manage Wireguard profiles","archived":false,"fork":false,"pushed_at":"2024-10-15T16:37:26.000Z","size":44,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-20T02:55:50.497Z","etag":null,"topics":["bash","vpn","wg-quick","wireguard","wireguard-vpn"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/francescor.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":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-10T08:46:22.000Z","updated_at":"2024-10-15T16:38:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"6fd4d537-2ee8-4f94-b122-6eabd56bce52","html_url":"https://github.com/francescor/wirego","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/francescor/wirego","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francescor%2Fwirego","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francescor%2Fwirego/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francescor%2Fwirego/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francescor%2Fwirego/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/francescor","download_url":"https://codeload.github.com/francescor/wirego/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francescor%2Fwirego/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31993695,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"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":["bash","vpn","wg-quick","wireguard","wireguard-vpn"],"created_at":"2025-03-20T02:55:53.969Z","updated_at":"2026-04-19T03:31:41.379Z","avatar_url":"https://github.com/francescor.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wirego\n\n`wirego` is a basic script to manage your many Wireguard's profiles.\n\n\n## Installation\n\nJust download `wirego` and save it in a directory of your $PATH, e.g.\n\n```\nwget https://raw.githubusercontent.com/francescor/wirego/main/wirego\nchmod +x wirego\nsudo mv wirego /usr/local/bin\n```\n\n## Examples\n\nList all available Wireguard profiles:\n\n`wirego`\n\nTurn on Wireguard profile `/etc/wireguard/myvpn.conf`\n\n`wirego myvpn`\n\nTurn up all Wireguard profiles defined in `~/.wirego/wirego.profile` (prior do taking down all previous active Wireguard profiles)\n\n`wirego up`\n\nTurn down any active Wireguard\n\n`wirego down`\n\nShow the QR code of a profile\n\n`wirego qr`\n\n\n## Why?\n\nWireguard tool commands `wg` \u0026 `wg-quick` do not get into my head :(  so I've just created this basic script for myself.\nI find myself taking up and down differen Wireguard profiles very often, and definitively many at the same time, so I just needed this script myself.\n\nBtw, Fedora DNS handling is a bit nasty to me: I see I need to execute\n\n```\nsudo systemctl  restart systemd-resolved.service\n```\neverytime I turn down Wireguard (to remove from `/etc/resolv.conf` the DNS added by the Wireguard VPN), so\nI just added this command once at the end of the script, instead of having to add a `PostDown` in each wg profile.\n\n## Configuration file\n\nAn empty configuration file is created in your HOME: `~/.wirego/wirego.profile`\n\nIt is useful to store a list of Wireguard profiles you want to take up all together\n\ne.g. with this content in `~/.wirego/wirego.profile`\n```\n# Ordered list of wireguard profiles to take up with `wirego up`\nup_profiles=\"office1 office2 office3\"\n```\nthe command:\n```\nwirego up\n```\nwill activete all three wireguard profiles: note that if one or more profiles set the DNS, the last profile will `win`, of course;\nat the same time only one profile should have the \"catch all\" directive: `AllowedIPs = 0.0.0.0/0` but, as you know, you can skip this if you want\nto surf the internet with your modem's pulic IP: this is pretty useful when your customers provides you with their Wireguard as a way to give you a public address that allows you to access their web services: you do not want to surf the internet with their IP (just their servers).\n\n## Notes, requirements, and limitations\n\nIt's just a basic script, written for Fedora Linux (v.33... 40), so you may have to adapt it to your o.s.\nFeel free to fork and adapt this code, of just suggest changes here.\n\nIt requires:\n* [Wireguard VPN module](https://www.wireguard.com/install/) which is probably already available in your Linux;\n* [wireguard-tools](https://www.wireguard.com/install/) (`dnf install wireguard-tools`) that provides its great `wg` utility;\n* `sudo`\n\nand Wireguard profiles should be saved into the directory: `/etc/wireguard`\n\nScript is based on the convention that when you activate one profile (or many profiles), all active ones are first taken down.\n\nTo generate QR code with `wirego qr` (useful to move your vpn to a mobile phone), you need `qrencode`\n\n```\nsudo dnf install qrencode\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrancescor%2Fwirego","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrancescor%2Fwirego","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrancescor%2Fwirego/lists"}