Protect your data against global mass surveillance programs.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dependabot[bot] d35437cafa
Bump actions/cache from 3.2.3 to 3.2.4
6 days ago
.github Bump actions/cache from 3.2.3 to 3.2.4 6 days ago
.well-known Pull Matrix server configuration (#1656) 6 months ago
docs DoH/3 support AdGuard, NextDNS, Cloudflare (#1959) 7 days ago
includes Account creation section (#1723) 1 month ago
mkdocs-material@0f6a162d2b Enable Netlify deployments 4 months ago
theme About category changes (#1875) 3 months ago
.allowed_signers Enable SSH Git commit signing (#1122) 9 months ago
.gitattributes Mark .md files as linguist-detectable 10 months ago
.gitignore Transition to mkdocs (#829) 10 months ago
.gitmodules Remove blog submodule 6 months ago
.markdownlint.yml Listing common threat examples (#1276) 9 months ago
CITATION.cff Relicensing (#1820) 4 months ago
LICENSE Relicensing (#1820) 4 months ago
Pipfile Netlify Configuration 3 months ago
Pipfile.lock Netlify Configuration 3 months ago Added link to About section (#1896) 3 months ago
crowdin.yml Use abbreviations across site (#1060) 10 months ago
mkdocs.production.yml About category changes (#1875) 3 months ago
mkdocs.yml Account creation section (#1723) 1 month ago
netlify.toml Update Qubes Documentation (#1568) 2 months ago

Privacy Guides

Your central privacy and security resource to protect yourself online.


Privacy Guides is a socially motivated website that provides information for protecting your data security and privacy. We are a non-profit collective operated entirely by volunteer team members and contributors.

Our current list of team members can be found here. Additionally, many people have made contributions to the project, and you can too!



GitHub Gitea GitLab Codeberg SourceHut


Committing to this repository requires signing your commits (git config commit.gpgsign true) unless you are making edits via the text editor interface. As of August 2022 the preferred signing method is SSH commit signatures, but GPG signing is also acceptable. You should add your signing key to your GitHub profile.

This website uses mkdocs-material-insiders which offers additional functionality over the open-source mkdocs-material project. For obvious reasons we cannot distribute access to the insiders repository. You can install the website locally with the open-source version of mkdocs-material:

  1. Clone this repository:
    • git clone (then cd
    • git submodule init
    • git submodule update docs/assets/brand
    • git config gpg.ssh.allowedSignersFile .allowed_signers
  2. Install Python 3.6+ (currently only tested with 3.10)
  3. Install dependencies: pip install mkdocs mkdocs-material mkdocs-static-i18n mkdocs-macros-plugin typing-extensions
  4. Serve the site locally: mkdocs serve
    • The site will be available at http://localhost:8000
    • You can build the site locally with mkdocs build
    • Your local version of the site may be missing functionality, which is expected. If you are submitting a PR, please ensure the automatic preview generated for your PR looks correct, as that site will be built with the production insiders build.

Team members should clone the repository with mkdocs-material-insiders directly. This method is identical to production:

  1. Clone this repository and submodules: git clone --recurse-submodules
  2. Enable SSH commit verification with our local .allowed_signers file: git config gpg.ssh.allowedSignersFile .allowed_signers
  3. Install Python 3.10
  4. Install pipenv: pip install pipenv
  5. Install dependencies: pipenv install --dev (install Pillow and CairoSVG as well to generate social cards)
  6. Serve the site locally: pipenv run mkdocs serve --config-file mkdocs.production.yml (set CARDS=true to generate social cards)
    • The site will be available at http://localhost:8000
    • You can build the site locally with pipenv run mkdocs build
    • This version of the site should be identical to the live, production version

If you commit to main with commits signed with your SSH key, you should add your SSH key to .allowed_signers in this repo.


  1. Create a new tag: git tag -s v2.X.X -m 'Some message'
    • View existing tags
    • Tag numbering: Increment the MINOR (2nd) number when making significant changes (adding/deleting pages, etc.), increment the PATCH (3rd) number when making minor changes (typos, bug fixes). Probably leave the MAJOR number at 2 until a massive revamp (v1 -> v2 was the Jekyll to MkDocs transition).
    • Consider enabling GPG tag signing by default (git config tag.gpgSign true) to avoid missing signatures
  2. Push the tag to GitHub: git push --tags
  3. A GitHub Release will be automatically created and deployed to the live site.
    • You may wish to manually check or edit the release changelog/title after it is published for accuracy.