From 992fec5406c1b863ac1e736151dd84c59bd0c4fb Mon Sep 17 00:00:00 2001 From: lexi Date: Sun, 5 Jun 2022 17:06:44 +0000 Subject: [PATCH] Fix broken links (#1387) Signed-off-by: Daniel Gray --- docs/about/notices.en.md | 2 +- docs/android/grapheneos-vs-calyxos.en.md | 2 +- docs/android/overview.en.md | 2 +- docs/basics/account-deletion.en.md | 2 +- docs/basics/vpn-overview.en.md | 2 +- docs/calendar-contacts.en.md | 2 +- docs/dns.en.md | 18 +++++++++--------- docs/email-clients.en.md | 2 +- docs/email.en.md | 2 +- docs/linux-desktop/overview.en.md | 4 ++-- docs/notebooks.en.md | 1 - docs/search-engines.en.md | 4 ++-- docs/vpn.en.md | 4 ++-- 13 files changed, 23 insertions(+), 24 deletions(-) diff --git a/docs/about/notices.en.md b/docs/about/notices.en.md index 8b7b185312..ece98ccdb6 100644 --- a/docs/about/notices.en.md +++ b/docs/about/notices.en.md @@ -20,7 +20,7 @@ Unless otherwise noted, all content on this website is made freely available und This does not include third-party code embedded in this repository, or code where a superseding license is otherwise noted. The following are notable examples, but this list may not be all-inclusive: -* [MathJax](https://github.com/privacyguides/privacyguides.org/blob/main/docs/javascripts/mathjax.js) is licensed under the [Apache License 2.0](https://github.com/privacyguides/privacyguides.org/blob/main/docs/javascripts/LICENSE.mathjax.txt). +* [MathJax](https://github.com/privacyguides/privacyguides.org/blob/main/docs/assets/javascripts/mathjax.js) is licensed under the [Apache License 2.0](https://github.com/privacyguides/privacyguides.org/blob/main/docs/assets/javascripts/LICENSE.mathjax.txt). Portions of this notice itself were adopted from [opensource.guide](https://github.com/github/opensource.guide/blob/master/notices.md) on GitHub. That resource and this page itself are released under [CC-BY-4.0](https://github.com/github/opensource.guide/blob/master/LICENSE). diff --git a/docs/android/grapheneos-vs-calyxos.en.md b/docs/android/grapheneos-vs-calyxos.en.md index 6c1f23b2d4..a4475abb92 100644 --- a/docs/android/grapheneos-vs-calyxos.en.md +++ b/docs/android/grapheneos-vs-calyxos.en.md @@ -46,7 +46,7 @@ CalyxOS includes the [privileged extension](https://f-droid.org/en/packages/org. GrapheneOS improves upon [AOSP](https://source.android.com/) security with: -- **Hardened WebView:** Vanadium WebView requires [64-bit](https://en.wikipedia.org/wiki/64-bit_computing) processes on the [WebView](https://developer.android.com/reference/android/webkit/WebView) process and disables legacy [32-bit](https://en.wikipedia.org/wiki/32-bit_computing) processes. It uses hardened compiler options such as [`-fwrapv`](https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html) and [`-fstack-protector-strong`](https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gcc/Optimize-Options.html), which can help protect against [stack buffer overflows](https://en.wikipedia.org/wiki/Stack_buffer_overflow). [API](https://en.wikipedia.org/wiki/API)s such as the [battery status API](https://chromestatus.com/feature/4537134732017664) are disabled for privacy reasons. All system apps on GrapheneOS use the Vanadium WebView which means that apps which use WebView will also benefit from Vanadium's hardening. The [Vanadium patch set](https://github.com/GrapheneOS/Vanadium/tree/12/patches) is a lot more comprehensive than CalyxOS's [Chromium patch set](https://gitlab.com/CalyxOS/chromium-patches) which is derived from it. +- **Hardened WebView:** Vanadium WebView requires [64-bit](https://en.wikipedia.org/wiki/64-bit_computing) processes on the [WebView](https://developer.android.com/reference/android/webkit/WebView) process and disables legacy [32-bit](https://en.wikipedia.org/wiki/32-bit_computing) processes. It uses hardened compiler options such as [`-fwrapv`](https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html) and [`-fstack-protector-strong`](https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gcc/Optimize-Options.html), which can help protect against [stack buffer overflows](https://en.wikipedia.org/wiki/Stack_buffer_overflow). [API](https://en.wikipedia.org/wiki/API)s such as the [battery status API](https://chromestatus.com/feature/4537134732017664) are disabled for privacy reasons. All system apps on GrapheneOS use the Vanadium WebView which means that apps which use WebView will also benefit from Vanadium's hardening. The [Vanadium patch set](https://github.com/GrapheneOS/Vanadium) is a lot more comprehensive than CalyxOS's [Chromium patch set](https://gitlab.com/CalyxOS/chromium-patches) which is derived from it. - **Hardened Kernel:** GrapheneOS kernel includes some hardening from the [linux-hardened](https://github.com/GrapheneOS/linux-hardened) project and the [Kernel Self Protection Project (KSPP)](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project). CalyxOS uses the [same kernel](https://calyxos.org/docs/development/build/kernel/) as regular Android with some minor modifications. - **Hardened Memory Allocator:** GrapheneOS uses the [hardened malloc](https://github.com/GrapheneOS/hardened_malloc) subproject as its memory allocator. This focuses on hardening against [memory heap corruption](https://en.wikipedia.org/wiki/Memory_corruption). CalyxOS uses the default AOSP [Scudo Malloc](https://source.android.com/devices/tech/debug/scudo), which is generally [less effective](https://twitter.com/danielmicay/status/1033671709197398016). Hardened Malloc has uncovered vulnerabilities in AOSP which have been [fixed](https://github.com/GrapheneOS/platform_system_core/commit/be11b59725aa6118b0e1f0712572e835c3d50746) by GrapheneOS such as [CVE-2021-0703](https://nvd.nist.gov/vuln/detail/CVE-2021-0703). - **Secure Exec Spawning:** GrapheneOS [spawns](https://en.wikipedia.org/wiki/Spawn_(computing)) fresh processes as opposed to using the [Zygote model](https://ayusch.com/android-internals-the-android-os-boot-process) used by AOSP and CalyxOS. The Zygote model weakens [Address Space Layout Randomization](https://en.wikipedia.org/wiki/Address_space_layout_randomization) (ASLR) and is considered [less secure](https://wenke.gtisc.gatech.edu/papers/morula.pdf). Creating [fresh processes](https://grapheneos.org/usage#exec-spawning) is safer but will have some performance penalty when launching a new application. These penalties are not really noticeable unless you have an [old device](https://support.google.com/nexus/answer/4457705) with slow storage such as the Pixel 3a/3a XL as it has [eMMC](https://en.wikipedia.org/wiki/MultiMediaCard#eMMC). diff --git a/docs/android/overview.en.md b/docs/android/overview.en.md index ec164a606b..ea33ea5dc1 100644 --- a/docs/android/overview.en.md +++ b/docs/android/overview.en.md @@ -50,7 +50,7 @@ It's important to not use an [end-of-life](https://endoflife.date/android) versi [Permissions on Android](https://developer.android.com/guide/topics/permissions/overview) grant you control over what apps are allowed to access. Google regularly makes [improvements](https://developer.android.com/about/versions/11/privacy/permissions) on the permission system in each successive version. All apps you install are strictly [sandboxed](https://source.android.com/security/app-sandbox), therefore there is no need to install any antivirus apps. The savings you make from not purchasing or subscribing to security apps is better spent on paying for a supported device in the future. -Should you want to run an app that you're unsure about, consider using a user or work [profile](android/#android-security-privacy). +Should you want to run an app that you're unsure about, consider using a user or work profile. ## User Profiles diff --git a/docs/basics/account-deletion.en.md b/docs/basics/account-deletion.en.md index 5ba25ba057..fd60278ba7 100644 --- a/docs/basics/account-deletion.en.md +++ b/docs/basics/account-deletion.en.md @@ -50,7 +50,7 @@ For the account email, either create a new alternate email account via your prov You can check [JustDeleteMe](https://justdeleteme.xyz) for instructions on deleting the account for a specific service. Some sites will graciously have a "Delete Account" option, while others will go as far as to force you to speak with a support agent. The deletion process can vary from site to site, with account deletion being impossible on some. -For services that don't allow account deletion, the best thing to do is falsify all your information as previously mentioned and strengthen account security. To do so, enable [MFA](basics/multi-factor-authentication) and any extra security features offered. As well, change the password to a randomly-generated one that is the maximum allowed size (a [password manager](/passwords/#local-password-managers) can be useful for this). +For services that don't allow account deletion, the best thing to do is falsify all your information as previously mentioned and strengthen account security. To do so, enable [MFA](multi-factor-authentication.md) and any extra security features offered. As well, change the password to a randomly-generated one that is the maximum allowed size (a [password manager](/passwords/#local-password-managers) can be useful for this). If you're satisfied that all information you care about is removed, you can safely forget about this account. If not, it might be a good idea to keep the credentials stored with your other passwords and occasionally re-login to reset the password. diff --git a/docs/basics/vpn-overview.en.md b/docs/basics/vpn-overview.en.md index 6d8d872186..f0d9873fe3 100644 --- a/docs/basics/vpn-overview.en.md +++ b/docs/basics/vpn-overview.en.md @@ -5,7 +5,7 @@ icon: material/vpn Virtual Private Networks are a way of extending the end of your network to exit somewhere else in the world. An ISP can see the flow of internet traffic entering and exiting your network termination device (ie. modem). -Encryption protocols such as HTTPS are commonly used on the internet, so they may not be able to see exactly what you're posting or reading but they can get an idea of the [domains you request](/basics/dns.md/#why-shouldnt-i-use-encrypted-dns). +Encryption protocols such as HTTPS are commonly used on the internet, so they may not be able to see exactly what you're posting or reading but they can get an idea of the [domains you request](dns-overview.md#why-shouldnt-i-use-encrypted-dns). A VPN can help as it can shift trust to a server somewhere else in the world. As a result, the ISP then only sees that you are connected to a VPN and nothing about the activity that you're passing into it. diff --git a/docs/calendar-contacts.en.md b/docs/calendar-contacts.en.md index 0d6ab48beb..4601538bfa 100644 --- a/docs/calendar-contacts.en.md +++ b/docs/calendar-contacts.en.md @@ -62,7 +62,7 @@ Some of these options are self-hostable, but could be offered by third party Saa ![DecSync logo](assets/img/calendar-contacts/decsync.svg){ align=right } - **DecSync CC** synchronizes contacts, calendars and tasks using DecSync. It stores this data in a shared directory, using [Syncthing](file-sharing/#syncthing), or any other file synchronization service. + **DecSync CC** synchronizes contacts, calendars and tasks using DecSync. It stores this data in a shared directory, using [Syncthing](file-sharing.md#syncthing), or any other file synchronization service. There are [plugins](https://github.com/39aldo39/DecSync#rss) to sync other types of data such as [RSS](news-aggregators.md). diff --git a/docs/dns.en.md b/docs/dns.en.md index ae2dc0da8c..1de5a9cf55 100644 --- a/docs/dns.en.md +++ b/docs/dns.en.md @@ -7,7 +7,7 @@ icon: material/dns Encrypted DNS with third party servers should only be used to get around basic [DNS blocking](https://en.wikipedia.org/wiki/DNS_blocking) when you can be sure there won't be any consequences. Encrypted DNS will not help you hide any of your browsing activity. - [Learn more about DNS](basics/dns.md){ .md-button } + [Learn more about DNS](basics/dns-overview.md){ .md-button } ## Recommended Providers @@ -27,10 +27,10 @@ icon: material/dns The criteria for the servers listed above are: -- Must support [DNSSEC](basics/dns.md#what-is-dnssec) +- Must support [DNSSEC](basics/dns-overview.md#what-is-dnssec) - Must have [anycast](https://en.wikipedia.org/wiki/Anycast#Addressing_methods) support -- [QNAME Minimization](basics/dns.md#what-is-qname-minimization) -- Allow for [ECS](basics/dns.md#what-is-edns-client-subnet-ecs) to be disabled +- [QNAME Minimization](basics/dns-overview.md#what-is-qname-minimization) +- Allow for [ECS](basics/dns-overview.md#what-is-edns-client-subnet-ecs) to be disabled ## Native Operating System Support @@ -72,7 +72,7 @@ Select **Settings** → **Network & Internet** → **Ethernet or WiFi**, & ## Encrypted DNS Proxies -Encrypted DNS proxy software provides a local proxy for the [unencrypted DNS](basics/dns.md#unencrypted-dns) resolver to forward to. Typically it is used on platforms that don't natively support [encrypted DNS](basics/dns.md#what-is-encrypted-dns). +Encrypted DNS proxy software provides a local proxy for the [unencrypted DNS](basics/dns-overview.md#unencrypted-dns) resolver to forward to. Typically it is used on platforms that don't natively support [encrypted DNS](basics/dns-overview.md#what-is-encrypted-dns). ### RethinkDNS @@ -81,7 +81,7 @@ Encrypted DNS proxy software provides a local proxy for the [unencrypted DNS](ba ![RethinkDNS logo](assets/img/android/rethinkdns.svg#only-light){ align=right } ![RethinkDNS logo](assets/img/android/rethinkdns-dark.svg#only-dark){ align=right } - **RethinkDNS** is an open-source Android client supporting [DNS-over-HTTPS](basics/dns.md#dns-over-https-doh), [DNS-over-TLS](basics/dns.md#dns-over-tls-dot), [DNSCrypt](basics/dns.md#dnscrypt) and DNS Proxy along with caching DNS responses, locally logging DNS queries and can be used as a firewall too. + **RethinkDNS** is an open-source Android client supporting [DNS-over-HTTPS](basics/dns-overview.md#dns-over-https-doh), [DNS-over-TLS](basics/dns-overview.md#dns-over-tls-dot), [DNSCrypt](basics/dns-overview.md#dnscrypt) and DNS Proxy along with caching DNS responses, locally logging DNS queries and can be used as a firewall too. [:octicons-home-16: Homepage](https://rethinkdns.com){ .md-button .md-button--primary } [:octicons-eye-16:](https://rethinkdns.com/privacy){ .card-link title="Privacy Policy" } @@ -99,7 +99,7 @@ Encrypted DNS proxy software provides a local proxy for the [unencrypted DNS](ba ![DNSCloak logo](assets/img/ios/dnscloak.png){ align=right } - **DNSCloak** is an open-source iOS client supporting [DNS-over-HTTPS](basics/dns.md#dns-over-https-doh), [DNSCrypt](basics/dns.md#dnscrypt), and [dnscrypt-proxy](https://github.com/DNSCrypt/dnscrypt-proxy/wiki) options such as caching DNS responses, locally logging DNS queries, and custom block lists. You can [add custom resolvers by DNS stamp](https://medium.com/privacyguides/adding-custom-dns-over-https-resolvers-to-dnscloak-20ff5845f4b5). + **DNSCloak** is an open-source iOS client supporting [DNS-over-HTTPS](basics/dns-overview.md#dns-over-https-doh), [DNSCrypt](basics/dns-overview.md#dnscrypt), and [dnscrypt-proxy](https://github.com/DNSCrypt/dnscrypt-proxy/wiki) options such as caching DNS responses, locally logging DNS queries, and custom block lists. You can [add custom resolvers by DNS stamp](https://medium.com/privacyguides/adding-custom-dns-over-https-resolvers-to-dnscloak-20ff5845f4b5). [:octicons-repo-16: Repository](https://github.com/s-s/dnscloak){ .md-button .md-button--primary } [:octicons-eye-16:](https://drive.google.com/file/d/1050No_pU74CAWUS5-BwQWyO2x_aiMzWc/view){ .card-link title="Privacy Policy" } @@ -115,9 +115,9 @@ Encrypted DNS proxy software provides a local proxy for the [unencrypted DNS](ba ![dnscrypt-proxy logo](assets/img/dns/dnscrypt-proxy.svg){ align=right } - **dnscrypt-proxy** is a DNS proxy with support for [DNSCrypt](basics/dns.md#dnscrypt), [DNS-over-HTTPS](basics/dns.md#dns-over-https-doh), and [Anonymized DNS](https://github.com/DNSCrypt/dnscrypt-proxy/wiki/Anonymized-DNS). + **dnscrypt-proxy** is a DNS proxy with support for [DNSCrypt](basics/dns-overview.md#dnscrypt), [DNS-over-HTTPS](basics/dns-overview.md#dns-over-https-doh), and [Anonymized DNS](https://github.com/DNSCrypt/dnscrypt-proxy/wiki/Anonymized-DNS). - !!! warning "The anonymized DNS feature does [**not**](basics/dns.md#why-shouldnt-i-use-encrypted-dns) anonymize other network traffic." + !!! warning "The anonymized DNS feature does [**not**](basics/dns-overview.md#why-shouldnt-i-use-encrypted-dns) anonymize other network traffic." [:octicons-repo-16: Repository](https://github.com/DNSCrypt/dnscrypt-proxy){ .md-button .md-button--primary } [:octicons-info-16:](https://github.com/DNSCrypt/dnscrypt-proxy/wiki){ .card-link title=Documentation} diff --git a/docs/email-clients.en.md b/docs/email-clients.en.md index d7c1adac35..a6546bfb45 100644 --- a/docs/email-clients.en.md +++ b/docs/email-clients.en.md @@ -2,7 +2,7 @@ title: "Email Clients" icon: material/email-open --- -Our recommendation list contains email clients that support both [OpenPGP](encryption.md#openpgp) and strong authentication such as [Open Authorization (OAuth)](https://en.wikipedia.org/wiki/OAuth). OAuth allows you to use [Multi-Factor Authentication](multi-factor-authentication) and prevent account theft. +Our recommendation list contains email clients that support both [OpenPGP](encryption.md#openpgp) and strong authentication such as [Open Authorization (OAuth)](https://en.wikipedia.org/wiki/OAuth). OAuth allows you to use [Multi-Factor Authentication](basics/multi-factor-authentication.md) and prevent account theft. ??? Attention "Email does not provide forward secrecy" When using end-to-end encryption (E2EE) technology like OpenPGP, email will still have [some metadata](email.md#email-metadata-overview) that is not encrypted in the header of the email. diff --git a/docs/email.en.md b/docs/email.en.md index 24651fcecb..8f6e18fd13 100644 --- a/docs/email.en.md +++ b/docs/email.en.md @@ -119,7 +119,7 @@ For everything else, we recommend a variety of email providers based on sustaina **USD $59.95/year** - [:octicons-home-16: Homepage](https://startmail.com/){ .md-button .md-button--primary } + [:octicons-home-16: Homepage](https://www.startmail.com/){ .md-button .md-button--primary } [:octicons-eye-16:](https://www.startmail.com/en/privacy/){ .card-link title="Privacy Policy" } [:octicons-info-16:](https://support.startmail.com){ .card-link title=Documentation} diff --git a/docs/linux-desktop/overview.en.md b/docs/linux-desktop/overview.en.md index 06dddbd6c5..bd81a2a405 100644 --- a/docs/linux-desktop/overview.en.md +++ b/docs/linux-desktop/overview.en.md @@ -75,9 +75,9 @@ We strongly recommend **against** using the Linux-libre kernel, since it [remove ### Drive Encryption -Most Linux distributions have an option within its installer for enabling [LUKS](/encryption.md#linux-unified-key-setup) FDE. If this option isn’t set at installation time, you will have to backup your data and re-install, as encryption is applied after [disk partitioning](https://en.wikipedia.org/wiki/Disk_partitioning), but before [file systems](https://en.wikipedia.org/wiki/File_system) are formatted. We also suggest securely erasing your storage device: +Most Linux distributions have an option within its installer for enabling [LUKS](../encryption.md#linux-unified-key-setup) FDE. If this option isn’t set at installation time, you will have to backup your data and re-install, as encryption is applied after [disk partitioning](https://en.wikipedia.org/wiki/Disk_partitioning), but before [file systems](https://en.wikipedia.org/wiki/File_system) are formatted. We also suggest securely erasing your storage device: -- [Secure Data Erasure :hero-arrow-circle-right-fill:](../basics/erasing-data.md) +- [Secure Data Erasure :hero-arrow-circle-right-fill:](../advanced/erasing-data.md) ### Swap diff --git a/docs/notebooks.en.md b/docs/notebooks.en.md index 19244c4670..e9fd37c48f 100644 --- a/docs/notebooks.en.md +++ b/docs/notebooks.en.md @@ -55,7 +55,6 @@ If you are currently using an application like Evernote, Google Keep, or Microso - [:fontawesome-brands-chrome: Chrome](https://chrome.google.com/webstore/detail/joplin-web-clipper/alofnhikmmkdbbbgpnglcpdollgjjfek) - [:fontawesome-brands-app-store-ios: App Store](https://apps.apple.com/us/app/joplin/id1315599797) - [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=net.cozic.joplin) - - [:pg-f-droid: F-Droid](https://f-droid.org/en/packages/net.cozic.joplin) Joplin does not support password/pin protection for the [application itself or individual notes/notebooks](https://github.com/laurent22/joplin/issues/289). Data is still encrypted in transit and at the sync location using your master key. diff --git a/docs/search-engines.en.md b/docs/search-engines.en.md index b2226e33da..f3f6886b96 100644 --- a/docs/search-engines.en.md +++ b/docs/search-engines.en.md @@ -74,13 +74,13 @@ When you are using a SearXNG instance, be sure to go read their privacy policy. ![Startpage logo](assets/img/search-engines/startpage.svg#only-light){ align=right } ![Startpage logo](assets/img/search-engines/startpage-dark.svg#only-dark){ align=right } - **Startpage** is a private search engine known for serving Google search results. Startpage's flagship feature is [Anonymous View](https://www.startpage.com/en/anonymous-view/), which puts forth efforts to standardize user activity to make it more difficult to be uniquely identified. Unlike the name suggests, the feature should not be relied upon for anonymity. If you are looking for anonymity, use the Tor Browser instead. The feature can be useful for hiding some network and browser properties—see the [technical document](https://support.startpage.com/index.php?/Knowledgebase/Article/View/1185/0/the-anonymous-view-proxy---technical-details=undefined) for more details. + **Startpage** is a private search engine known for serving Google search results. Startpage's flagship feature is [Anonymous View](https://www.startpage.com/en/anonymous-view/), which puts forth efforts to standardize user activity to make it more difficult to be uniquely identified. Unlike the name suggests, the feature should not be relied upon for anonymity. If you are looking for anonymity, use the Tor Browser instead. The feature can be useful for hiding some network and browser properties—see the [technical document](https://support.startpage.com/hc/en-us/articles/4455540212116-The-Anonymous-View-Proxy-technical-details) for more details. Startpage has been known to refuse access to those using a VPN service or Tor, so your mileage may vary. [:octicons-home-16: Homepage](https://www.startpage.com){ .md-button .md-button--primary } [:octicons-eye-16:](https://www.startpage.com/en/privacy-policy){ .card-link title="Privacy Policy" } - [:octicons-info-16:](https://support.startpage.com/index.php?/Knowledgebase/List){ .card-link title=Documentation} + [:octicons-info-16:](https://support.startpage.com/hc/en-us/categories/4481917470356-Startpage-Search-Engine){ .card-link title=Documentation} Startpage is based in the :flag_nl: Netherlands. According to their [privacy policy](https://www.startpage.com/en/privacy-policy/), they log details such as: operating system, type of browser, and language. They do not log your IP address, search queries, or other personally identifying information. diff --git a/docs/vpn.en.md b/docs/vpn.en.md index 65f352c5a4..ce9d08ab19 100644 --- a/docs/vpn.en.md +++ b/docs/vpn.en.md @@ -13,7 +13,7 @@ Find a no-logging VPN operator who isn’t out to sell or read your web traffic. If you're looking for added **security**, you should always ensure you're connecting to websites using HTTPS. A VPN is not a replacement for good security practices. - [Download Tor](https://www.torproject.org/){ .md-button .md-button--primary } [Tor Myths & FAQ](/basics/tor-overview.md){ .md-button } + [Download Tor](https://www.torproject.org/){ .md-button .md-button--primary } [Tor Myths & FAQ](basics/tor-overview.md){ .md-button } ??? question "When are VPNs useful?" @@ -178,7 +178,7 @@ Find a no-logging VPN operator who isn’t out to sell or read your web traffic. ??? check "Open Source Clients" - Proton VPN provides the source code for their desktop and mobile clients in their [GitHub organization](https://github.com/Proton VPN). + Proton VPN provides the source code for their desktop and mobile clients in their [GitHub organization](https://github.com/ProtonVPN). ??? check "Accepts Cash"