VPN client for Apple platforms.
Go to file
Davide De Rosa 6fd1f96e54
Use a distinct debug log per VPN protocol (#277)
Log content from different tunnels was interleaved.

Store debug logs in a protocol-specific folder.
2023-04-01 21:40:15 +02:00
.github Full OpenVPN XOR patch (#245) 2022-11-06 18:08:41 +01:00
Passepartout Lock in background (#275) 2023-03-31 23:47:29 +02:00
Passepartout.xcodeproj Lock in background (#275) 2023-03-31 23:47:29 +02:00
PassepartoutLibrary Use a distinct debug log per VPN protocol (#277) 2023-04-01 21:40:15 +02:00
PassepartoutTests Update copyright 2023-03-17 16:56:19 +01:00
ci Embed fastlane scripts locally 2022-10-04 08:20:06 +02:00
fastlane Run tests on PR (#241) 2022-10-30 11:53:53 +01:00
res Drop outdated README snapshot 2022-09-30 22:01:01 +02:00
scripts Attempt beta release 2023-03-19 14:42:56 +01:00
.beta-base Refine beta commit script 2022-09-30 22:01:01 +02:00
.beta-build Attempt beta release 2023-03-25 17:07:58 +01:00
.env Polish release workflow (#207) 2021-12-03 15:31:19 +01:00
.env.beta Run tests on PR (#241) 2022-10-30 11:53:53 +01:00
.env.ios Run tests on PR (#241) 2022-10-30 11:53:53 +01:00
.env.mac Run tests on PR (#241) 2022-10-30 11:53:53 +01:00
.gitignore Reorganize and fix platform-specific fastlane data 2022-04-25 11:21:19 +02:00
.gitmodules Embed fastlane scripts locally 2022-10-04 08:20:06 +02:00
.ruby-version Update bundle and Ruby version 2022-08-16 12:27:40 +02:00
.swiftlint.yml Upgrade SwiftLint to CI version (#266) 2023-03-19 16:10:40 +01:00
API Refactor library into domain + impl 2022-06-23 23:31:01 +02:00
CHANGELOG.1.ios.md Reorganize and fix platform-specific fastlane data 2022-04-25 11:21:19 +02:00
CHANGELOG.1.mac.md Reorganize and fix platform-specific fastlane data 2022-04-25 11:21:19 +02:00
CHANGELOG.md Lock in background (#275) 2023-03-31 23:47:29 +02:00
CLA.rst Initial commit 2018-10-11 09:13:19 +02:00
CONTRIBUTING.md Initial commit 2018-10-11 09:13:19 +02:00
Config.xcconfig Fine-tune SwiftLint (#265) 2023-03-19 14:41:53 +01:00
Gemfile [ci skip] Remove long-unused CocoaPods gems 2022-04-12 18:44:59 +02:00
Gemfile.lock Attempt beta release 2023-03-25 17:07:58 +01:00
LICENSE Initial commit 2018-10-11 09:13:19 +02:00
README.md Update copyright 2023-03-17 16:56:19 +01:00
swiftgen.yml Get Mac strings from main bundle 2022-07-18 07:55:56 +02:00

README.md

iOS 14+ macOS 11+ TunnelKit 5.0 License GPLv3

Unit Tests Release

Passepartout

Passepartout is a user-friendly OpenVPN® and WireGuard® client for iOS and macOS.

Join Reddit Tweet

Overview

All profiles in one place

Passepartout lets you handle multiple profiles in one single place and quickly switch between them.

Ease of use

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.

Not to mention iCloud support, which makes your VPN profiles available on all your devices without any additional effort!

Trusted networks

Trust Wi-Fi, cellular (iOS) or wired (macOS) networks to fine-grain your connectivity. You can then choose to retain a VPN connection when entering a trusted network, or prevent it completely.

Siri shortcuts

Enjoy the convenience of Siri shortcuts to automate frequent VPN actions.

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.

See your connection parameters

Passepartout strives for transparency, by showing a fairly detailed yet understandable resume of your connection parameters.

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 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:

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.

Installation

Requirements

  • iOS 14+ / macOS 11+
  • Xcode 13+ (SwiftPM 5.3)
  • Git (preinstalled with Xcode Command Line Tools)
  • Ruby (preinstalled with macOS)
  • golang

It's highly recommended to use the Git and Ruby packages provided by Homebrew.

Testing

Download the app codebase locally:

$ git clone https://github.com/passepartoutvpn/passepartout-apple.git

Enter the directory and clone the submodules:

$ 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.

License

Copyright (c) 2023 Davide De Rosa. All rights reserved.

This project is licensed under the GPLv3.

Contributing

By contributing to this project you are agreeing to the terms stated in the Contributor License Agreement (CLA). For more details please see CONTRIBUTING.

Credits

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

© Copyright 2022 OpenVPN | OpenVPN is a registered trademark of OpenVPN, Inc.

WireGuard

© Copyright 2015-2022 Jason A. Donenfeld. All Rights Reserved. "WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

OpenSSL

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (https://www.openssl.org/)

Community

A huge credit goes to:

  • My tiny group of 3 private beta testers
  • The 3600+ public testers using the beta on a daily basis
  • The continued support and feedback from the Passepartout community on Reddit
  • The overall patience of users affected by my bugs that actively collaborate in resolving them
  • All those who contributed to the amazingly high rating on the App Store

Translations

  • Chinese (Simplified): OnlyThen - @OnlyThen
  • Dutch: Norbert de Vreede - @paxpacis
  • English: Davide De Rosa (author)
  • French: Julien Laniel - @linkjul
  • German: Christian Lederer, Theodor Tietze
  • Greek: Konstantinos Koukoulakis
  • Italian: Davide De Rosa (author)
  • Polish: Piotr Książek
  • Portuguese: Helder Santana - @heldr
  • Russian: Alexander Korobynikov
  • Spanish: Davide De Rosa (author), Elena Vivó
  • Swedish: Henry Gross-Hellsen - @cowpod
  • Ukranian: Dmitry Chirkin - @josser

Usage

You are strongly encouraged to read carefully both the disclaimer and privacy policy before using this software.

Contacts

Twitter: @keeshux

Website: passepartoutvpn.app (FAQ)