{"id":13634597,"url":"https://github.com/upvpn/upvpn-app","last_synced_at":"2025-04-18T23:32:30.803Z","repository":{"id":176334994,"uuid":"653667843","full_name":"upvpn/upvpn-app","owner":"upvpn","description":"UpVPN is the world's first Serverless VPN. The VPN app is available for macOS, Linux, Windows, tvOS, iOS, and Android. The UpVPN service can also be used with any WireGuard-compatible client through the Web Device feature.","archived":false,"fork":false,"pushed_at":"2024-10-28T21:27:37.000Z","size":8791,"stargazers_count":215,"open_issues_count":3,"forks_count":11,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-28T21:34:20.595Z","etag":null,"topics":["android","chromeos","ios","ipados","linux","macos","raspberrypios","serverless","serverless-vpn","tvos","upvpn","vpn","wireguard","wireguard-vpn"],"latest_commit_sha":null,"homepage":"https://UpVPN.app","language":"Swift","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/upvpn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-14T13:45:48.000Z","updated_at":"2024-10-28T21:27:02.000Z","dependencies_parsed_at":"2023-11-06T05:27:21.495Z","dependency_job_id":"d2dacee7-bc6b-4fb9-8fe8-d00f2da89702","html_url":"https://github.com/upvpn/upvpn-app","commit_stats":null,"previous_names":["upvpn/upvpn-app"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upvpn%2Fupvpn-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upvpn%2Fupvpn-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upvpn%2Fupvpn-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upvpn%2Fupvpn-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/upvpn","download_url":"https://codeload.github.com/upvpn/upvpn-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223786390,"owners_count":17202581,"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":["android","chromeos","ios","ipados","linux","macos","raspberrypios","serverless","serverless-vpn","tvos","upvpn","vpn","wireguard","wireguard-vpn"],"created_at":"2024-08-02T00:00:26.992Z","updated_at":"2024-11-09T04:30:54.531Z","avatar_url":"https://github.com/upvpn.png","language":"Swift","funding_links":[],"categories":["Applications","android"],"sub_categories":["Networking"],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://upvpn.app\"\u003e\n        \u003cimg src=\"./upvpn-assets/icons/Square71x71Logo.png\" \u003e\n    \u003c/a\u003e\n    \u003ch3 align=\"center\"\u003eupvpn\u003c/h3\u003e\n    \u003ch4 align=\"center\"\u003eA Modern Serverless VPN\u003c/h4\u003e\n    \u003cimg src=\"upvpn-assets/cli.gif\" /\u003e\n\u003c/div\u003e\n\n# upvpn\n\nupvpn (pronounced Up VPN) app is a WireGuard VPN client for Linux, Windows, Android, tvOS, iOS, and macOS.\nFor more information please visit https://upvpn.app\n\nupvpn desktop app is made up of UI, CLI and background Daemon.\n\n# Serverless\n\nupvpn utilizes a serverless computing model, where a Linux-based WireGuard server is provisioned on public cloud providers when the app requests a VPN connection. The server is deprovisioned when the app requests to disconnect from the VPN.\n\nThis entire process occurs with a single click or tap on the user interface, or through a single command in the terminal.\n\n# Install\n\n- [Linux](https://upvpn.app/downloads/linux)\n- [Windows](https://upvpn.app/downloads/windows)\n- [macOS](https://upvpn.app/downloads/macos) | [App Store](https://apps.apple.com/app/serverless-vpn-upvpn/id6596774170)\n- [iOS | iPadOS | tvOS](https://upvpn.app/downloads/ios) | [App Store](https://apps.apple.com/app/serverless-vpn-upvpn/id6596774170)\n- [Android](https://upvpn.app/downloads/android) | [Google Play](https://play.google.com/store/apps/details?id=app.upvpn.upvpn) | [Amazon Appstore](https://www.amazon.com/dp/B0CQ3PNX54) | [Galaxy Store](https://galaxy.store/upvpn) | [APK from Github Releases](https://github.com/upvpn/upvpn-app/releases)\n\nAlternatively, visit [Github Releases](https://github.com/upvpn/upvpn-app/releases) or the website at https://upvpn.app/download\n\n# Code\n\n## Organization\n\n| Crate or Directory | Description |\n| --- | --- |\n| upvpn-android | Standalone app for Android. |\n| upvpn-apple | Standalone apps for tvOS, iOS and macOS built using [Network Extension](https://developer.apple.com/documentation/networkextension). The macOS app doesn't include the `upvpn` CLI. |\n| upvpn-cli | Code for `upvpn` cli. |\n| upvpn-config | Configuration read from env vars, `upvpn.conf.toml` are merged at runtime in `upvpn-config` and is source of runtime configuration for `upvpn-cli`, `upvpn-daemon`, and `upvpn-ui`. |\n| upvpn-controller | Defines GRPC protobuf for APIs exposed by `upvpn-daemon` to be consumed by `upvpn-cli` and `upvpn-ui`. |\n| upvpn-daemon | Daemon is responsible for orchestrating a VPN session. It takes input from upvpn-cli or upvpn-ui via GRPC (defined in `upvpn-controller`) and make calls to backend server via separate GRPC (defined in `upvpn-server`). When backend informs that a server is ready daemon configures network tunnel, see [NetworkDependency.md](./NetworkDependency.md) for more info. |\n| upvpn-entity | Defines data models used by upvpn-daemon to persist data on disk in sqlite database. |\n| upvpn-migration | Defines database migration from which `upvpn-entity` is generated. |\n| upvpn-packages| Contains resources to package binaries for distribution on macOS (pkg), Linux (rpm \u0026 deb), and Windows (msi). |\n|upvpn-server| Contains GRPC protobuf definitions and code for communication with backend server. |\n| upvpn-types | Defines common Rust types for data types used in various crates. These are also used to generate Typescript types for upvpn-ui for seamless serialization and deserialization across language boundaries. |\n|upvpn-ui| A Tauri based desktop app. GPRC communication with daemon is done in Rust. Typescript code interact with Rust code via Tauri commands. |\n\n\n## Building Desktop Apps\n\nPlease see [Build.md](./Build.md)\n\n## Building Android App\n\nPlease see [upvpn-android/README.md](./upvpn-android/README.md)\n\n## Building iOS, tvOS, macOS Apps\n\nPlease see [upvpn-apple/README.md](./upvpn-apple/README.md)\n\n# License\n\n Android app, apps for Apple Platforms, and all Rust crates in this repository are [licensed under GPL version 3](./LICENSE).\n\nCopyright (C) 2023  upvpn LLC\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupvpn%2Fupvpn-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fupvpn%2Fupvpn-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupvpn%2Fupvpn-app/lists"}