About
Privacy Guides is a socially motivated website that provides information for protecting your data security and privacy. Our mission is to inform the public about the value of digital privacy, and global government initiatives which aim to monitor your online activity. We are a non-profit collective operated entirely by volunteer team members and contributors. Our website is free of advertisements and not affiliated with any of the listed providers.
The current list of team members can be found on the executive committee page. Additionally, many people have made contributions to the project, and you can too!
Featured on: Tweakers, The New York Times, Wired, and Fast Company.
Contributing

All contributors to the site are listed here. If you have contributed to the website or project, please add yourself to the list or ask @jonaharagon to make the change.
Git Mirrors

Developing
The easiest way to develop this website in your browser without installing any software is to use GitHub Codespaces. To build the website locally, you will need the following software:
You can technically use any IDE which supports development containers, but YMMV. We are only testing with the combination of software above.
Committing to this repository requires signing your commits (git config commit.gpgsign true) unless you are making edits via the GitHub.com 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.
Local builds
Run these commands from the repository root inside the development container. (These commands run automatically if you are using a devcontainer/codespace)
./run.sh serve
./run.sh --blog serve --dev-addr=localhost:8001
To build the production version locally, you use the same context as the release workflows:
BUILD_CONTEXT=production ./run.sh build
BUILD_CONTEXT=production ./run.sh --blog build
These produce site/en/ and site/articles/. The production context enables hardcoded navigation and template behavior, plus Git metadata for the English website.
For translations, use the Crowdin client with crowdin.yml, or download the exported translations from privacyguides/i18n with Git, as workflows do:
(
translation_checkout=$(mktemp -d)
trap 'rm -rf "$translation_checkout"' EXIT
git clone --depth 1 --branch main https://github.com/privacyguides/i18n.git "$translation_checkout/repo" &&
cp -a "$translation_checkout/repo/i18n" "$translation_checkout/repo/includes" .
)
SITE_LANGUAGE=fr BUILD_CONTEXT=production ./run.sh build
This copies /i18n/ and /includes/ from a temporary checkout of main into this repository then removes the checkout. Repeat the above commands to refresh the files.
To preview a translation inside the devcontainer, download the translation files as above, then run this from the repository root:
SITE_LANGUAGE=fr ./run.sh serve --dev-addr=0.0.0.0:8002
Replace fr with the language code you want to preview. Port 8002 avoids the English and articles previews already running on ports 8000 and 8001 respectively. Open http://localhost:8002 directly, because the shared preview on port 1337 routes only English and articles.
Docker without an editor
You can also build locally without VS Code or GitHub Actions. Initialize the brand assets and build the same image used by CI:
git submodule update --init theme/assets/brand
docker build -t privacyguides-build:local .
docker run --rm -it --user "$(id -u):$(id -g)" --env HOME=/tmp \
--volume "$PWD:/workspaces/privacyguides.org" privacyguides-build:local bash
This will give you a terminal where you can use the production commands above.
CI also refreshes the members list before website builds and discussion lists after English builds. To reproduce those live-data updates locally, run the following inside the container around the website build:
python tools/generate-members.py > /tmp/members.md && cp /tmp/members.md includes/members.md
BUILD_CONTEXT=production ./run.sh build
bash tools/generate-topics.sh --all
Offline HTML can be built with BUILD_OFFLINE=true ./run.sh build or BUILD_OFFLINE=true ./run.sh --blog build.
Releasing
It is required to create a GitHub release to publish the current site to privacyguides.org.
- Create a new tag:
git tag -s YYYY.MM.DD -m 'Some message'
- Tag numbering:
YYYY.MM.DD - if two+ releases are published on the same day, append short commit to the next release, e.g. YYYY.MM.DD-6aa14e8
- Enable GPG tag signing by default (
git config tag.gpgSign true) to avoid missing signatures
- Push the tag to GitHub:
git push --tags
- 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.
License
Privacy Guides content is licensed under the Creative Commons Attribution-ShareAlike 4.0 International Public License, and the underlying source code used to format and display that content on www.privacyguides.org is licensed under the MIT License.
Generally speaking, content can be found in the /docs, /theme/assets/img and /includes folders; and source code and configuration files can be found in the /config and /theme folders, and in the root of this repository. Any source code snippets contained within documentation files are MIT Licensed. Please contact us if you require clarification on any of these terms.
These licenses do not apply to any work where another license is otherwise noted.
Logos in the /theme/assets/img folder may not be original works of Privacy Guides and therefore cannot be (re)licensed by us. We believe that these logos obtained from third-party providers are either in the public domain or fair use. In a nutshell, legal fair use doctrine allows the use of copyrighted images in order to identify the subject for purposes of public comment. However, these logos and other images may still be subject to trademark laws in one or more jurisdictions. Before using this content, please ensure that it is used to identify the entity or organization that owns the trademark and that you have the right to use it under the laws which apply in the circumstances of your intended use. When copying content from this website, you are solely responsible for ensuring that you do not infringe someone else’s trademark or copyright.
You may comply with our license terms in any reasonable manner, but not in any way that suggests Privacy Guides endorses you or your use. You may not use the Privacy Guides branding in your own project without express approval from this project. Privacy Guides’s brand trademarks include the “Privacy Guides” wordmark and shield logo.
When you contribute to this repository you are doing so under the above licenses, and you are granting Privacy Guides a perpetual, worldwide, non-exclusive, transferable, royalty-free, irrevocable license with the right to sublicense such rights through multiple tiers of sublicensees, to reproduce, modify, display, perform and distribute your contribution as part of our project.
Contributors
Privacy Guides wouldn’t be possible without these wonderful people (emoji key):
README 内容过长,已截取前 64 KB。完整内容请前往 GitHub 仓库查看。
评论