Update README (#1008)

- Simplify badges
- Drop app description, annoying to maintain (refer to the website)
- Drop screenshots (refer to the App Store)
- Update Credits
- Inform about private PassepartoutKit

Fixes #613
This commit is contained in:
Davide 2024-12-14 09:44:10 +01:00 committed by GitHub
parent ea931aa4c7
commit 1837d0576e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 67 additions and 125 deletions

View File

@ -4,5 +4,5 @@
- GOOD: "Add new feature" - GOOD: "Add new feature"
- BAD: "Added new feature" - BAD: "Added new feature"
- Rebase your branch to `master` and possibly squash unrelevant commits. - Rebase your branch to `master` and possibly squash unrelevant commits.
- Make sure to pass the unit tests, as long as CI doesn't automate them yet. - Make sure to pass the unit tests locally, even though CI runs them automatically.
- Submit the PR. - Submit the PR.

View File

@ -1,6 +1,10 @@
{ {
"licenses": [ "licenses": [
{ {
"name": "fastlane",
"licenseName": "MIT",
"licenseURL": "https://raw.githubusercontent.com/fastlane/fastlane/master/LICENSE"
}, {
"name": "GenericJSON", "name": "GenericJSON",
"licenseName": "MIT", "licenseName": "MIT",
"licenseURL": "https://raw.githubusercontent.com/iwill/generic-json-swift/master/LICENSE" "licenseURL": "https://raw.githubusercontent.com/iwill/generic-json-swift/master/LICENSE"
@ -20,6 +24,10 @@
"name": "SwiftGen", "name": "SwiftGen",
"licenseName": "MIT", "licenseName": "MIT",
"licenseURL": "https://raw.githubusercontent.com/SwiftGen/SwiftGen/master/LICENCE" "licenseURL": "https://raw.githubusercontent.com/SwiftGen/SwiftGen/master/LICENCE"
}, {
"name": "SwiftLint",
"licenseName": "MIT",
"licenseURL": "https://raw.githubusercontent.com/realm/SwiftLint/master/LICENSE"
} }
], ],
"notices": [ "notices": [

View File

@ -54,9 +54,17 @@ public final class Theme: ObservableObject {
public internal(set) var emptyMessageColor: Color = .secondary public internal(set) var emptyMessageColor: Color = .secondary
public internal(set) var primaryColor = Color(red: 0.318, green: 0.365, blue: 0.443) public internal(set) var primaryColor = Color(
red: Double(0x51) / 255.0,
green: Double(0x5D) / 255.0,
blue: Double(0x70) / 255.0
)
public internal(set) var activeColor = Color(red: .zero, green: Double(0xAA) / 255.0, blue: .zero) public internal(set) var activeColor = Color(
red: .zero,
green: Double(0xAA) / 255.0,
blue: .zero
)
public internal(set) var inactiveColor: Color = .gray public internal(set) var inactiveColor: Color = .gray

169
README.md
View File

@ -1,130 +1,61 @@
<p style="text-align: center; padding: 0em 1em"><img src="res/logo.svg" width="300" height="300" /></p> ![Passepartout logo](Passepartout/App/Assets.xcassets/Logo.imageset/Logo@2x.png)
![iOS 16+](https://img.shields.io/badge/iOS-16+-green.svg)
![macOS 13+](https://img.shields.io/badge/macOS-13+-green.svg)
![tvOS 17+](https://img.shields.io/badge/tvOS-17+-green.svg)
[![License GPLv3](https://img.shields.io/badge/License-GPLv3-lightgray.svg)](LICENSE)
[![Unit Tests](https://github.com/passepartoutvpn/passepartout/actions/workflows/test.yml/badge.svg?branch=)](https://github.com/passepartoutvpn/passepartout/actions/workflows/test.yml)
[![Release](https://github.com/passepartoutvpn/passepartout/actions/workflows/release.yml/badge.svg?branch=)](https://github.com/passepartoutvpn/passepartout/actions/workflows/release.yml)
# [Passepartout][about-website] # [Passepartout][about-website]
Passepartout is your go-to app for VPN and privacy. [OpenVPN®][openvpn] and [WireGuard®][wireguard] client for Apple platforms, the OpenVPN stack also implements the [Tunnelblick XOR patch][openvpn-xor-patch]. [![Unit Tests](https://github.com/passepartoutvpn/passepartout/actions/workflows/test.yml/badge.svg?branch=)](https://github.com/passepartoutvpn/passepartout/actions/workflows/test.yml)
[![Release](https://github.com/passepartoutvpn/passepartout/actions/workflows/release.yml/badge.svg?branch=)](https://github.com/passepartoutvpn/passepartout/actions/workflows/release.yml)
[![Join Reddit](https://img.shields.io/badge/discuss-Reddit-orange.svg)][about-reddit] [![Join Reddit](https://img.shields.io/badge/discuss-Reddit-orange.svg)][about-reddit]
[![Join TestFlight](https://img.shields.io/badge/beta-Testflight-blue.svg)][about-testflight] [![Join TestFlight](https://img.shields.io/badge/beta-Testflight-blue.svg)][about-testflight]
## Overview Passepartout is your go-to app for VPN and privacy.
### All profiles in one place Passepartout runs on [iPhone, iPad, Mac, and Apple TV][web-appstore].
Passepartout lets you handle multiple profiles in one single place and quickly switch between them. ## Features
[<img src="res/ios/snap-home.png" width="300">](res/ios/snap-home.png) [OpenVPN®][openvpn] and [WireGuard®][wireguard] client for Apple platforms, the OpenVPN stack also implements the [Tunnelblick XOR patch][openvpn-xor-patch].
### Ease of use Other features:
With its native look & feel, Passepartout focuses on ease of use. It does so by stripping the flags that are today obsolete or rarely used. With good approximation, it mimics the most relevant features you will find in the official OpenVPN and WireGuard clients. - On-demand rules
- Override DNS and HTTP proxy
- Custom routing
- Presets for multiple providers (virtually any)
Not to mention iCloud support, which makes your VPN profiles available on all your devices without any additional effort! Tailored for Apple platforms:
### On demand - Apple TV
- iCloud
Define rules for Wi-Fi, cellular (iOS) or wired (macOS) networks to fine-grain how you automate your VPN connectivity. - Shortcuts
- No background activities
[<img src="res/ios/snap-on-demand.png" width="300">](res/ios/snap-on-demand.png) - Wise on battery
### Siri shortcuts
Enjoy the convenience of Siri shortcuts to automate frequent VPN actions.
[<img src="res/ios/snap-shortcuts.png" width="300">](res/ios/snap-shortcuts.png)
### Override network settings
Override default gateway, DNS (plus DoH/DoT), proxy and MTU settings right from the app. Don't bother editing the configuration file or your server settings. This is especially useful if you want to override your provider settings, e.g. to integrate your own DNS-based ad blocking.
[<img src="res/ios/snap-network.png" width="300">](res/ios/snap-network.png)
### See your connection parameters
Passepartout strives for transparency, by showing a fairly detailed yet understandable resume of your connection parameters.
[<img src="res/ios/snap-parameters.png" width="300">](res/ios/snap-parameters.png)
### Disconnect on sleep
Keeping the VPN active in the background provides smoother operation, but may be tough for the battery. You might want to use this feature if you're concerned about battery life. When the device goes to sleep, the VPN will disconnect to then reconnect on device wake-up.
### No unrequested activity
Passepartout is a VPN client and does absolutely nothing else without your consent. The providers infrastructures are obtained via a [static GitHub API][app-api] if and only if you manually refresh them.
### Presets for major providers
Passepartout can connect to a few well-known VPN providers with an existing account:
- [Hide.me][app-net-hideme]
- [Mullvad][app-net-mullvad]
- [NordVPN][app-net-nordvpn]
- [Oeck][app-net-oeck]
- [Private Internet Access][app-net-pia]
- [ProtonVPN][app-net-protonvpn]
- [SurfShark][app-net-surfshark]
- [TorGuard][app-net-torguard]
- [TunnelBear][app-net-tunnelbear]
- [VyprVPN][app-net-vyprvpn]
- [Windscribe][app-net-windscribe]
In preset mode, you can pick pre-resolved IPv4 endpoints when DNS is problematic.
### Import configuration files
Passepartout can import .ovpn (OpenVPN) and .conf/.wg (WireGuard) configuration files as is. You can find details on what may or may not work in the related section of the [TunnelKit README][dep-tunnelkit-ovpn].
## Installation ## Installation
**WARNING: This will not work because PassepartoutKit is a private repository, as it's not ready for public use yet.** [Follow updates here](https://github.com/passepartoutvpn/passepartout/issues/793).
### Requirements ### Requirements
- iOS 15+ / macOS 12+ / tvOS 17+ - iOS 16+ / macOS 13+ / tvOS 17+
- Xcode 13+ (SwiftPM 5.3) - Xcode 15+ (SwiftPM 5.5)
- Git (preinstalled with Xcode Command Line Tools) - Git (preinstalled with Xcode Command Line Tools)
- Ruby (preinstalled with macOS) - Ruby (preinstalled with macOS)
- golang
It's highly recommended to use the Git and Ruby packages provided by [Homebrew][dep-brew]. It's highly recommended that you use the Git and Ruby packages provided by [Homebrew][dep-brew].
### Testing ### Testing
Download the app codebase locally: Download the app codebase locally:
$ git clone https://github.com/passepartoutvpn/passepartout-apple.git $ git clone https://github.com/passepartoutvpn/passepartout.git
Enter the directory and clone the submodules: For everything to work properly, you must comply with all the capabilities and entitlements in the main app and the tunnel extension target. Therefore, you must update the `Config.xcconfig` file according to your developer account.
$ git submodule init
$ git submodule update
For everything to work properly, make sure to comply with all the capabilities/entitlements, both in the main app and the tunnel extension target.
Make sure to update `Config.xcconfig` according to your developer account and your identifiers:
CFG_TEAM_ID = A1B2C3D4E5
CFG_APP_ID = com.example.MyApp
CFG_APP_LAUNCHER_ID = com.example.MyApp.Launcher // macOS only
CFG_GROUP_ID = com.example.MyAppGroup // omit the "group." prefix
CFG_APPSTORE_ID = 1234567890 // optional for development, can be bogus
Also, `PATH` must include your golang installation in order to compile WireGuardKit:
PATH = $(PATH):/path/to/golang
To eventually test the app, open `Passepartout.xcodeproj` in Xcode and run the `Passepartout` target. To eventually test the app, open `Passepartout.xcodeproj` in Xcode and run the `Passepartout` target.
## License ## License
Copyright (c) 2023 Davide De Rosa. All rights reserved. Copyright (c) 2024 Davide De Rosa. All rights reserved.
This project is licensed under the [GPLv3][license-content]. This project is licensed under the [GPLv3][license-content].
@ -134,23 +65,22 @@ By contributing to this project you are agreeing to the terms stated in the [Con
## Credits ## Credits
- [fastlane][credits-fastlane]
- [GenericJSON][credits-genericjson]
- [Kvitto][credits-kvitto]
- [lzo][credits-lzo]
- [SwiftGen][credits-swiftgen]
- [SwiftLint][credits-swiftlint]
The logo is taken from the awesome Circle Icons set by Nick Roach. The logo is taken from the awesome Circle Icons set by Nick Roach.
The country flags are taken from: <https://github.com/lipis/flag-icon-css/>
- Kvitto - Copyright (c) 2015 Oliver Drobnik
- lzo - Copyright (c) 1996-2017 Markus F.X.J. Oberhumer
- PIATunnel - Copyright (c) 2018-Present Private Internet Access
- SwiftGen - Copyright (c) 2018 SwiftGen
- SwiftyBeaver - Copyright (c) 2015 Sebastian Kreutzberger
### OpenVPN ### OpenVPN
© Copyright 2023 OpenVPN | OpenVPN is a registered trademark of OpenVPN, Inc. © Copyright 2024 OpenVPN | OpenVPN is a registered trademark of OpenVPN, Inc.
### WireGuard ### WireGuard
© Copyright 2015-2023 Jason A. Donenfeld. All Rights Reserved. "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld. © Copyright 2015-2024 Jason A. Donenfeld. All Rights Reserved. "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.
### OpenSSL ### OpenSSL
@ -168,6 +98,8 @@ A _huge_ credit goes to:
## Translations ## Translations
The app is mostly translated with [ChatGPT][credits-chatgpt], but these are the acknowledgments to the original translators:
- Chinese (Simplified): OnlyThen - [@OnlyThen](https://github.com/OnlyThen) - Chinese (Simplified): OnlyThen - [@OnlyThen](https://github.com/OnlyThen)
- Dutch: Norbert de Vreede - [@paxpacis](https://github.com/paxpacis) - Dutch: Norbert de Vreede - [@paxpacis](https://github.com/paxpacis)
- English: Davide De Rosa (author) - English: Davide De Rosa (author)
@ -184,7 +116,7 @@ A _huge_ credit goes to:
## Usage ## Usage
You are strongly encouraged to read carefully both the [disclaimer][web-disclaimer] and [privacy policy][web-privacy] before using this software. You are encouraged to read carefully both the [disclaimer][web-disclaimer] and [privacy policy][web-privacy] before using this software.
## Contacts ## Contacts
@ -192,32 +124,27 @@ Twitter: [@keeshux][about-twitter]
Website: [passepartoutvpn.app][about-website] ([FAQ][about-faq]) Website: [passepartoutvpn.app][about-website] ([FAQ][about-faq])
[web-appstore]: https://apps.apple.com/us/app/passepartout-vpn-client/id1433648537?mt=8
[openvpn]: https://openvpn.net/index.php/open-source/overview.html [openvpn]: https://openvpn.net/index.php/open-source/overview.html
[openvpn-xor-patch]: https://tunnelblick.net/cOpenvpn_xorpatch.html [openvpn-xor-patch]: https://tunnelblick.net/cOpenvpn_xorpatch.html
[wireguard]: https://www.wireguard.com/ [wireguard]: https://www.wireguard.com/
[app-api]: https://github.com/passepartoutvpn/passepartout-api
[app-net-hideme]: https://member.hide.me/en/checkout?plan=new_default_prices&coupon=6CB-BDB-802&duration=24
[app-net-mullvad]: https://mullvad.net/en/account/create/
[app-net-nordvpn]: https://go.nordvpn.net/SH21Z
[app-net-oeck]: https://www.oeck.com
[app-net-pia]: https://www.privateinternetaccess.com/pages/buy-vpn/
[app-net-protonvpn]: https://proton.go2cloud.org/SHZ
[app-net-surfshark]: https://surfshark.com
[app-net-torguard]: https://torguard.net/
[app-net-tunnelbear]: https://www.tunnelbear.com/
[app-net-vyprvpn]: https://www.vyprvpn.com/
[app-net-windscribe]: https://secure.link/kCsD0prd
[dep-brew]: https://brew.sh/ [dep-brew]: https://brew.sh/
[dep-tunnelkit]: https://github.com/passepartoutvpn/tunnelkit
[dep-tunnelkit-ovpn]: https://github.com/passepartoutvpn/tunnelkit#support-for-ovpn-configuration
[dep-openssl]: https://www.openssl.org/ [dep-openssl]: https://www.openssl.org/
[license-content]: LICENSE [license-content]: LICENSE
[contrib-cla]: CLA.rst [contrib-cla]: CLA.rst
[contrib-readme]: CONTRIBUTING.md [contrib-readme]: CONTRIBUTING.md
[credits-fastlane]: https://github.com/fastlane/fastlane
[credits-genericjson]: https://github.com/iwill/generic-json-swift
[credits-kvitto]: https://github.com/Cocoanetics/Kvitto
[credits-lzo]: https://www.oberhumer.com/opensource/lzo/
[credits-swiftgen]: https://github.com/SwiftGen/SwiftGen
[credits-swiftlint]: https://github.com/realm/SwiftLint
[credits-chatgpt]: https://chatgpt.com/
[web-disclaimer]: https://passepartoutvpn.app/disclaimer/ [web-disclaimer]: https://passepartoutvpn.app/disclaimer/
[web-privacy]: https://passepartoutvpn.app/privacy/ [web-privacy]: https://passepartoutvpn.app/privacy/

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 KiB

View File

@ -1 +0,0 @@
<?xml version="1.0" ?><svg enable-background="new 0 0 64 64" height="64px" version="1.1" viewBox="0 0 64 64" width="64px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Layer_1"><g><rect fill="#4F5D73" width="64" height="64"/></g><g><g><rect fill="#F5CF87" height="14" width="6" x="24" y="16"/></g><g><rect fill="#F5CF87" height="14" width="6" x="24" y="34"/></g><g><rect fill="#F5CF87" height="14" width="6" x="34" y="16"/></g><g><rect fill="#F5CF87" height="14" width="6" x="34" y="34"/></g></g><g opacity="0.2"><path d="M40,14H24c-2.209,0-4,1.791-4,4v32c0,2.209,1.791,4,4,4h16c2.209,0,4-1.791,4-4V18 C44,15.791,42.209,14,40,14z M30,50h-6V36h6V50z M30,32h-6V18h6V32z M40,50h-6V36h6V50z M40,32h-6V18h6V32z" fill="#231F20"/></g><g><path d="M40,12H24c-2.209,0-4,1.791-4,4v32c0,2.209,1.791,4,4,4h16c2.209,0,4-1.791,4-4V16 C44,13.791,42.209,12,40,12z M30,48h-6V34h6V48z M30,30h-6V16h6V30z M40,48h-6V34h6V48z M40,30h-6V16h6V30z" fill="#E0995E"/></g><g opacity="0.2"><circle cx="40" cy="34" fill="#231F20" r="3"/></g><g><circle cx="40" cy="32" fill="#F5CF87" r="3"/></g></g><g id="Layer_2"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB