mirror of
https://github.com/privacyguides/privacyguides.org.git
synced 2025-07-03 10:02:44 +00:00
Compare commits
520 Commits
Author | SHA1 | Date | |
---|---|---|---|
2c5707a9ba
|
|||
cc3bcd9d94 | |||
982dc64730 | |||
0660fbf119 | |||
9d14330cde
|
|||
16cb2daf2a | |||
173a9b6d30
|
|||
429c643866 | |||
a974b8485c | |||
667996df8d | |||
93663bca8e | |||
66bb715834 | |||
ecbc75e955
|
|||
dd87672a73
|
|||
e07feb8aa9 | |||
72f74406b9
|
|||
193a8d512a | |||
137f16d0a9 | |||
35af82b3f1 | |||
8cc83258b7 | |||
7e1f0196f9
|
|||
54e8229454 | |||
2e3cecf285
|
|||
13c05dc07f
|
|||
0ba070dc8e
|
|||
5f970c58ac
|
|||
b5205aee77
|
|||
f85803d5c1 | |||
b3c976b694
|
|||
41f785b0fd | |||
3803bdd72d | |||
b373e23429 | |||
ba7b53aceb
|
|||
f255d49760 | |||
88bb0721eb | |||
7a594bbf27
|
|||
eddfd29cfe
|
|||
c72ae5fb3c
|
|||
2098040200
|
|||
a7816299f3
|
|||
3db5cffecd | |||
65179b83e9 | |||
3874ff4919 | |||
8b6f0397bb | |||
313ca0b50f | |||
f288f840dd | |||
3af8be9b88 | |||
c593ce9ed3 | |||
79f898a2dd | |||
4ea7ae8f7b | |||
9cfe06f714
|
|||
a7505190d4 | |||
605b0fd954 | |||
e32404f85a
|
|||
61acc755c6 | |||
3d8c8d969c | |||
68096ef2ab | |||
df94276c31 | |||
8040c32810 | |||
76f5417f04 | |||
208c738b83 | |||
432ee9898e | |||
c120e07c25 | |||
8563ee9ec9 | |||
2f9c779b15
|
|||
5fa9a3b505
|
|||
3b0cd75cbd
|
|||
12fc2d8a9b
|
|||
e9b951cb68 | |||
95d653f26e | |||
bd4818e993 | |||
16237ad930 | |||
347d09a4c2 | |||
0ab8b1f8f2
|
|||
4f091b65e2
|
|||
86ee500c6d
|
|||
005c6fe7cd | |||
bd5ef054ea | |||
182d76b2ae | |||
67f1526d19 | |||
ef4db53567 | |||
8535dadcad | |||
e1f5a00d90 | |||
3b12f672f0 | |||
462db2bdfa | |||
2abaf2f4dd | |||
a0ebda314e | |||
5334e869ed | |||
011efec32b | |||
1c527faa04 | |||
ca9a13c544 | |||
0d0a0a822c | |||
ef286ae706 | |||
d421e81045 | |||
2176a3a2de | |||
65874da53c | |||
b3ceb64052 | |||
ab0b61db10 | |||
31ff6160eb | |||
960a328ea7 | |||
3111447b96 | |||
b506f74950 | |||
e0933d6521 | |||
2d6b59e94b | |||
7a73aae321 | |||
da1a7709fa | |||
3ab5a28edf | |||
345487e3fc | |||
3511a5c094 | |||
f0d9faa705 | |||
f85f7dcf8f | |||
d4dd950d16 | |||
523abd3639 | |||
b160702ccb | |||
80ee4dd2d4 | |||
7f23720f1b | |||
011d9d9993 | |||
f538a2c7c8 | |||
86da4c1e02 | |||
36f029f5be | |||
c1c1fcf494 | |||
d727cbf79d | |||
d242ca3749 | |||
b6e8b01023 | |||
f58740ad7f | |||
97561641dd | |||
3bd62a0231 | |||
7ecbb0290d | |||
7b2f12e364 | |||
90a06daa4f | |||
045e702227 | |||
22e9a5e990 | |||
50311abc2e | |||
84bf23d740 | |||
750830247a | |||
5669d1f258 | |||
b7a1067528 | |||
95a21ab2f2 | |||
9392744593 | |||
74e69302d4 | |||
757729d145 | |||
730a422532 | |||
d48215273f | |||
bade01ca68 | |||
2658214018 | |||
ec03ced668 | |||
f8a3df77bd | |||
e453cb4211 | |||
0b91130e75 | |||
51ecce67e9 | |||
57e1717521 | |||
5c1d6ced8f | |||
786756a3dc | |||
05353aca85 | |||
81c2abd931 | |||
2095aa5a52 | |||
ecce11a009 | |||
ba3b4b5c3a | |||
bb81287173 | |||
e89f324c6a | |||
7dbe38e80c | |||
4d2a21cf0f
|
|||
42dd2c57a4
|
|||
7f7a7c2dd7 | |||
1a900cda46 | |||
10231ee0aa
|
|||
9b5446c7be | |||
3390d27ba9 | |||
7367add2a6 | |||
108aae831c
|
|||
246fb81eb2 | |||
12ae9ae8ce | |||
c2059a392b | |||
ef9e236b2b
|
|||
c4f1e269c8 | |||
fcd366af2a | |||
7f1ce148bf
|
|||
a52770e1c0 | |||
f6a25a7dd4 | |||
4a25c635ee | |||
a29c443a48 | |||
6f27a0e849 | |||
4f20378555 | |||
072e087487 | |||
547ed4c728
|
|||
bbca7bcbab | |||
0b70d8689d | |||
4a448189c6 | |||
58343b1dd9 | |||
8b1d9cd9b6 | |||
c38c185efe | |||
b5f4773923 | |||
5ff8b083d4 | |||
2635aabed7 | |||
f335a7e5d2 | |||
ba20357cda | |||
641f80db99 | |||
9bb70d2e6b | |||
631b2d2e14 | |||
f7a55480fb | |||
0a5286832d | |||
e0c11ad21c | |||
ef3986de9d | |||
bbe9531d05 | |||
0e7da2af19 | |||
03649e16f7 | |||
9e0b8843d3 | |||
39e7f02309 | |||
ad19e1de9c | |||
4bd402c1c7 | |||
d14f33d442 | |||
4d6a57689a | |||
c438cac4e8
|
|||
ca9e725d0a | |||
aba833d617 | |||
b5cc57267e | |||
718b915991
|
|||
2d36716977
|
|||
6d7bacd22a
|
|||
a3f33c2ea0
|
|||
d66ee4ab60 | |||
abd2fa0ff0 | |||
9af610ef9e | |||
75a37bd07f | |||
6cbbfe1cde
|
|||
a3e87e1d47 | |||
8b30b59ab4 | |||
3b74b60401 | |||
6f3ffca705 | |||
c6bf2dcf3e
|
|||
9b8d855641 | |||
68928f71eb | |||
1c8fcd812c | |||
7c1a693dec | |||
fa8e48aa43 | |||
396a220960 | |||
7b24cd39b6 | |||
185af90a16 | |||
b2f6e52ae8 | |||
fa835f8b35 | |||
a86c4b6517 | |||
ba1817deb7 | |||
e8db5ce8af | |||
0a2cc8aa81 | |||
d2d73c63c4 | |||
72fe29ef70 | |||
d687b114c9 | |||
4cec0a0c94 | |||
48a328b022 | |||
01245acdb2 | |||
58206b76f2 | |||
5eea29d0ce | |||
3810c7e28e | |||
ce619b6e6a | |||
7587dcb2a6 | |||
e05326e07a | |||
b2cfa819ae | |||
c0edc33898 | |||
7ceaa9822c | |||
b3004d9008 | |||
06e7dbf3f4 | |||
fc338ea696 | |||
6b760d27d0 | |||
3d90fcc7e5 | |||
df57b8c4e6 | |||
1d764d03f7 | |||
e78fb0d387 | |||
70c7b614c1 | |||
cd4ce7b55e | |||
f2a7710aed | |||
5eaceb9a8e | |||
f9d8426174
|
|||
6ee7c34951 | |||
cb498b015e | |||
bfb5c88e79
|
|||
d318a6abb0 | |||
238fe7a365 | |||
c32a64e05c | |||
b179d0e09e | |||
b16f4869d6 | |||
a846da33ad | |||
6c044312c2 | |||
8a498988e7 | |||
0d781d327b | |||
8173006301 | |||
ed0430bc3a | |||
137a553ace | |||
cebf65a89b | |||
f34576d18a | |||
ffe674124e
|
|||
57f497df54
|
|||
ab8cabf8e0
|
|||
c01b285fe4
|
|||
45a5a5d2ca | |||
79537bf1b3 | |||
967882b0b7 | |||
ec9ee8fbc3
|
|||
44f7b7edd8 | |||
9d48a93a76
|
|||
b295c24a18
|
|||
a80a1aa9ac
|
|||
e4654a71eb
|
|||
c1a4eec75e | |||
f5775be4be
|
|||
48ca20b104 | |||
77de2ba46f | |||
b7916aa0f1 | |||
95845ea5e1 | |||
656eeaaab5 | |||
269e9323df | |||
7ba8db2287 | |||
8bfa10b6e4
|
|||
b9797310ab | |||
686e9b7bcf | |||
c7e207b934 | |||
40d85c7120 | |||
ea5a202af4
|
|||
e151d96dd9
|
|||
afa81ce50a
|
|||
0fbc894173 | |||
e6f5b7456e | |||
42a301e763 | |||
13210d90bc | |||
6c297d4f77 | |||
669311205f | |||
0f4a35d003 | |||
8aacb15e21 | |||
c62de5d29f | |||
fce88ba49a | |||
25d0374939 | |||
4dfed7d77d | |||
073e904954 | |||
9c0f39f19d | |||
e5b494ecb8 | |||
ca24eb6ba5 | |||
b88beee846 | |||
33dc6b1211 | |||
313696132a | |||
480e7d5978 | |||
945744e5e9 | |||
fb8c62fc9c | |||
c8bd1533d8 | |||
ba59882e94 | |||
07a4a3009d | |||
8591a1afc1 | |||
0be5f75da0 | |||
82a251ba35 | |||
1dbbabd570 | |||
ac8b551d4a | |||
e1e18378ed | |||
35ec0bf432 | |||
40e005c517 | |||
504d54e7b2 | |||
97640d4f70 | |||
a4298c0992 | |||
4ea12e8831 | |||
23d72ffc43 | |||
46d646bd5b | |||
e5879a60f5 | |||
bbb7ff3a43 | |||
396adfb3a8 | |||
629db03c02 | |||
52b7c1af6a | |||
296a5b6404 | |||
ee70136f42 | |||
2c0c7fdf7e | |||
994efbb991 | |||
ea81e5fa0e | |||
d1f9813c3b | |||
95ae693dd0 | |||
96f98f4908 | |||
8df2ebed45 | |||
99c6845c98 | |||
62713d50d3 | |||
14aaaefd69 | |||
84b507b2ae | |||
4582bbfc64 | |||
f59c3ba228 | |||
8e903c59f6 | |||
ff5b3ee504 | |||
74c61e2e84 | |||
e43acf1bdc | |||
0e2fba583f | |||
da1407eb48 | |||
002aec543f | |||
569df8a18f | |||
28a5f9b2a4 | |||
d2c9864497 | |||
e4311b2689 | |||
b9e0058739 | |||
4556849ec8 | |||
779ae1e61a | |||
e340ed095c | |||
e812c17394 | |||
39daf99deb | |||
74f852d2f4 | |||
2fdb3c5f88 | |||
214ed8e876 | |||
a379164f87 | |||
e39f063568 | |||
7f71093e33 | |||
bd6ef18a5b | |||
00a13b8fb2 | |||
987cffd998 | |||
f8a6732b38 | |||
cd08f12848 | |||
9bdc882abd | |||
9137cb9d06 | |||
f2033c9c2f | |||
0db05bad0a | |||
be558ebfd6 | |||
4ae2e9453c | |||
834d30ac8c | |||
a1a20eeeb0 | |||
eb6d634d3a | |||
d87bb6b0de | |||
8f45e51a9e | |||
fb6503a200 | |||
41beef9fae | |||
1beaa6c2b7 | |||
8d64d97d82 | |||
ee4c683e1a | |||
65a4dbbf37 | |||
4b28596983 | |||
90292634a8 | |||
f6a176b30c | |||
6673523a71 | |||
ce85dc9bf9 | |||
f7bbd36aef | |||
e156345ecf | |||
c2c8d6fba1 | |||
aa63bb7378 | |||
b028b389a9 | |||
24215dc880 | |||
aabc5827e3 | |||
6be4ce2575 | |||
8a50bac101 | |||
0665669173 | |||
51fc9076cb | |||
d185d5cdc8 | |||
e37fa65be1 | |||
72ef50f914 | |||
8776541daa | |||
a98a1e4c5b | |||
b0dbd8330e | |||
881df3e5da | |||
f8b6efb995 | |||
dc94c77dad | |||
2582abe3d7 | |||
5e7dc85052 | |||
9a6e6c617d | |||
9aff2ad351 | |||
be3febe40a | |||
2f726c9f4b | |||
6e14cdfadc | |||
0923783611 | |||
1e6485fb3c | |||
9df67861c9 | |||
4343ae6c02 | |||
ffdb89720c | |||
e49aa04efc | |||
7d24b5c0c1 | |||
122f21fce2 | |||
3ec675cd05 | |||
1b71db4575 | |||
f7a3eaa0cb | |||
5b1f1a14f3 | |||
24d068bc27 | |||
bca3748ca7 | |||
866e75955a | |||
5c520ab865 | |||
97e5b9ab0a | |||
799c520437 | |||
e7ade0215a | |||
4d652b88d7 | |||
39e54ea40b | |||
09f07f3584 | |||
75bd0b1358 | |||
91abf0f412 | |||
b2e81cf9bd | |||
cbb82a2399 | |||
16dc6c6d34 | |||
55a4058ef4 | |||
43dc5a9b3e | |||
90d36575c4 | |||
c22743c1c9 | |||
9ad644ee37 | |||
b1dffdc3e8 | |||
d19deee5a5 | |||
d9aff3d770 | |||
0a7f85ceeb | |||
cc13fb189c | |||
c237e5595e | |||
38a948d30d | |||
f8c574d856 | |||
46aa2088e5 | |||
929b942a4d | |||
b6d24a79ee | |||
b6cd39a22d | |||
c85098f4c3 | |||
de909e61fd | |||
a8216603f4 | |||
28d7c1b3c0 | |||
325f511234 | |||
363d87a38a | |||
029bf2bbbd | |||
140cc62b5a | |||
fec526192b | |||
3ff77e729f | |||
2bc80b1042 | |||
6c7092c229 | |||
345f446050 | |||
2d0738c976 | |||
02eccfbf5e | |||
4dfed4c64c | |||
8359f2127a | |||
ca45181dac | |||
9fcb5f61a4 | |||
5f025d97cb | |||
8ef8e2a263 |
1
.allowed_signers
Normal file
1
.allowed_signers
Normal file
@ -0,0 +1 @@
|
||||
jonah@privacyguides.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJUp+Gi8ZpTDDbZC+GY+3QnFfxkI9rAu07bceyoHDp9O
|
12
.gitattributes
vendored
12
.gitattributes
vendored
@ -1,2 +1,14 @@
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
|
||||
docs/** -linguist-documentation
|
||||
.git* text
|
||||
*.json text
|
||||
*.js text
|
||||
*.md text linguist-detectable
|
||||
*.{yml,yaml} text
|
||||
*.{htm,html} text diff=html
|
||||
|
||||
*.svg text
|
||||
*.png binary
|
||||
*.{jpeg,jpg} binary
|
||||
|
29
.github/CODEOWNERS
vendored
29
.github/CODEOWNERS
vendored
@ -1,21 +1,18 @@
|
||||
# Additional Co-Owners are added to the TOP of this file.
|
||||
# Additional Co-Owners are added to the TOP of this file
|
||||
|
||||
# High-traffic pages
|
||||
/index.html @JonahAragon @dngray
|
||||
/blog.html @JonahAragon
|
||||
/docs/index.en.md @jonaharagon @dngray
|
||||
/theme/overrides/ @jonaharagon
|
||||
|
||||
# Org/legal
|
||||
/notices.md @JonahAragon
|
||||
/privacy-policy.md @JonahAragon
|
||||
LICENSE @JonahAragon
|
||||
|
||||
# Website dev
|
||||
/_sass/ @JonahAragon
|
||||
/_layouts/ @JonahAragon
|
||||
Gemfile @JonahAragon
|
||||
Gemfile.lock @JonahAragon
|
||||
_config.yml @JonahAragon
|
||||
# Org
|
||||
/docs/about/ @jonaharagon
|
||||
CODE_OF_CONDUCT.md @jonaharagon
|
||||
CITATION.cff
|
||||
LICENSE @jonaharagon
|
||||
README.md @jonaharagon @dngray
|
||||
|
||||
# Ops
|
||||
/.github/ @JonahAragon
|
||||
/.well-known/ @JonahAragon
|
||||
/Pipfile @jonaharagon
|
||||
/Pipfile.lock @jonaharagon
|
||||
/.github/ @jonaharagon
|
||||
/.well-known/ @jonaharagon
|
||||
|
11
.github/ISSUE_TEMPLATE/2_Website_Issues.md
vendored
11
.github/ISSUE_TEMPLATE/2_Website_Issues.md
vendored
@ -1,7 +1,6 @@
|
||||
---
|
||||
name: "Website Issue"
|
||||
about: Report a bug with the website. (NO CONTENT ISSUES)
|
||||
title: "Website Issue | "
|
||||
---
|
||||
|
||||
<!--
|
||||
@ -11,12 +10,6 @@ This is NOT the place to request changes to the content of the website.
|
||||
This is NOT the place to report issues with our services like Matrix.
|
||||
This is ONLY for reporting bugs or technical issues with www.privacyguides.org, the website.
|
||||
|
||||
-->
|
||||
|
||||
## Description
|
||||
|
||||
<!--
|
||||
## Screenshots
|
||||
|
||||
Please add screenshots if applicable
|
||||
Please add screenshots if applicable.
|
||||
|
||||
-->
|
||||
|
4
.github/ISSUE_TEMPLATE/config.yml
vendored
4
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -1,4 +1,3 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Suggest a New Provider or Software
|
||||
url: https://github.com/privacyguides/privacyguides.org/discussions/new
|
||||
@ -9,3 +8,6 @@ contact_links:
|
||||
- name: Share an Idea
|
||||
url: https://github.com/privacyguides/privacyguides.org/discussions/new
|
||||
about: Suggest a new feature/section/page or anything else for the website.
|
||||
- name: Report a Translation Issue
|
||||
url: https://crowdin.com/project/privacyguides/discussions
|
||||
about: Please report an issue with website translations on Crowdin.
|
||||
|
16
.github/PULL_REQUEST_TEMPLATE.md
vendored
16
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -1,16 +1,18 @@
|
||||
<!-- Submitting a PR? Awesome!! -->
|
||||
<!-- READ ENTIRELY BEFORE SUBMITTING:
|
||||
Please use a descriptive title for your PR, it will be included in our changelog!
|
||||
|
||||
## Description
|
||||
**********
|
||||
By submitting a PR, you are agreeing to release your work to the public domain
|
||||
persuant to the terms described in our LICENSE file (CC0 1.0 Universal).
|
||||
**********
|
||||
|
||||
Resolves: # <!-- Did you solve an open GitHub issue? Put the number here so we mark it complete! -->
|
||||
|
||||
<!--
|
||||
Please share with us what you've changed.
|
||||
If you are adding a software recommendation, give us a link to its website or
|
||||
source code.
|
||||
|
||||
If you are making changes that you have a conflict of interest with, please
|
||||
disclose this as well:
|
||||
disclose this as well (this does not disqualify your PR by any means):
|
||||
|
||||
Conflict of interest contributions involve contributing about yourself,
|
||||
family, friends, clients, employers, or your financial and other relationships.
|
||||
Any external relationship can trigger a conflict of interest.
|
||||
@ -18,7 +20,7 @@ Any external relationship can trigger a conflict of interest.
|
||||
That someone has a conflict of interest is a description of a situation,
|
||||
NOT a judgement about that person's opinions, integrity, or good faith.
|
||||
|
||||
If you have a conflict of interest, you must disclose who is paying you for
|
||||
If you have a conflict of interest, you MUST disclose who is paying you for
|
||||
this contribution, who the client is (if for example, you are being paid by
|
||||
an advertising agency), and any other relevant affiliations.
|
||||
-->
|
||||
|
11
.github/actions/build/action.yml
vendored
11
.github/actions/build/action.yml
vendored
@ -1,11 +0,0 @@
|
||||
name: 'Build'
|
||||
description: 'Builds Jekyll Site'
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- shell: bash
|
||||
run: |
|
||||
sed -i "s/^ date:.*$/ date: $(TZ=UTC date "+%Y-%m-%d")/" _config.yml
|
||||
sed -i "s/^ time:.*$/ time: $(TZ=UTC date "+%H:%M:%S %Z")/" _config.yml
|
||||
- shell: bash
|
||||
run: npm run build
|
32
.github/dependabot.yml
vendored
32
.github/dependabot.yml
vendored
@ -1,27 +1,29 @@
|
||||
version: 2
|
||||
|
||||
registries:
|
||||
|
||||
fortawesome:
|
||||
type: npm-registry
|
||||
url: https://npm.fontawesome.com/
|
||||
token: ${{ secrets.FONTAWESOME_NPM_AUTH_TOKEN }}
|
||||
|
||||
updates:
|
||||
|
||||
# Maintain dependencies for GitHub Actions
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
assignees:
|
||||
- "jonaharagon"
|
||||
reviewers:
|
||||
- "jonaharagon"
|
||||
labels:
|
||||
- "fix:github_actions"
|
||||
|
||||
- package-ecosystem: "bundler" # See documentation for possible values
|
||||
directory: "/" # Location of package manifests
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
# Maintain dependencies for pipenv
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/"
|
||||
registries:
|
||||
- fortawesome
|
||||
ignore:
|
||||
- dependency-name: "mkdocs-material"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
assignees:
|
||||
- "jonaharagon"
|
||||
reviewers:
|
||||
- "jonaharagon"
|
||||
labels:
|
||||
- "fix:python"
|
||||
|
27
.github/workflows/crowdin.yml
vendored
Normal file
27
.github/workflows/crowdin.yml
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
name: 💬 Crowdin Upload
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
synchronize-with-crowdin:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: crowdin action
|
||||
uses: crowdin/github-action@1.4.12
|
||||
with:
|
||||
upload_sources: true
|
||||
upload_sources_args: '--auto-update --delete-obsolete'
|
||||
upload_translations: false
|
||||
download_translations: false
|
||||
config: crowdin.yml
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
|
||||
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
|
41
.github/workflows/mirror.yml
vendored
Normal file
41
.github/workflows/mirror.yml
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
name: 🪞 Push to Mirrors
|
||||
|
||||
on: [ push, delete, create ]
|
||||
|
||||
# Ensures that only one mirror task will run at a time.
|
||||
concurrency:
|
||||
group: git-mirror
|
||||
|
||||
jobs:
|
||||
gitlab:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Mirror to GitLab
|
||||
uses: wearerequired/git-mirror-action@v1
|
||||
env:
|
||||
SSH_PRIVATE_KEY: ${{ secrets.ACTIONS_SSH_KEY }}
|
||||
with:
|
||||
source-repo: "git@github.com:privacyguides/privacyguides.org.git"
|
||||
destination-repo: "git@gitlab.com:privacyguides/privacyguides.org.git"
|
||||
|
||||
codeberg:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Mirror to Codeberg
|
||||
uses: wearerequired/git-mirror-action@v1
|
||||
env:
|
||||
SSH_PRIVATE_KEY: ${{ secrets.ACTIONS_SSH_KEY }}
|
||||
with:
|
||||
source-repo: "git@github.com:privacyguides/privacyguides.org.git"
|
||||
destination-repo: "git@codeberg.org:privacyguides/privacyguides.org.git"
|
||||
|
||||
sourcehut:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Mirror to SourceHut
|
||||
uses: wearerequired/git-mirror-action@v1
|
||||
env:
|
||||
SSH_PRIVATE_KEY: ${{ secrets.ACTIONS_SSH_KEY }}
|
||||
with:
|
||||
source-repo: "git@github.com:privacyguides/privacyguides.org.git"
|
||||
destination-repo: "git@git.sr.ht:~jonaharagon/privacyguides.org"
|
87
.github/workflows/pages.yml
vendored
Normal file
87
.github/workflows/pages.yml
vendored
Normal file
@ -0,0 +1,87 @@
|
||||
name: 🛠️ Deploy to GitHub Pages
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
# Allow one concurrent deployment
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
PYTHON_VERSION: 3.x
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: '0'
|
||||
ref: ${{github.event.pull_request.head.ref}}
|
||||
repository: ${{github.event.pull_request.head.repo.full_name}}
|
||||
ssh-key: ${{ secrets.ACTIONS_SSH_KEY }}
|
||||
submodules: 'true'
|
||||
|
||||
- name: Pages setup
|
||||
uses: actions/configure-pages@v2
|
||||
|
||||
- name: Python setup
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.10'
|
||||
|
||||
- name: Cache files
|
||||
uses: actions/cache@v3.0.8
|
||||
with:
|
||||
key: ${{ github.ref }}
|
||||
path: .cache
|
||||
|
||||
- name: Install Python dependencies
|
||||
run: |
|
||||
pip install pipenv
|
||||
pipenv install
|
||||
|
||||
- name: Build website
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CARDS: true
|
||||
run: |
|
||||
pipenv run mkdocs build --config-file mkdocs.production.yml
|
||||
mv .well-known site/
|
||||
pipenv run mkdocs --version
|
||||
|
||||
- name: Matrix homeserver configuration
|
||||
run: |
|
||||
mkdir -p site/.well-known/matrix
|
||||
curl -o site/.well-known/matrix/server https://matrix.privacyguides.org/.well-known/matrix/server
|
||||
curl -o site/.well-known/matrix/client https://matrix.privacyguides.org/.well-known/matrix/client
|
||||
|
||||
- name: Package website
|
||||
uses: actions/upload-pages-artifact@v1
|
||||
with:
|
||||
path: site
|
||||
|
||||
deploy:
|
||||
name: Deploy
|
||||
needs: build
|
||||
|
||||
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
|
||||
permissions:
|
||||
pages: write # to deploy to Pages
|
||||
id-token: write # to verify the deployment originates from an appropriate source
|
||||
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@main
|
47
.github/workflows/preview.yml
vendored
Normal file
47
.github/workflows/preview.yml
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
name: 🔂 Surge PR Preview
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, synchronize, reopened]
|
||||
|
||||
# Ensures that only one mirror task will run at a time.
|
||||
concurrency:
|
||||
group: surge-sh
|
||||
|
||||
jobs:
|
||||
preview:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
contents: write
|
||||
environment: preview
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: '0'
|
||||
ref: ${{github.event.pull_request.head.ref}}
|
||||
repository: ${{github.event.pull_request.head.repo.full_name}}
|
||||
ssh-key: ${{ secrets.ACTIONS_SSH_KEY }}
|
||||
submodules: 'true'
|
||||
|
||||
- name: Set up Python runtime
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.10'
|
||||
|
||||
- name: Deploy to surge.sh
|
||||
uses: afc163/surge-preview@v1
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CARDS: true
|
||||
with:
|
||||
surge_token: ${{ secrets.SURGE_TOKEN }}
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
dist: site
|
||||
failOnError: 'true'
|
||||
build: |
|
||||
pip install pipenv
|
||||
pipenv install
|
||||
pipenv run mkdocs build --config-file mkdocs.production.yml
|
62
.github/workflows/production.yml
vendored
62
.github/workflows/production.yml
vendored
@ -1,62 +0,0 @@
|
||||
name: Production Deploy
|
||||
concurrency:
|
||||
group: Production
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
|
||||
env:
|
||||
FONTAWESOME_NPM_AUTH_TOKEN: ${{ secrets.FONTAWESOME_NPM_AUTH_TOKEN }}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Jekyll Build
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
bundler-cache: true
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '14'
|
||||
- name: Cache Jekyll build
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
.jekyll-cache
|
||||
.sass-cache
|
||||
key: ${{ runner.os }}-jekyll-${{ hashFiles('**/*.??m[ld]') }}
|
||||
- name: Install dependencies
|
||||
run: npm install
|
||||
- name: Build website
|
||||
uses: ./.github/actions/build
|
||||
- run: tar cvf site.tar _site
|
||||
- name: Upload generated Jekyll site
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: generated-site
|
||||
path: site.tar
|
||||
|
||||
deploy:
|
||||
name: Rsync Deploy
|
||||
runs-on: ubuntu-latest
|
||||
environment: production
|
||||
needs: build
|
||||
|
||||
steps:
|
||||
- name: Download generated Jekyll site
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: generated-site
|
||||
- run: tar xvf site.tar
|
||||
- name: Copy built site to production
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
echo "${{ secrets.SSH_KEY }}" > ~/.ssh/id_rsa
|
||||
chmod 700 ~/.ssh/id_rsa
|
||||
ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts
|
||||
rsync -azP --delete _site/ ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }}:${{ secrets.SSH_PATH }}
|
19
.github/workflows/release.yml
vendored
Normal file
19
.github/workflows/release.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
name: 📦 Releases
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
release:
|
||||
name: Create Release
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: ncipollo/release-action@v1
|
||||
with:
|
||||
generateReleaseNotes: true
|
||||
token: ${{ secrets.REPO_TOKEN }}
|
238
.github/workflows/tests.yml
vendored
238
.github/workflows/tests.yml
vendored
@ -1,238 +0,0 @@
|
||||
name: Code tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
|
||||
env:
|
||||
FONTAWESOME_NPM_AUTH_TOKEN: ${{ secrets.FONTAWESOME_NPM_AUTH_TOKEN }}
|
||||
|
||||
jobs:
|
||||
deps:
|
||||
name: "Dependency Install"
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Cache node modules
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-npm-
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '14'
|
||||
- run: npm install
|
||||
- run: tar cvf node_modules.tar node_modules
|
||||
- name: Upload node_modules for Jekyll build
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: node_modules
|
||||
path: node_modules.tar
|
||||
|
||||
build:
|
||||
name: "Jekyll Build"
|
||||
runs-on: ubuntu-latest
|
||||
needs: deps
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
bundler-cache: true
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '14'
|
||||
- name: Cache Jekyll build
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
.jekyll-cache
|
||||
.sass-cache
|
||||
key: ${{ runner.os }}-jekyll-${{ hashFiles('**/*.??m[ld]') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-jekyll-
|
||||
- name: Set Date and Time
|
||||
run: |
|
||||
sed -i "s/^ date:.*$/ date: $(TZ=UTC date "+%Y-%m-%d")/" _config.yml
|
||||
sed -i "s/^ time:.*$/ time: $(TZ=UTC date "+%H:%M:%S %Z")/" _config.yml
|
||||
- name: Download node_modules
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: node_modules
|
||||
- run: tar xvf node_modules.tar
|
||||
- name: Generate Website
|
||||
run: npm run build
|
||||
- run: tar cvf site.tar _site
|
||||
- name: Upload generated Jekyll site
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: generated-site
|
||||
path: site.tar
|
||||
|
||||
link:
|
||||
name: "Broken Hyperlinks (Internal)"
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Download generated Jekyll site
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: generated-site
|
||||
- run: tar xvf site.tar
|
||||
- name: Copy built site to production
|
||||
run: |
|
||||
mv ${{ github.workspace }}/_site /tmp/
|
||||
mkdir -p /tmp/src
|
||||
mv ${{ github.workspace }}/* /tmp/src/
|
||||
mkdir -p ${{ github.workspace }}/src
|
||||
mv /tmp/src/* ${{ github.workspace }}/src/
|
||||
mv /tmp/_site ${{ github.workspace }}/
|
||||
- name: Internal link checker
|
||||
uses: untitaker/hyperlink@0.1.21
|
||||
with:
|
||||
args: _site/ --sources src/
|
||||
|
||||
extlink:
|
||||
name: "Broken Hyperlinks (External)"
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build, link]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Download generated Jekyll site
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: generated-site
|
||||
- run: tar xvf site.tar
|
||||
- name: Cache HTMLProofer
|
||||
id: cache-htmlproofer
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: tmp/.htmlproofer
|
||||
key: ${{ runner.os }}-htmlproofer-${{ hashFiles('_site/**.html') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-htmlproofer-
|
||||
${{ runner.os }}-htmlproofer
|
||||
- name: Check External Links (Informational, Soft-Fail)
|
||||
uses: chabad360/htmlproofer@v1.1
|
||||
with:
|
||||
directory: ${{ github.workspace }}/_site
|
||||
arguments: --assume-extension --external_only --internal-domains privacyguides.org,www.privacyguides.org --timeframe 30d --url-ignore '/https:\/\/developers\.cloudflare\.com\//,/https:\/\/github\.com\/privacyguides\/privacyguides\.org\/(edit|tree|blob)\/main/,/https:\/\/support\.(startmail|yubico)\.com\//'
|
||||
continue-on-error: true
|
||||
|
||||
https:
|
||||
name: "Require HTTPS Internal Images"
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Download generated Jekyll site
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: generated-site
|
||||
- run: tar xvf site.tar
|
||||
- name: Check Images
|
||||
uses: chabad360/htmlproofer@v1.1
|
||||
with:
|
||||
directory: ${{ github.workspace }}/_site
|
||||
arguments: --assume-extension --check-img-http --internal-domains privacyguides.org,www.privacyguides.org --disable-external --checks-to-ignore LinkCheck,ScriptCheck
|
||||
|
||||
scripts:
|
||||
name: "Script Reference Checks"
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build, link]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Download generated Jekyll site
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: generated-site
|
||||
- run: tar xvf site.tar
|
||||
- name: Check HTML
|
||||
uses: chabad360/htmlproofer@v1.1
|
||||
with:
|
||||
directory: ${{ github.workspace }}/_site
|
||||
arguments: --assume-extension --check-html --disable-external --check-sri --report-script-embeds --internal-domains privacyguides.org,www.privacyguides.org --checks-to-ignore LinkCheck,ImageCheck,HtmlCheck
|
||||
|
||||
tags:
|
||||
name: "HTML Tag Test"
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Download generated Jekyll site
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: generated-site
|
||||
- run: tar xvf site.tar
|
||||
- name: Validate HTML
|
||||
uses: chabad360/htmlproofer@v1.1
|
||||
with:
|
||||
directory: ${{ github.workspace }}/_site
|
||||
arguments: --assume-extension --check-html --disable-external --allow-hash-href --internal-domains privacyguides.org,www.privacyguides.org --report-invalid-tags --report-eof-tags --report-mismatched-tags --checks-to-ignore LinkCheck,ImageCheck,ScriptCheck
|
||||
|
||||
entity:
|
||||
name: "HTML Entity Names Test"
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Download generated Jekyll site
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: generated-site
|
||||
- run: tar xvf site.tar
|
||||
- name: Validate HTML
|
||||
uses: chabad360/htmlproofer@v1.1
|
||||
with:
|
||||
directory: ${{ github.workspace }}/_site
|
||||
arguments: --assume-extension --check-html --disable-external --allow-hash-href --internal-domains privacyguides.org,www.privacyguides.org --report-missing-names --checks-to-ignore LinkCheck,ImageCheck,ScriptCheck
|
||||
|
||||
misc:
|
||||
name: "Misc HTML Test"
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Download generated Jekyll site
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: generated-site
|
||||
- run: tar xvf site.tar
|
||||
- name: Validate HTML
|
||||
uses: chabad360/htmlproofer@v1.1
|
||||
with:
|
||||
directory: ${{ github.workspace }}/_site
|
||||
arguments: --assume-extension --check-html --disable-external --internal-domains privacyguides.org,www.privacyguides.org --report-missing-doctype --checks-to-ignore LinkCheck,ImageCheck,ScriptCheck
|
||||
|
||||
opengraph:
|
||||
name: "OpenGraph Test"
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Download generated Jekyll site
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: generated-site
|
||||
- run: tar xvf site.tar
|
||||
- name: Check OpenGraph
|
||||
uses: chabad360/htmlproofer@v1.1
|
||||
with:
|
||||
directory: ${{ github.workspace }}/_site
|
||||
arguments: --assume-extension --disable-external --check-opengraph --checks-to-ignore LinkCheck,ImageCheck,ScriptCheck
|
15
.gitignore
vendored
15
.gitignore
vendored
@ -1,13 +1,2 @@
|
||||
_site/
|
||||
.sass-cache/
|
||||
.jekyll-metadata
|
||||
.DS_Store
|
||||
font/assets/
|
||||
font/_sass/
|
||||
font/.fontcustom-manifest.json
|
||||
assets/webfonts/ptio-font-preview.html
|
||||
vendor
|
||||
node_modules
|
||||
.bundle
|
||||
.jekyll-cache
|
||||
.nova
|
||||
site
|
||||
.cache
|
||||
|
6
.gitmodules
vendored
Normal file
6
.gitmodules
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
[submodule "mkdocs-material-insiders"]
|
||||
path = mkdocs-material
|
||||
url = git@github.com:privacyguides/mkdocs-material-insiders.git
|
||||
[submodule "docs/assets/brand"]
|
||||
path = docs/assets/brand
|
||||
url = https://github.com/privacyguides/brand.git
|
11
.markdownlint.yml
Normal file
11
.markdownlint.yml
Normal file
@ -0,0 +1,11 @@
|
||||
default: true
|
||||
line-length: false
|
||||
ul-indent:
|
||||
indent: 4
|
||||
no-inline-html: false
|
||||
code-block-style: false
|
||||
no-hard-tabs:
|
||||
spaces-per-tab: 4
|
||||
emphasis-style:
|
||||
style: "asterisk"
|
||||
no-duplicate-header: false
|
2
.npmrc
2
.npmrc
@ -1,2 +0,0 @@
|
||||
@fortawesome:registry=https://npm.fontawesome.com/
|
||||
//npm.fontawesome.com/:_authToken=${FONTAWESOME_NPM_AUTH_TOKEN}
|
@ -1 +0,0 @@
|
||||
3.0.0
|
@ -1,5 +0,0 @@
|
||||
{
|
||||
"m.homeserver": {
|
||||
"base_url": "https://dendrite-client.privacyguides.org"
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"m.server": "dendrite-federation.privacyguides.org:443"
|
||||
}
|
BIN
.well-known/openpgpkey/hu/dnrefmbtd6i58w8xfy4imj94cmbw3u3h
Executable file → Normal file
BIN
.well-known/openpgpkey/hu/dnrefmbtd6i58w8xfy4imj94cmbw3u3h
Executable file → Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
Contact: jonah@triplebit.net
|
||||
Encryption: https://www.jonaharagon.com/keys/
|
||||
Contact: mailto:jonah@triplebit.net
|
||||
Expires: 2024-01-01T18:00:00.000Z
|
||||
Preferred-Languages: en
|
||||
Canonical: https://privacyguides.org/.well-known/security.txt
|
||||
Canonical: https://www.privacyguides.org/.well-known/security.txt
|
||||
Policy: https://github.com/privacyguides/privacyguides.org/security/policy
|
||||
|
21
404.html
21
404.html
@ -1,21 +0,0 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
<div class="container text-center">
|
||||
<div class="position-absolute top-50 start-50 translate-middle">
|
||||
<h1 class="display-1">404</h1>
|
||||
<p><strong>We couldn't find that :(</strong></p>
|
||||
<p>Maybe you were looking for one of these pages?</p>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<ul class="list-unstyled">
|
||||
<li><i class="fas fa-home"></i> <a href="/">Back to our Homepage</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="position-absolute bottom-0 start-50 translate-middle-x">
|
||||
<p class="text-danger text-center"><i class="fas fa-exclamation-circle"></i> If you believe you reached this page in error, please <a href="https://github.com/privacyguides/privacyguides.org/issues/new/choose">contact us</a>!</p>
|
||||
</div>
|
||||
</div>
|
47
CITATION.cff
Normal file
47
CITATION.cff
Normal file
@ -0,0 +1,47 @@
|
||||
cff-version: 1.2.0
|
||||
title: Privacy Guides
|
||||
message: 'If you reference this website, please cite it in your work.'
|
||||
type: software
|
||||
authors:
|
||||
- email: jonah@privacyguides.org
|
||||
given-names: Jonah
|
||||
family-names: Aragon
|
||||
orcid: 'https://orcid.org/0000-0001-6996-4965'
|
||||
- name: The Privacy Guides team
|
||||
website: 'https://github.com/orgs/privacyguides/people'
|
||||
repository-code: 'https://github.com/privacyguides/privacyguides.org'
|
||||
references:
|
||||
- authors:
|
||||
- family-names: Donath
|
||||
given-names: Martin
|
||||
title: 'mkdocs-material'
|
||||
type: software
|
||||
repository-code: 'https://github.com/squidfunk/mkdocs-material'
|
||||
preferred-citation:
|
||||
type: website
|
||||
title: Privacy Guides
|
||||
authors:
|
||||
- email: jonah@privacyguides.org
|
||||
given-names: Jonah
|
||||
family-names: Aragon
|
||||
orcid: 'https://orcid.org/0000-0001-6996-4965'
|
||||
- given-names: Daniel
|
||||
family-names: Gray
|
||||
email: dngray@privacyguides.org
|
||||
- name: The Privacy Guides team
|
||||
website: 'https://github.com/orgs/privacyguides/people'
|
||||
- name: Various project contributors
|
||||
url: 'https://www.privacyguides.org'
|
||||
abstract: >-
|
||||
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.
|
||||
keywords:
|
||||
- privacy
|
||||
- surveillance
|
||||
- encryption
|
||||
- website
|
||||
- markdown
|
||||
license: CC0-1.0
|
20
Gemfile
20
Gemfile
@ -1,20 +0,0 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "jekyll", "~> 4.2"
|
||||
|
||||
group :jekyll_plugins do
|
||||
gem "jekyll-feed", "~> 0.16"
|
||||
gem "jekyll-brotli", "~> 2.3"
|
||||
gem "jekyll-sitemap", "~> 1.4"
|
||||
end
|
||||
|
||||
# Jekyll 3.9.0 now requires this explicitly installed, apparently
|
||||
gem "kramdown-parser-gfm", "~> 1.1"
|
||||
gem "webrick", "~> 1.7"
|
||||
gem 'eventmachine', '1.3.0.dev.1', git: 'https://github.com/eventmachine/eventmachine', branch: 'master'
|
||||
|
||||
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
|
||||
|
||||
# Performance-booster for watching directories on Windows
|
||||
gem "wdm", "~> 0.1.0" if Gem.win_platform?
|
89
Gemfile.lock
89
Gemfile.lock
@ -1,89 +0,0 @@
|
||||
GIT
|
||||
remote: https://github.com/eventmachine/eventmachine
|
||||
revision: df4ab0068e5e9f504096584093a74510d0dac6c8
|
||||
branch: master
|
||||
specs:
|
||||
eventmachine (1.3.0.dev.1)
|
||||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
brotli (0.2.3)
|
||||
colorator (1.1.0)
|
||||
concurrent-ruby (1.1.9)
|
||||
em-websocket (0.5.3)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0)
|
||||
ffi (1.15.5)
|
||||
forwardable-extended (2.6.0)
|
||||
http_parser.rb (0.8.0)
|
||||
i18n (1.10.0)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.2.2)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 1.0)
|
||||
jekyll-sass-converter (~> 2.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
kramdown (~> 2.3)
|
||||
kramdown-parser-gfm (~> 1.0)
|
||||
liquid (~> 4.0)
|
||||
mercenary (~> 0.4.0)
|
||||
pathutil (~> 0.9)
|
||||
rouge (~> 3.0)
|
||||
safe_yaml (~> 1.0)
|
||||
terminal-table (~> 2.0)
|
||||
jekyll-brotli (2.3.0)
|
||||
brotli (~> 0.2.0)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
jekyll-feed (0.16.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-sass-converter (2.2.0)
|
||||
sassc (> 2.0.1, < 3.0)
|
||||
jekyll-sitemap (1.4.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
kramdown (2.3.1)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.3)
|
||||
listen (3.7.1)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.4.0)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (4.0.6)
|
||||
rb-fsevent (0.11.1)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.5)
|
||||
rouge (3.28.0)
|
||||
safe_yaml (1.0.5)
|
||||
sassc (2.4.0)
|
||||
ffi (~> 1.9)
|
||||
terminal-table (2.0.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
unicode-display_width (1.8.0)
|
||||
webrick (1.7.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
eventmachine (= 1.3.0.dev.1)!
|
||||
jekyll (~> 4.2)
|
||||
jekyll-brotli (~> 2.3)
|
||||
jekyll-feed (~> 0.16)
|
||||
jekyll-sitemap (~> 1.4)
|
||||
kramdown-parser-gfm (~> 1.1)
|
||||
tzinfo-data
|
||||
webrick (~> 1.7)
|
||||
|
||||
BUNDLED WITH
|
||||
2.2.5
|
20
Pipfile
Normal file
20
Pipfile
Normal file
@ -0,0 +1,20 @@
|
||||
[[source]]
|
||||
url = "https://pypi.org/simple"
|
||||
verify_ssl = true
|
||||
name = "pypi"
|
||||
|
||||
[packages]
|
||||
mkdocs = "*"
|
||||
mkdocs-material = {path = "./mkdocs-material"}
|
||||
mkdocs-static-i18n = "*"
|
||||
mkdocs-git-revision-date-localized-plugin = "*"
|
||||
typing-extensions = "*"
|
||||
mkdocs-rss-plugin = "*"
|
||||
mkdocs-git-committers-plugin-2 = "*"
|
||||
mkdocs-macros-plugin = "*"
|
||||
|
||||
[dev-packages]
|
||||
scour = "*"
|
||||
|
||||
[requires]
|
||||
python_version = "3.10"
|
790
Pipfile.lock
generated
Normal file
790
Pipfile.lock
generated
Normal file
@ -0,0 +1,790 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "cc061d23a1d1965a032daba80bbc3747582c5ce54374e393e09d1d3b4a3d79bf"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
"python_version": "3.10"
|
||||
},
|
||||
"sources": [
|
||||
{
|
||||
"name": "pypi",
|
||||
"url": "https://pypi.org/simple",
|
||||
"verify_ssl": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"default": {
|
||||
"babel": {
|
||||
"hashes": [
|
||||
"sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51",
|
||||
"sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.10.3"
|
||||
},
|
||||
"beautifulsoup4": {
|
||||
"hashes": [
|
||||
"sha256:58d5c3d29f5a36ffeb94f02f0d786cd53014cf9b3b3951d42e0080d8a9498d30",
|
||||
"sha256:ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==4.11.1"
|
||||
},
|
||||
"cairocffi": {
|
||||
"hashes": [
|
||||
"sha256:108a3a7cb09e203bdd8501d9baad91d786d204561bd71e9364e8b34897c47b91"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==1.3.0"
|
||||
},
|
||||
"cairosvg": {
|
||||
"hashes": [
|
||||
"sha256:98c276b7e4f0caf01e5c7176765c104ffa1aa1461d63b2053b04ab663cf7052b",
|
||||
"sha256:b0b9929cf5dba005178d746a8036fcf0025550f498ca54db61873322384783bc"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==2.5.2"
|
||||
},
|
||||
"certifi": {
|
||||
"hashes": [
|
||||
"sha256:43dadad18a7f168740e66944e4fa82c6611848ff9056ad910f8f7a3e46ab89e0",
|
||||
"sha256:cffdcd380919da6137f76633531a5817e3a9f268575c128249fb637e4f9e73fb"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2022.6.15.1"
|
||||
},
|
||||
"cffi": {
|
||||
"hashes": [
|
||||
"sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5",
|
||||
"sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef",
|
||||
"sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104",
|
||||
"sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426",
|
||||
"sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405",
|
||||
"sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375",
|
||||
"sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a",
|
||||
"sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e",
|
||||
"sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc",
|
||||
"sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf",
|
||||
"sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185",
|
||||
"sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497",
|
||||
"sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3",
|
||||
"sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35",
|
||||
"sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c",
|
||||
"sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83",
|
||||
"sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21",
|
||||
"sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca",
|
||||
"sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984",
|
||||
"sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac",
|
||||
"sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd",
|
||||
"sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee",
|
||||
"sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a",
|
||||
"sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2",
|
||||
"sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192",
|
||||
"sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7",
|
||||
"sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585",
|
||||
"sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f",
|
||||
"sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e",
|
||||
"sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27",
|
||||
"sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b",
|
||||
"sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e",
|
||||
"sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e",
|
||||
"sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d",
|
||||
"sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c",
|
||||
"sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415",
|
||||
"sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82",
|
||||
"sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02",
|
||||
"sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314",
|
||||
"sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325",
|
||||
"sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c",
|
||||
"sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3",
|
||||
"sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914",
|
||||
"sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045",
|
||||
"sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d",
|
||||
"sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9",
|
||||
"sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5",
|
||||
"sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2",
|
||||
"sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c",
|
||||
"sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3",
|
||||
"sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2",
|
||||
"sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8",
|
||||
"sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d",
|
||||
"sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d",
|
||||
"sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9",
|
||||
"sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162",
|
||||
"sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76",
|
||||
"sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4",
|
||||
"sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e",
|
||||
"sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9",
|
||||
"sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6",
|
||||
"sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b",
|
||||
"sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01",
|
||||
"sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"
|
||||
],
|
||||
"version": "==1.15.1"
|
||||
},
|
||||
"charset-normalizer": {
|
||||
"hashes": [
|
||||
"sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845",
|
||||
"sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.1.1"
|
||||
},
|
||||
"click": {
|
||||
"hashes": [
|
||||
"sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e",
|
||||
"sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==8.1.3"
|
||||
},
|
||||
"cssselect2": {
|
||||
"hashes": [
|
||||
"sha256:3a83b2a68370c69c9cd3fcb88bbfaebe9d22edeef2c22d1ff3e1ed9c7fa45ed8",
|
||||
"sha256:5b5d6dea81a5eb0c9ca39f116c8578dd413778060c94c1f51196371618909325"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==0.6.0"
|
||||
},
|
||||
"defusedxml": {
|
||||
"hashes": [
|
||||
"sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69",
|
||||
"sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==0.7.1"
|
||||
},
|
||||
"ghp-import": {
|
||||
"hashes": [
|
||||
"sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619",
|
||||
"sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"
|
||||
],
|
||||
"version": "==2.1.0"
|
||||
},
|
||||
"gitdb": {
|
||||
"hashes": [
|
||||
"sha256:8033ad4e853066ba6ca92050b9df2f89301b8fc8bf7e9324d412a63f8bf1a8fd",
|
||||
"sha256:bac2fd45c0a1c9cf619e63a90d62bdc63892ef92387424b855792a6cabe789aa"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==4.0.9"
|
||||
},
|
||||
"gitpython": {
|
||||
"hashes": [
|
||||
"sha256:1c885ce809e8ba2d88a29befeb385fcea06338d3640712b59ca623c220bb5704",
|
||||
"sha256:5b68b000463593e05ff2b261acff0ff0972df8ab1b70d3cdbd41b546c8b8fc3d"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==3.1.27"
|
||||
},
|
||||
"idna": {
|
||||
"hashes": [
|
||||
"sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff",
|
||||
"sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==3.3"
|
||||
},
|
||||
"importlib-metadata": {
|
||||
"hashes": [
|
||||
"sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670",
|
||||
"sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==4.12.0"
|
||||
},
|
||||
"jinja2": {
|
||||
"hashes": [
|
||||
"sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852",
|
||||
"sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==3.1.2"
|
||||
},
|
||||
"lxml": {
|
||||
"hashes": [
|
||||
"sha256:04da965dfebb5dac2619cb90fcf93efdb35b3c6994fea58a157a834f2f94b318",
|
||||
"sha256:0538747a9d7827ce3e16a8fdd201a99e661c7dee3c96c885d8ecba3c35d1032c",
|
||||
"sha256:0645e934e940107e2fdbe7c5b6fb8ec6232444260752598bc4d09511bd056c0b",
|
||||
"sha256:079b68f197c796e42aa80b1f739f058dcee796dc725cc9a1be0cdb08fc45b000",
|
||||
"sha256:0f3f0059891d3254c7b5fb935330d6db38d6519ecd238ca4fce93c234b4a0f73",
|
||||
"sha256:10d2017f9150248563bb579cd0d07c61c58da85c922b780060dcc9a3aa9f432d",
|
||||
"sha256:1355755b62c28950f9ce123c7a41460ed9743c699905cbe664a5bcc5c9c7c7fb",
|
||||
"sha256:13c90064b224e10c14dcdf8086688d3f0e612db53766e7478d7754703295c7c8",
|
||||
"sha256:1423631e3d51008871299525b541413c9b6c6423593e89f9c4cfbe8460afc0a2",
|
||||
"sha256:1436cf0063bba7888e43f1ba8d58824f085410ea2025befe81150aceb123e345",
|
||||
"sha256:1a7c59c6ffd6ef5db362b798f350e24ab2cfa5700d53ac6681918f314a4d3b94",
|
||||
"sha256:1e1cf47774373777936c5aabad489fef7b1c087dcd1f426b621fda9dcc12994e",
|
||||
"sha256:206a51077773c6c5d2ce1991327cda719063a47adc02bd703c56a662cdb6c58b",
|
||||
"sha256:21fb3d24ab430fc538a96e9fbb9b150029914805d551deeac7d7822f64631dfc",
|
||||
"sha256:27e590352c76156f50f538dbcebd1925317a0f70540f7dc8c97d2931c595783a",
|
||||
"sha256:287605bede6bd36e930577c5925fcea17cb30453d96a7b4c63c14a257118dbb9",
|
||||
"sha256:2aaf6a0a6465d39b5ca69688fce82d20088c1838534982996ec46633dc7ad6cc",
|
||||
"sha256:32a73c53783becdb7eaf75a2a1525ea8e49379fb7248c3eeefb9412123536387",
|
||||
"sha256:41fb58868b816c202e8881fd0f179a4644ce6e7cbbb248ef0283a34b73ec73bb",
|
||||
"sha256:4780677767dd52b99f0af1f123bc2c22873d30b474aa0e2fc3fe5e02217687c7",
|
||||
"sha256:4878e667ebabe9b65e785ac8da4d48886fe81193a84bbe49f12acff8f7a383a4",
|
||||
"sha256:487c8e61d7acc50b8be82bda8c8d21d20e133c3cbf41bd8ad7eb1aaeb3f07c97",
|
||||
"sha256:4beea0f31491bc086991b97517b9683e5cfb369205dac0148ef685ac12a20a67",
|
||||
"sha256:4cfbe42c686f33944e12f45a27d25a492cc0e43e1dc1da5d6a87cbcaf2e95627",
|
||||
"sha256:4d5bae0a37af799207140652a700f21a85946f107a199bcb06720b13a4f1f0b7",
|
||||
"sha256:4e285b5f2bf321fc0857b491b5028c5f276ec0c873b985d58d7748ece1d770dd",
|
||||
"sha256:57e4d637258703d14171b54203fd6822fda218c6c2658a7d30816b10995f29f3",
|
||||
"sha256:5974895115737a74a00b321e339b9c3f45c20275d226398ae79ac008d908bff7",
|
||||
"sha256:5ef87fca280fb15342726bd5f980f6faf8b84a5287fcc2d4962ea8af88b35130",
|
||||
"sha256:603a464c2e67d8a546ddaa206d98e3246e5db05594b97db844c2f0a1af37cf5b",
|
||||
"sha256:6653071f4f9bac46fbc30f3c7838b0e9063ee335908c5d61fb7a4a86c8fd2036",
|
||||
"sha256:6ca2264f341dd81e41f3fffecec6e446aa2121e0b8d026fb5130e02de1402785",
|
||||
"sha256:6d279033bf614953c3fc4a0aa9ac33a21e8044ca72d4fa8b9273fe75359d5cca",
|
||||
"sha256:6d949f53ad4fc7cf02c44d6678e7ff05ec5f5552b235b9e136bd52e9bf730b91",
|
||||
"sha256:6daa662aba22ef3258934105be2dd9afa5bb45748f4f702a3b39a5bf53a1f4dc",
|
||||
"sha256:6eafc048ea3f1b3c136c71a86db393be36b5b3d9c87b1c25204e7d397cee9536",
|
||||
"sha256:830c88747dce8a3e7525defa68afd742b4580df6aa2fdd6f0855481e3994d391",
|
||||
"sha256:86e92728ef3fc842c50a5cb1d5ba2bc66db7da08a7af53fb3da79e202d1b2cd3",
|
||||
"sha256:8caf4d16b31961e964c62194ea3e26a0e9561cdf72eecb1781458b67ec83423d",
|
||||
"sha256:8d1a92d8e90b286d491e5626af53afef2ba04da33e82e30744795c71880eaa21",
|
||||
"sha256:8f0a4d179c9a941eb80c3a63cdb495e539e064f8054230844dcf2fcb812b71d3",
|
||||
"sha256:9232b09f5efee6a495a99ae6824881940d6447debe272ea400c02e3b68aad85d",
|
||||
"sha256:927a9dd016d6033bc12e0bf5dee1dde140235fc8d0d51099353c76081c03dc29",
|
||||
"sha256:93e414e3206779ef41e5ff2448067213febf260ba747fc65389a3ddaa3fb8715",
|
||||
"sha256:98cafc618614d72b02185ac583c6f7796202062c41d2eeecdf07820bad3295ed",
|
||||
"sha256:9c3a88d20e4fe4a2a4a84bf439a5ac9c9aba400b85244c63a1ab7088f85d9d25",
|
||||
"sha256:9f36de4cd0c262dd9927886cc2305aa3f2210db437aa4fed3fb4940b8bf4592c",
|
||||
"sha256:a60f90bba4c37962cbf210f0188ecca87daafdf60271f4c6948606e4dabf8785",
|
||||
"sha256:a614e4afed58c14254e67862456d212c4dcceebab2eaa44d627c2ca04bf86837",
|
||||
"sha256:ae06c1e4bc60ee076292e582a7512f304abdf6c70db59b56745cca1684f875a4",
|
||||
"sha256:b122a188cd292c4d2fcd78d04f863b789ef43aa129b233d7c9004de08693728b",
|
||||
"sha256:b570da8cd0012f4af9fa76a5635cd31f707473e65a5a335b186069d5c7121ff2",
|
||||
"sha256:bcaa1c495ce623966d9fc8a187da80082334236a2a1c7e141763ffaf7a405067",
|
||||
"sha256:bd34f6d1810d9354dc7e35158aa6cc33456be7706df4420819af6ed966e85448",
|
||||
"sha256:be9eb06489bc975c38706902cbc6888f39e946b81383abc2838d186f0e8b6a9d",
|
||||
"sha256:c4b2e0559b68455c085fb0f6178e9752c4be3bba104d6e881eb5573b399d1eb2",
|
||||
"sha256:c62e8dd9754b7debda0c5ba59d34509c4688f853588d75b53c3791983faa96fc",
|
||||
"sha256:c852b1530083a620cb0de5f3cd6826f19862bafeaf77586f1aef326e49d95f0c",
|
||||
"sha256:d9fc0bf3ff86c17348dfc5d322f627d78273eba545db865c3cd14b3f19e57fa5",
|
||||
"sha256:dad7b164905d3e534883281c050180afcf1e230c3d4a54e8038aa5cfcf312b84",
|
||||
"sha256:e5f66bdf0976ec667fc4594d2812a00b07ed14d1b44259d19a41ae3fff99f2b8",
|
||||
"sha256:e8f0c9d65da595cfe91713bc1222af9ecabd37971762cb830dea2fc3b3bb2acf",
|
||||
"sha256:edffbe3c510d8f4bf8640e02ca019e48a9b72357318383ca60e3330c23aaffc7",
|
||||
"sha256:eea5d6443b093e1545ad0210e6cf27f920482bfcf5c77cdc8596aec73523bb7e",
|
||||
"sha256:ef72013e20dd5ba86a8ae1aed7f56f31d3374189aa8b433e7b12ad182c0d2dfb",
|
||||
"sha256:f05251bbc2145349b8d0b77c0d4e5f3b228418807b1ee27cefb11f69ed3d233b",
|
||||
"sha256:f1be258c4d3dc609e654a1dc59d37b17d7fef05df912c01fc2e15eb43a9735f3",
|
||||
"sha256:f9ced82717c7ec65a67667bb05865ffe38af0e835cdd78728f1209c8fffe0cad",
|
||||
"sha256:fe17d10b97fdf58155f858606bddb4e037b805a60ae023c009f760d8361a4eb8",
|
||||
"sha256:fe749b052bb7233fe5d072fcb549221a8cb1a16725c47c37e42b0b9cb3ff2c3f"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==4.9.1"
|
||||
},
|
||||
"markdown": {
|
||||
"hashes": [
|
||||
"sha256:cbb516f16218e643d8e0a95b309f77eb118cb138d39a4f27851e6a63581db874",
|
||||
"sha256:f5da449a6e1c989a4cea2631aa8ee67caa5a2ef855d551c88f9e309f4634c621"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.3.7"
|
||||
},
|
||||
"markupsafe": {
|
||||
"hashes": [
|
||||
"sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003",
|
||||
"sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88",
|
||||
"sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5",
|
||||
"sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7",
|
||||
"sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a",
|
||||
"sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603",
|
||||
"sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1",
|
||||
"sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135",
|
||||
"sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247",
|
||||
"sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6",
|
||||
"sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601",
|
||||
"sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77",
|
||||
"sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02",
|
||||
"sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e",
|
||||
"sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63",
|
||||
"sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f",
|
||||
"sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980",
|
||||
"sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b",
|
||||
"sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812",
|
||||
"sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff",
|
||||
"sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96",
|
||||
"sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1",
|
||||
"sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925",
|
||||
"sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a",
|
||||
"sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6",
|
||||
"sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e",
|
||||
"sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f",
|
||||
"sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4",
|
||||
"sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f",
|
||||
"sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3",
|
||||
"sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c",
|
||||
"sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a",
|
||||
"sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417",
|
||||
"sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a",
|
||||
"sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a",
|
||||
"sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37",
|
||||
"sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452",
|
||||
"sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933",
|
||||
"sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a",
|
||||
"sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==2.1.1"
|
||||
},
|
||||
"mergedeep": {
|
||||
"hashes": [
|
||||
"sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8",
|
||||
"sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==1.3.4"
|
||||
},
|
||||
"mkdocs": {
|
||||
"hashes": [
|
||||
"sha256:a41a2ff25ce3bbacc953f9844ba07d106233cd76c88bac1f59cb1564ac0d87ed",
|
||||
"sha256:fda92466393127d2da830bc6edc3a625a14b436316d1caf347690648e774c4f0"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.3.1"
|
||||
},
|
||||
"mkdocs-git-committers-plugin-2": {
|
||||
"hashes": [
|
||||
"sha256:1e88c38bfe299a2737ebcf61e8cc27a5193b03d826f743e676ba59960b376c8e",
|
||||
"sha256:617c413ea6b6a160169e601520b7a52377bce5d59f7788b948cdc067e8ced77c"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.1.0"
|
||||
},
|
||||
"mkdocs-git-revision-date-localized-plugin": {
|
||||
"hashes": [
|
||||
"sha256:38517e2084229da1a1b9460e846c2748d238c2d79efd405d1b9174a87bd81d79",
|
||||
"sha256:4ba0e49abea3e9f6ee26e2623ff7283873da657471c61f1d0cfbb986f403316d"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.1.0"
|
||||
},
|
||||
"mkdocs-macros-plugin": {
|
||||
"hashes": [
|
||||
"sha256:96bdabeb98b96139544f0048ea2f5cb80c7befde6b21e94c6d4596c22774cbcf",
|
||||
"sha256:9e64e1cabcf6925359de29fe54f62d5847fb455c2528c440b87f8f1240650608"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==0.7.0"
|
||||
},
|
||||
"mkdocs-material": {
|
||||
"path": "./mkdocs-material",
|
||||
"version": "==8.4.3+insiders.4.22.1"
|
||||
},
|
||||
"mkdocs-material-extensions": {
|
||||
"hashes": [
|
||||
"sha256:a82b70e533ce060b2a5d9eb2bc2e1be201cf61f901f93704b4acf6e3d5983a44",
|
||||
"sha256:bfd24dfdef7b41c312ede42648f9eb83476ea168ec163b613f9abd12bbfddba2"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==1.0.3"
|
||||
},
|
||||
"mkdocs-rss-plugin": {
|
||||
"hashes": [
|
||||
"sha256:50671e2030188da4bc01ff421d979903a01cd87b02e2ec5f430fd05d5ed55825",
|
||||
"sha256:536efc35c2f62ea1eac4bae23532e07f0a19b9044291a12960f47be7d3aaf99e"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.1.0"
|
||||
},
|
||||
"mkdocs-static-i18n": {
|
||||
"hashes": [
|
||||
"sha256:9a13987c1a1afdb2b9f532f7c1597c2b6e747b4015f4adc1ebd65843b8bf1378"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==0.46"
|
||||
},
|
||||
"packaging": {
|
||||
"hashes": [
|
||||
"sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb",
|
||||
"sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==21.3"
|
||||
},
|
||||
"pillow": {
|
||||
"hashes": [
|
||||
"sha256:0030fdbd926fb85844b8b92e2f9449ba89607231d3dd597a21ae72dc7fe26927",
|
||||
"sha256:030e3460861488e249731c3e7ab59b07c7853838ff3b8e16aac9561bb345da14",
|
||||
"sha256:0ed2c4ef2451de908c90436d6e8092e13a43992f1860275b4d8082667fbb2ffc",
|
||||
"sha256:136659638f61a251e8ed3b331fc6ccd124590eeff539de57c5f80ef3a9594e58",
|
||||
"sha256:13b725463f32df1bfeacbf3dd197fb358ae8ebcd8c5548faa75126ea425ccb60",
|
||||
"sha256:1536ad017a9f789430fb6b8be8bf99d2f214c76502becc196c6f2d9a75b01b76",
|
||||
"sha256:15928f824870535c85dbf949c09d6ae7d3d6ac2d6efec80f3227f73eefba741c",
|
||||
"sha256:17d4cafe22f050b46d983b71c707162d63d796a1235cdf8b9d7a112e97b15bac",
|
||||
"sha256:1802f34298f5ba11d55e5bb09c31997dc0c6aed919658dfdf0198a2fe75d5490",
|
||||
"sha256:1cc1d2451e8a3b4bfdb9caf745b58e6c7a77d2e469159b0d527a4554d73694d1",
|
||||
"sha256:1fd6f5e3c0e4697fa7eb45b6e93996299f3feee73a3175fa451f49a74d092b9f",
|
||||
"sha256:254164c57bab4b459f14c64e93df11eff5ded575192c294a0c49270f22c5d93d",
|
||||
"sha256:2ad0d4df0f5ef2247e27fc790d5c9b5a0af8ade9ba340db4a73bb1a4a3e5fb4f",
|
||||
"sha256:2c58b24e3a63efd22554c676d81b0e57f80e0a7d3a5874a7e14ce90ec40d3069",
|
||||
"sha256:2d33a11f601213dcd5718109c09a52c2a1c893e7461f0be2d6febc2879ec2402",
|
||||
"sha256:336b9036127eab855beec9662ac3ea13a4544a523ae273cbf108b228ecac8437",
|
||||
"sha256:337a74fd2f291c607d220c793a8135273c4c2ab001b03e601c36766005f36885",
|
||||
"sha256:37ff6b522a26d0538b753f0b4e8e164fdada12db6c6f00f62145d732d8a3152e",
|
||||
"sha256:3d1f14f5f691f55e1b47f824ca4fdcb4b19b4323fe43cc7bb105988cad7496be",
|
||||
"sha256:4134d3f1ba5f15027ff5c04296f13328fecd46921424084516bdb1b2548e66ff",
|
||||
"sha256:4ad2f835e0ad81d1689f1b7e3fbac7b01bb8777d5a985c8962bedee0cc6d43da",
|
||||
"sha256:50dff9cc21826d2977ef2d2a205504034e3a4563ca6f5db739b0d1026658e004",
|
||||
"sha256:510cef4a3f401c246cfd8227b300828715dd055463cdca6176c2e4036df8bd4f",
|
||||
"sha256:5aed7dde98403cd91d86a1115c78d8145c83078e864c1de1064f52e6feb61b20",
|
||||
"sha256:69bd1a15d7ba3694631e00df8de65a8cb031911ca11f44929c97fe05eb9b6c1d",
|
||||
"sha256:6bf088c1ce160f50ea40764f825ec9b72ed9da25346216b91361eef8ad1b8f8c",
|
||||
"sha256:6e8c66f70fb539301e064f6478d7453e820d8a2c631da948a23384865cd95544",
|
||||
"sha256:74a04183e6e64930b667d321524e3c5361094bb4af9083db5c301db64cd341f3",
|
||||
"sha256:75e636fd3e0fb872693f23ccb8a5ff2cd578801251f3a4f6854c6a5d437d3c04",
|
||||
"sha256:7761afe0126d046974a01e030ae7529ed0ca6a196de3ec6937c11df0df1bc91c",
|
||||
"sha256:7888310f6214f19ab2b6df90f3f06afa3df7ef7355fc025e78a3044737fab1f5",
|
||||
"sha256:7b0554af24df2bf96618dac71ddada02420f946be943b181108cac55a7a2dcd4",
|
||||
"sha256:7c7b502bc34f6e32ba022b4a209638f9e097d7a9098104ae420eb8186217ebbb",
|
||||
"sha256:808add66ea764ed97d44dda1ac4f2cfec4c1867d9efb16a33d158be79f32b8a4",
|
||||
"sha256:831e648102c82f152e14c1a0938689dbb22480c548c8d4b8b248b3e50967b88c",
|
||||
"sha256:93689632949aff41199090eff5474f3990b6823404e45d66a5d44304e9cdc467",
|
||||
"sha256:96b5e6874431df16aee0c1ba237574cb6dff1dcb173798faa6a9d8b399a05d0e",
|
||||
"sha256:9a54614049a18a2d6fe156e68e188da02a046a4a93cf24f373bffd977e943421",
|
||||
"sha256:a138441e95562b3c078746a22f8fca8ff1c22c014f856278bdbdd89ca36cff1b",
|
||||
"sha256:a647c0d4478b995c5e54615a2e5360ccedd2f85e70ab57fbe817ca613d5e63b8",
|
||||
"sha256:a9c9bc489f8ab30906d7a85afac4b4944a572a7432e00698a7239f44a44e6efb",
|
||||
"sha256:ad2277b185ebce47a63f4dc6302e30f05762b688f8dc3de55dbae4651872cdf3",
|
||||
"sha256:adabc0bce035467fb537ef3e5e74f2847c8af217ee0be0455d4fec8adc0462fc",
|
||||
"sha256:b6d5e92df2b77665e07ddb2e4dbd6d644b78e4c0d2e9272a852627cdba0d75cf",
|
||||
"sha256:bc431b065722a5ad1dfb4df354fb9333b7a582a5ee39a90e6ffff688d72f27a1",
|
||||
"sha256:bdd0de2d64688ecae88dd8935012c4a72681e5df632af903a1dca8c5e7aa871a",
|
||||
"sha256:c79698d4cd9318d9481d89a77e2d3fcaeff5486be641e60a4b49f3d2ecca4e28",
|
||||
"sha256:cb6259196a589123d755380b65127ddc60f4c64b21fc3bb46ce3a6ea663659b0",
|
||||
"sha256:d5b87da55a08acb586bad5c3aa3b86505f559b84f39035b233d5bf844b0834b1",
|
||||
"sha256:dcd7b9c7139dc8258d164b55696ecd16c04607f1cc33ba7af86613881ffe4ac8",
|
||||
"sha256:dfe4c1fedfde4e2fbc009d5ad420647f7730d719786388b7de0999bf32c0d9fd",
|
||||
"sha256:ea98f633d45f7e815db648fd7ff0f19e328302ac36427343e4432c84432e7ff4",
|
||||
"sha256:ec52c351b35ca269cb1f8069d610fc45c5bd38c3e91f9ab4cbbf0aebc136d9c8",
|
||||
"sha256:eef7592281f7c174d3d6cbfbb7ee5984a671fcd77e3fc78e973d492e9bf0eb3f",
|
||||
"sha256:f07f1f00e22b231dd3d9b9208692042e29792d6bd4f6639415d2f23158a80013",
|
||||
"sha256:f3fac744f9b540148fa7715a435d2283b71f68bfb6d4aae24482a890aed18b59",
|
||||
"sha256:fa768eff5f9f958270b081bb33581b4b569faabf8774726b283edb06617101dc",
|
||||
"sha256:fac2d65901fb0fdf20363fbd345c01958a742f2dc62a8dd4495af66e3ff502a4"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==9.2.0"
|
||||
},
|
||||
"pycparser": {
|
||||
"hashes": [
|
||||
"sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9",
|
||||
"sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"
|
||||
],
|
||||
"version": "==2.21"
|
||||
},
|
||||
"pygments": {
|
||||
"hashes": [
|
||||
"sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1",
|
||||
"sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.13.0"
|
||||
},
|
||||
"pymdown-extensions": {
|
||||
"hashes": [
|
||||
"sha256:3ef2d998c0d5fa7eb09291926d90d69391283561cf6306f85cd588a5eb5befa0",
|
||||
"sha256:ec141c0f4983755349f0c8710416348d1a13753976c028186ed14f190c8061c4"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==9.5"
|
||||
},
|
||||
"pyparsing": {
|
||||
"hashes": [
|
||||
"sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb",
|
||||
"sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"
|
||||
],
|
||||
"markers": "python_full_version >= '3.6.8'",
|
||||
"version": "==3.0.9"
|
||||
},
|
||||
"python-dateutil": {
|
||||
"hashes": [
|
||||
"sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86",
|
||||
"sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==2.8.2"
|
||||
},
|
||||
"pytz": {
|
||||
"hashes": [
|
||||
"sha256:220f481bdafa09c3955dfbdddb7b57780e9a94f5127e35456a48589b9e0c0197",
|
||||
"sha256:cea221417204f2d1a2aa03ddae3e867921971d0d76f14d87abb4414415bbdcf5"
|
||||
],
|
||||
"version": "==2022.2.1"
|
||||
},
|
||||
"pyyaml": {
|
||||
"hashes": [
|
||||
"sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293",
|
||||
"sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b",
|
||||
"sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57",
|
||||
"sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b",
|
||||
"sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4",
|
||||
"sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07",
|
||||
"sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba",
|
||||
"sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9",
|
||||
"sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287",
|
||||
"sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513",
|
||||
"sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0",
|
||||
"sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0",
|
||||
"sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92",
|
||||
"sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f",
|
||||
"sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2",
|
||||
"sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc",
|
||||
"sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c",
|
||||
"sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86",
|
||||
"sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4",
|
||||
"sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c",
|
||||
"sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34",
|
||||
"sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b",
|
||||
"sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c",
|
||||
"sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb",
|
||||
"sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737",
|
||||
"sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3",
|
||||
"sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d",
|
||||
"sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53",
|
||||
"sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78",
|
||||
"sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803",
|
||||
"sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a",
|
||||
"sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174",
|
||||
"sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==6.0"
|
||||
},
|
||||
"pyyaml-env-tag": {
|
||||
"hashes": [
|
||||
"sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb",
|
||||
"sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==0.1"
|
||||
},
|
||||
"regex": {
|
||||
"hashes": [
|
||||
"sha256:003a2e1449d425afc817b5f0b3d4c4aa9072dd5f3dfbf6c7631b8dc7b13233de",
|
||||
"sha256:0385d66e73cdd4462f3cc42c76a6576ddcc12472c30e02a2ae82061bff132c32",
|
||||
"sha256:0394265391a86e2bbaa7606e59ac71bd9f1edf8665a59e42771a9c9adbf6fd4f",
|
||||
"sha256:03ff695518482b946a6d3d4ce9cbbd99a21320e20d94913080aa3841f880abcd",
|
||||
"sha256:079c182f99c89524069b9cd96f5410d6af437e9dca576a7d59599a574972707e",
|
||||
"sha256:091efcfdd4178a7e19a23776dc2b1fafb4f57f4d94daf340f98335817056f874",
|
||||
"sha256:0b664a4d33ffc6be10996606dfc25fd3248c24cc589c0b139feb4c158053565e",
|
||||
"sha256:14216ea15efc13f28d0ef1c463d86d93ca7158a79cd4aec0f9273f6d4c6bb047",
|
||||
"sha256:14a7ab070fa3aec288076eed6ed828587b805ef83d37c9bfccc1a4a7cfbd8111",
|
||||
"sha256:14c71437ffb89479c89cc7022a5ea2075a842b728f37205e47c824cc17b30a42",
|
||||
"sha256:18e503b1e515a10282b3f14f1b3d856194ecece4250e850fad230842ed31227f",
|
||||
"sha256:19a4da6f513045f5ba00e491215bd00122e5bd131847586522463e5a6b2bd65f",
|
||||
"sha256:1a901ce5cd42658ab8f8eade51b71a6d26ad4b68c7cfc86b87efc577dfa95602",
|
||||
"sha256:26df88c9636a0c3f3bd9189dd435850a0c49d0b7d6e932500db3f99a6dd604d1",
|
||||
"sha256:2dda4b096a6f630d6531728a45bd12c67ec3badf44342046dc77d4897277d4f2",
|
||||
"sha256:322bd5572bed36a5b39952d88e072738926759422498a96df138d93384934ff8",
|
||||
"sha256:360ffbc9357794ae41336b681dff1c0463193199dfb91fcad3ec385ea4972f46",
|
||||
"sha256:37e5a26e76c46f54b3baf56a6fdd56df9db89758694516413757b7d127d4c57b",
|
||||
"sha256:3d64e1a7e6d98a4cdc8b29cb8d8ed38f73f49e55fbaa737bdb5933db99b9de22",
|
||||
"sha256:3f3b4594d564ed0b2f54463a9f328cf6a5b2a32610a90cdff778d6e3e561d08b",
|
||||
"sha256:4146cb7ae6029fc83b5c905ec6d806b7e5568dc14297c423e66b86294bad6c39",
|
||||
"sha256:4318f69b79f9f7d84a7420e97d4bfe872dc767c72f891d4fea5fa721c74685f7",
|
||||
"sha256:4cdbfa6d2befeaee0c899f19222e9b20fc5abbafe5e9c43a46ef819aeb7b75e5",
|
||||
"sha256:50e764ffbd08b06aa8c4e86b8b568b6722c75d301b33b259099f237c46b2134e",
|
||||
"sha256:518272f25da93e02af4f1e94985f5042cec21557ef3591027d0716f2adda5d0a",
|
||||
"sha256:592b9e2e1862168e71d9e612bfdc22c451261967dbd46681f14e76dfba7105fd",
|
||||
"sha256:59a786a55d00439d8fae4caaf71581f2aaef7297d04ee60345c3594efef5648a",
|
||||
"sha256:59bac44b5a07b08a261537f652c26993af9b1bbe2a29624473968dd42fc29d56",
|
||||
"sha256:5d0dd8b06896423211ce18fba0c75dacc49182a1d6514c004b535be7163dca0f",
|
||||
"sha256:67a4c625361db04ae40ef7c49d3cbe2c1f5ff10b5a4491327ab20f19f2fb5d40",
|
||||
"sha256:6adfe300848d61a470ec7547adc97b0ccf86de86a99e6830f1d8c8d19ecaf6b3",
|
||||
"sha256:6b32b45433df1fad7fed738fe15200b6516da888e0bd1fdd6aa5e50cc16b76bc",
|
||||
"sha256:6c57d50d4d5eb0c862569ca3c840eba2a73412f31d9ecc46ef0d6b2e621a592b",
|
||||
"sha256:6d43bd402b27e0e7eae85c612725ba1ce7798f20f6fab4e8bc3de4f263294f03",
|
||||
"sha256:6e521d9db006c5e4a0f8acfef738399f72b704913d4e083516774eb51645ad7c",
|
||||
"sha256:6fe1dd1021e0f8f3f454ce2811f1b0b148f2d25bb38c712fec00316551e93650",
|
||||
"sha256:73b985c9fc09a7896846e26d7b6f4d1fd5a20437055f4ef985d44729f9f928d0",
|
||||
"sha256:7681c49da1a2d4b905b4f53d86c9ba4506e79fba50c4a664d9516056e0f7dfcc",
|
||||
"sha256:77c2879d3ba51e5ca6c2b47f2dcf3d04a976a623a8fc8236010a16c9e0b0a3c7",
|
||||
"sha256:7b0c5cc3d1744a67c3b433dce91e5ef7c527d612354c1f1e8576d9e86bc5c5e2",
|
||||
"sha256:7fcf7f94ccad19186820ac67e2ec7e09e0ac2dac39689f11cf71eac580503296",
|
||||
"sha256:83cc32a1a2fa5bac00f4abc0e6ce142e3c05d3a6d57e23bd0f187c59b4e1e43b",
|
||||
"sha256:8418ee2cb857b83881b8f981e4c636bc50a0587b12d98cb9b947408a3c484fe7",
|
||||
"sha256:86df2049b18745f3cd4b0f4c4ef672bfac4b80ca488e6ecfd2bbfe68d2423a2c",
|
||||
"sha256:880dbeb6bdde7d926b4d8e41410b16ffcd4cb3b4c6d926280fea46e2615c7a01",
|
||||
"sha256:8aba0d01e3dfd335f2cb107079b07fdddb4cd7fb2d8c8a1986f9cb8ce9246c24",
|
||||
"sha256:8dcbcc9e72a791f622a32d17ff5011326a18996647509cac0609a7fc43adc229",
|
||||
"sha256:944567bb08f52268d8600ee5bdf1798b2b62ea002cc692a39cec113244cbdd0d",
|
||||
"sha256:995e70bb8c91d1b99ed2aaf8ec44863e06ad1dfbb45d7df95f76ef583ec323a9",
|
||||
"sha256:99945ddb4f379bb9831c05e9f80f02f079ba361a0fb1fba1fc3b267639b6bb2e",
|
||||
"sha256:9a165a05979e212b2c2d56a9f40b69c811c98a788964e669eb322de0a3e420b4",
|
||||
"sha256:9bc8edc5f8ef0ebb46f3fa0d02bd825bbe9cc63d59e428ffb6981ff9672f6de1",
|
||||
"sha256:a1aec4ae549fd7b3f52ceaf67e133010e2fba1538bf4d5fc5cd162a5e058d5df",
|
||||
"sha256:a1c4d17879dd4c4432c08a1ca1ab379f12ab54af569e945b6fc1c4cf6a74ca45",
|
||||
"sha256:a2b39ee3b280e15824298b97cec3f7cbbe6539d8282cc8a6047a455b9a72c598",
|
||||
"sha256:a2effeaf50a6838f3dd4d3c5d265f06eabc748f476e8441892645ae3a697e273",
|
||||
"sha256:a59d0377e58d96a6f11636e97992f5b51b7e1e89eb66332d1c01b35adbabfe8a",
|
||||
"sha256:a926339356fe29595f8e37af71db37cd87ff764e15da8ad5129bbaff35bcc5a6",
|
||||
"sha256:a9eb9558e1d0f78e07082d8a70d5c4d631c8dd75575fae92105df9e19c736730",
|
||||
"sha256:ab07934725e6f25c6f87465976cc69aef1141e86987af49d8c839c3ffd367c72",
|
||||
"sha256:ad75173349ad79f9d21e0d0896b27dcb37bfd233b09047bc0b4d226699cf5c87",
|
||||
"sha256:b7b701dbc124558fd2b1b08005eeca6c9160e209108fbcbd00091fcfac641ac7",
|
||||
"sha256:b7bee775ff05c9d519195bd9e8aaaccfe3971db60f89f89751ee0f234e8aeac5",
|
||||
"sha256:b86548b8234b2be3985dbc0b385e35f5038f0f3e6251464b827b83ebf4ed90e5",
|
||||
"sha256:b9d68eb704b24bc4d441b24e4a12653acd07d2c39940548761e0985a08bc1fff",
|
||||
"sha256:c0b7cb9598795b01f9a3dd3f770ab540889259def28a3bf9b2fa24d52edecba3",
|
||||
"sha256:cab548d6d972e1de584161487b2ac1aa82edd8430d1bde69587ba61698ad1cfb",
|
||||
"sha256:ce331b076b2b013e7d7f07157f957974ef0b0881a808e8a4a4b3b5105aee5d04",
|
||||
"sha256:cfa4c956ff0a977c4823cb3b930b0a4e82543b060733628fec7ab3eb9b1abe37",
|
||||
"sha256:d23ac6b4bf9e32fcde5fcdb2e1fd5e7370d6693fcac51ee1d340f0e886f50d1f",
|
||||
"sha256:d2885ec6eea629c648ecc9bde0837ec6b92208b7f36381689937fe5d64a517e8",
|
||||
"sha256:d2a1371dc73e921f3c2e087c05359050f3525a9a34b476ebc8130e71bec55e97",
|
||||
"sha256:d3102ab9bf16bf541ca228012d45d88d2a567c9682a805ae2c145a79d3141fdd",
|
||||
"sha256:d5b003d248e6f292475cd24b04e5f72c48412231961a675edcb653c70730e79e",
|
||||
"sha256:d5edd3eb877c9fc2e385173d4a4e1d792bf692d79e25c1ca391802d36ecfaa01",
|
||||
"sha256:d7430f041755801b712ec804aaf3b094b9b5facbaa93a6339812a8e00d7bd53a",
|
||||
"sha256:d837ccf3bd2474feabee96cd71144e991472e400ed26582edc8ca88ce259899c",
|
||||
"sha256:dab81cc4d58026861445230cfba27f9825e9223557926e7ec22156a1a140d55c",
|
||||
"sha256:db45016364eec9ddbb5af93c8740c5c92eb7f5fc8848d1ae04205a40a1a2efc6",
|
||||
"sha256:df8fe00b60e4717662c7f80c810ba66dcc77309183c76b7754c0dff6f1d42054",
|
||||
"sha256:e6e6e61e9a38b6cc60ca3e19caabc90261f070f23352e66307b3d21a24a34aaf",
|
||||
"sha256:ee7045623a5ace70f3765e452528b4c1f2ce669ed31959c63f54de64fe2f6ff7",
|
||||
"sha256:f06cc1190f3db3192ab8949e28f2c627e1809487e2cfc435b6524c1ce6a2f391",
|
||||
"sha256:f07373b6e56a6f3a0df3d75b651a278ca7bd357a796078a26a958ea1ce0588fd",
|
||||
"sha256:f6e0321921d2fdc082ef90c1fd0870f129c2e691bfdc4937dcb5cd308aba95c4",
|
||||
"sha256:f6e167d1ccd41d27b7b6655bb7a2dcb1b1eb1e0d2d662043470bd3b4315d8b2b",
|
||||
"sha256:fcbd1edff1473d90dc5cf4b52d355cf1f47b74eb7c85ba6e45f45d0116b8edbd",
|
||||
"sha256:fe428822b7a8c486bcd90b334e9ab541ce6cc0d6106993d59f201853e5e14121"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2022.9.13"
|
||||
},
|
||||
"requests": {
|
||||
"hashes": [
|
||||
"sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983",
|
||||
"sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"
|
||||
],
|
||||
"markers": "python_version >= '3.7' and python_version < '4'",
|
||||
"version": "==2.28.1"
|
||||
},
|
||||
"six": {
|
||||
"hashes": [
|
||||
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
|
||||
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.16.0"
|
||||
},
|
||||
"smmap": {
|
||||
"hashes": [
|
||||
"sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94",
|
||||
"sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==5.0.0"
|
||||
},
|
||||
"soupsieve": {
|
||||
"hashes": [
|
||||
"sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759",
|
||||
"sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.3.2.post1"
|
||||
},
|
||||
"termcolor": {
|
||||
"hashes": [
|
||||
"sha256:6b2cf769e93364a2676e1de56a7c0cff2cf5bd07f37e9cc80b0dd6320ebfe388",
|
||||
"sha256:7e597f9de8e001a3208c4132938597413b9da45382b6f1d150cff8d062b7aaa3"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==2.0.1"
|
||||
},
|
||||
"tinycss2": {
|
||||
"hashes": [
|
||||
"sha256:b2e44dd8883c360c35dd0d1b5aad0b610e5156c2cb3b33434634e539ead9d8bf",
|
||||
"sha256:fe794ceaadfe3cf3e686b22155d0da5780dd0e273471a51846d0a02bc204fec8"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==1.1.1"
|
||||
},
|
||||
"typing-extensions": {
|
||||
"hashes": [
|
||||
"sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02",
|
||||
"sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==4.3.0"
|
||||
},
|
||||
"urllib3": {
|
||||
"hashes": [
|
||||
"sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e",
|
||||
"sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4'",
|
||||
"version": "==1.26.12"
|
||||
},
|
||||
"watchdog": {
|
||||
"hashes": [
|
||||
"sha256:083171652584e1b8829581f965b9b7723ca5f9a2cd7e20271edf264cfd7c1412",
|
||||
"sha256:117ffc6ec261639a0209a3252546b12800670d4bf5f84fbd355957a0595fe654",
|
||||
"sha256:186f6c55abc5e03872ae14c2f294a153ec7292f807af99f57611acc8caa75306",
|
||||
"sha256:195fc70c6e41237362ba720e9aaf394f8178bfc7fa68207f112d108edef1af33",
|
||||
"sha256:226b3c6c468ce72051a4c15a4cc2ef317c32590d82ba0b330403cafd98a62cfd",
|
||||
"sha256:247dcf1df956daa24828bfea5a138d0e7a7c98b1a47cf1fa5b0c3c16241fcbb7",
|
||||
"sha256:255bb5758f7e89b1a13c05a5bceccec2219f8995a3a4c4d6968fe1de6a3b2892",
|
||||
"sha256:43ce20ebb36a51f21fa376f76d1d4692452b2527ccd601950d69ed36b9e21609",
|
||||
"sha256:4f4e1c4aa54fb86316a62a87b3378c025e228178d55481d30d857c6c438897d6",
|
||||
"sha256:5952135968519e2447a01875a6f5fc8c03190b24d14ee52b0f4b1682259520b1",
|
||||
"sha256:64a27aed691408a6abd83394b38503e8176f69031ca25d64131d8d640a307591",
|
||||
"sha256:6b17d302850c8d412784d9246cfe8d7e3af6bcd45f958abb2d08a6f8bedf695d",
|
||||
"sha256:70af927aa1613ded6a68089a9262a009fbdf819f46d09c1a908d4b36e1ba2b2d",
|
||||
"sha256:7a833211f49143c3d336729b0020ffd1274078e94b0ae42e22f596999f50279c",
|
||||
"sha256:8250546a98388cbc00c3ee3cc5cf96799b5a595270dfcfa855491a64b86ef8c3",
|
||||
"sha256:97f9752208f5154e9e7b76acc8c4f5a58801b338de2af14e7e181ee3b28a5d39",
|
||||
"sha256:9f05a5f7c12452f6a27203f76779ae3f46fa30f1dd833037ea8cbc2887c60213",
|
||||
"sha256:a735a990a1095f75ca4f36ea2ef2752c99e6ee997c46b0de507ba40a09bf7330",
|
||||
"sha256:ad576a565260d8f99d97f2e64b0f97a48228317095908568a9d5c786c829d428",
|
||||
"sha256:b530ae007a5f5d50b7fbba96634c7ee21abec70dc3e7f0233339c81943848dc1",
|
||||
"sha256:bfc4d351e6348d6ec51df007432e6fe80adb53fd41183716017026af03427846",
|
||||
"sha256:d3dda00aca282b26194bdd0adec21e4c21e916956d972369359ba63ade616153",
|
||||
"sha256:d9820fe47c20c13e3c9dd544d3706a2a26c02b2b43c993b62fcd8011bcc0adb3",
|
||||
"sha256:ed80a1628cee19f5cfc6bb74e173f1b4189eb532e705e2a13e3250312a62e0c9",
|
||||
"sha256:ee3e38a6cc050a8830089f79cbec8a3878ec2fe5160cdb2dc8ccb6def8552658"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.1.9"
|
||||
},
|
||||
"webencodings": {
|
||||
"hashes": [
|
||||
"sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78",
|
||||
"sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"
|
||||
],
|
||||
"version": "==0.5.1"
|
||||
},
|
||||
"zipp": {
|
||||
"hashes": [
|
||||
"sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2",
|
||||
"sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==3.8.1"
|
||||
}
|
||||
},
|
||||
"develop": {
|
||||
"scour": {
|
||||
"hashes": [
|
||||
"sha256:6881ec26660c130c5ecd996ac6f6b03939dd574198f50773f2508b81a68e0daf"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==0.38.2"
|
||||
},
|
||||
"six": {
|
||||
"hashes": [
|
||||
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
|
||||
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.16.0"
|
||||
}
|
||||
}
|
||||
}
|
104
README.md
104
README.md
@ -1,20 +1,20 @@
|
||||
<!-- markdownlint-disable MD041 -->
|
||||
<div align="center">
|
||||
<a href="https://privacyguides.org">
|
||||
<img src="/assets/img/layout/privacy-guides-logo.svg" width="500px" alt="Privacy Guides" />
|
||||
<a href="https://www.privacyguides.org/">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/privacyguides/brand/main/SVG/Logo/privacy-guides-logo-dark.svg">
|
||||
<img alt="Privacy Guides" width="500px" src="https://raw.githubusercontent.com/privacyguides/brand/main/SVG/Logo/privacy-guides-logo.svg">
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
<p><em>Your central privacy and security resource to protect yourself online.</em></p>
|
||||
|
||||
<p><a href="https://www.privacyguides.org">
|
||||
<img src="https://img.shields.io/uptimerobot/status/m786935055-1117e0819f5c23c651d46a17?label=website%20status">
|
||||
</a>
|
||||
<a href="https://opencollective.com/privacyguides">
|
||||
<img src="https://img.shields.io/opencollective/all/privacyguides">
|
||||
</a></p>
|
||||
|
||||
<p><a href="https://www.reddit.com/r/PrivacyGuides/">
|
||||
<img src="https://img.shields.io/reddit/subreddit-subscribers/PrivacyGuides?label=Subscribe%20to%20r%2FPrivacyGuides&style=social">
|
||||
</a>
|
||||
<a href="https://mastodon.social/@privacyguides">
|
||||
<img src="https://img.shields.io/mastodon/follow/107604420394178246?style=social">
|
||||
</a>
|
||||
<a href="https://twitter.com/privacy_guides">
|
||||
<img src="https://img.shields.io/twitter/follow/privacy_guides?style=social">
|
||||
</a>
|
||||
@ -22,9 +22,6 @@
|
||||
<img src="https://img.shields.io/github/stars/privacyguides?style=social">
|
||||
</a></p>
|
||||
|
||||
<p><a href="https://app.netlify.com/sites/privacyguides/deploys">
|
||||
<img src="https://img.shields.io/netlify/f40bcb64-a6ed-4650-9ca6-7d3ac293d2be">
|
||||
</a>
|
||||
<a href="https://github.com/privacyguides/privacyguides.org/issues">
|
||||
<img src="https://img.shields.io/github/issues-raw/privacyguides/privacyguides.org">
|
||||
</a>
|
||||
@ -37,24 +34,75 @@
|
||||
<a href="https://github.com/privacyguides/privacyguides.org/pulls?q=is%3Apr+is%3Aclosed">
|
||||
<img src="https://img.shields.io/github/issues-pr-closed-raw/privacyguides/privacyguides.org">
|
||||
</a>
|
||||
<a href="https://github.com/privacytools/privacytools.io/issues">
|
||||
<img src="https://img.shields.io/github/issues/privacytools/privacytools.io?color=black&label=upstream%20issues">
|
||||
<a href="https://opencollective.com/privacyguides">
|
||||
<img src="https://img.shields.io/opencollective/all/privacyguides">
|
||||
</a>
|
||||
<a href="https://crowdin.com/project/privacyguides">
|
||||
<img src="https://badges.crowdin.net/privacyguides/localized.svg">
|
||||
</a></p>
|
||||
</div>
|
||||
|
||||
## About
|
||||
|
||||
**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](https://github.com/orgs/privacyguides/people). Additionally, [many people](https://github.com/privacyguides/privacyguides.org/graphs/contributors) have made contributions to the project, and you can too!
|
||||
|
||||
## Contributing
|
||||
|
||||
- 💬 [Start a discussion or suggest an idea](https://github.com/privacyguides/privacyguides.org/discussions)
|
||||
- 💖 [Sponsor the project](https://github.com/sponsors/privacyguides)
|
||||
- 🈴 [Help translate the site](https://crwd.in/privacyguides) [[Matrix chat](https://matrix.to/#/#pg-i18n:aragon.sh)]
|
||||
- 📝 Edit the site, everything's accessible in this repo
|
||||
- Browse our [open issues](https://github.com/privacyguides/privacyguides.org/issues) to see what needs to be updated
|
||||
- View some contribution tips on our [contributor's wiki](https://github.com/privacyguides/privacyguides.org/wiki)
|
||||
|
||||
## Mirrors
|
||||
|
||||
[](https://github.com/privacyguides/privacyguides.org)
|
||||
[](https://code.privacyguides.dev/privacyguides/privacyguides.org)
|
||||
[](https://gitlab.com/privacyguides/privacyguides.org)
|
||||
[](https://codeberg.org/privacyguides/privacyguides.org)
|
||||
[](https://git.sr.ht/~jonaharagon/privacyguides.org)
|
||||
|
||||
## Developing
|
||||
|
||||
1. Install the version of [Ruby](https://www.ruby-lang.org/en/downloads/) currently specified by [`.ruby-version`](.ruby-version)
|
||||
* With [rbenv](https://github.com/rbenv/rbenv) (**recommended!**): `rbenv install`
|
||||
* With [RVM](https://rvm.io): `rvm install "ruby-$(cat .ruby-version)"`
|
||||
* [Manually](https://www.ruby-lang.org/en/downloads/)
|
||||
1. Install node.js and npm
|
||||
1. Install [Bundler](https://bundler.io/) v2.2.5:
|
||||
* `gem install bundler:2.2.5`
|
||||
1. Install the required dependencies:
|
||||
* `bundle install`
|
||||
* `npm install`
|
||||
1. Build the website (the output can be found in the `_site` directory):
|
||||
* `npm run build`
|
||||
1. Serve the website locally with live reloading:
|
||||
* `npm run serve`
|
||||
Committing to this repository requires [signing your commits](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-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](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification#ssh-commit-signature-verification), but GPG signing is also acceptable. You should add your signing key to your GitHub profile.
|
||||
|
||||
This website uses [`mkdocs-material-insiders`](https://squidfunk.github.io/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 https://github.com/privacyguides/privacyguides.org.git` (then `cd privacyguides.org`)
|
||||
- `git submodule init`
|
||||
- `git submodule update docs/assets/brand`
|
||||
- `git config gpg.ssh.allowedSignersFile .allowed_signers`
|
||||
2. Install [Python 3.6+](https://www.python.org/downloads/) (currently only tested with 3.10)
|
||||
3. Install [dependencies](/Pipfile): `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 https://github.com/privacyguides/privacyguides.org.git`
|
||||
2. Enable SSH commit verification with our local [`.allowed_signers`](/.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](https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#dependencies) 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`](/.allowed_signers) in this repo.
|
||||
|
||||
## Releasing
|
||||
|
||||
1. Create a new tag: `git tag -s v2.X.X -m 'Some message'`
|
||||
- [View existing tags](https://github.com/privacyguides/privacyguides.org/tags)
|
||||
- Tag [numbering](https://semver.org/): 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.
|
||||
|
36
_config.yml
36
_config.yml
@ -1,36 +0,0 @@
|
||||
title: Privacy Guides
|
||||
email: jonah@privacyguides.org
|
||||
description: >- # this means to ignore newlines until "baseurl:"
|
||||
Massive organizations are monitoring your online activities.
|
||||
Privacy Guides is your central privacy and security resource to protect yourself online.
|
||||
baseurl: "" # the subpath of your site, e.g. /blog
|
||||
url: "https://www.privacyguides.org" # the base hostname & protocol for your site, e.g. http://example.com
|
||||
sass:
|
||||
sass_dir: _sass
|
||||
permalink: pretty
|
||||
excerpt_separator: <!--more-->
|
||||
collections_dir: collections
|
||||
collections:
|
||||
evergreen:
|
||||
output: true
|
||||
permalink: /:slug/
|
||||
pages:
|
||||
output: true
|
||||
permalink: /:path/
|
||||
posts:
|
||||
permalink: /blog/:year/:month/:day/:title/
|
||||
people:
|
||||
permalink: /blog/authors/:path/
|
||||
|
||||
build:
|
||||
date:
|
||||
time:
|
||||
|
||||
kramdown:
|
||||
auto_ids: true
|
||||
|
||||
# Build settings
|
||||
plugins:
|
||||
- jekyll-brotli
|
||||
- jekyll-sitemap
|
||||
exclude: [privacytools.io/]
|
@ -1,249 +0,0 @@
|
||||
AF: Afghanistan
|
||||
AX: 'Åland Islands'
|
||||
AL: Albania
|
||||
DZ: Algeria
|
||||
AS: 'American Samoa'
|
||||
AD: Andorra
|
||||
AO: Angola
|
||||
AI: Anguilla
|
||||
AQ: Antarctica
|
||||
AG: 'Antigua & Barbuda'
|
||||
AR: Argentina
|
||||
AM: Armenia
|
||||
AW: Aruba
|
||||
AU: Australia
|
||||
AT: Austria
|
||||
AZ: Azerbaijan
|
||||
BS: Bahamas
|
||||
BH: Bahrain
|
||||
BD: Bangladesh
|
||||
BB: Barbados
|
||||
BY: Belarus
|
||||
BE: Belgium
|
||||
BZ: Belize
|
||||
BJ: Benin
|
||||
BM: Bermuda
|
||||
BT: Bhutan
|
||||
BO: Bolivia
|
||||
BA: 'Bosnia & Herzegovina'
|
||||
BW: Botswana
|
||||
BV: 'Bouvet Island'
|
||||
BR: Brazil
|
||||
IO: 'British Indian Ocean Territory'
|
||||
VG: 'British Virgin Islands'
|
||||
BN: Brunei
|
||||
BG: Bulgaria
|
||||
BF: 'Burkina Faso'
|
||||
BI: Burundi
|
||||
KH: Cambodia
|
||||
CM: Cameroon
|
||||
CA: Canada
|
||||
CV: 'Cape Verde'
|
||||
BQ: 'Caribbean Netherlands'
|
||||
KY: 'Cayman Islands'
|
||||
CF: 'Central African Republic'
|
||||
TD: Chad
|
||||
CL: Chile
|
||||
CN: China
|
||||
CX: 'Christmas Island'
|
||||
CC: 'Cocos (Keeling) Islands'
|
||||
CO: Colombia
|
||||
KM: Comoros
|
||||
CG: 'Congo - Brazzaville'
|
||||
CD: 'Congo - Kinshasa'
|
||||
CK: 'Cook Islands'
|
||||
CR: 'Costa Rica'
|
||||
CI: 'Côte d’Ivoire'
|
||||
HR: Croatia
|
||||
CU: Cuba
|
||||
CW: Curaçao
|
||||
CY: Cyprus
|
||||
CZ: Czechia
|
||||
DK: Denmark
|
||||
DJ: Djibouti
|
||||
DM: Dominica
|
||||
DO: 'Dominican Republic'
|
||||
EC: Ecuador
|
||||
EG: Egypt
|
||||
SV: 'El Salvador'
|
||||
GQ: 'Equatorial Guinea'
|
||||
ER: Eritrea
|
||||
EE: Estonia
|
||||
SZ: Eswatini
|
||||
ET: Ethiopia
|
||||
FK: 'Falkland Islands'
|
||||
FO: 'Faroe Islands'
|
||||
FJ: Fiji
|
||||
FI: Finland
|
||||
FR: France
|
||||
GF: 'French Guiana'
|
||||
PF: 'French Polynesia'
|
||||
TF: 'French Southern Territories'
|
||||
GA: Gabon
|
||||
GM: Gambia
|
||||
GE: Georgia
|
||||
DE: Germany
|
||||
GH: Ghana
|
||||
GI: Gibraltar
|
||||
GR: Greece
|
||||
GL: Greenland
|
||||
GD: Grenada
|
||||
GP: Guadeloupe
|
||||
GU: Guam
|
||||
GT: Guatemala
|
||||
GG: Guernsey
|
||||
GN: Guinea
|
||||
GW: Guinea-Bissau
|
||||
GY: Guyana
|
||||
HT: Haiti
|
||||
HM: 'Heard & McDonald Islands'
|
||||
HN: Honduras
|
||||
HK: 'Hong Kong SAR China'
|
||||
HU: Hungary
|
||||
IS: Iceland
|
||||
IN: India
|
||||
ID: Indonesia
|
||||
IR: Iran
|
||||
IQ: Iraq
|
||||
IE: Ireland
|
||||
IM: 'Isle of Man'
|
||||
IL: Israel
|
||||
IT: Italy
|
||||
JM: Jamaica
|
||||
JP: Japan
|
||||
JE: Jersey
|
||||
JO: Jordan
|
||||
KZ: Kazakhstan
|
||||
KE: Kenya
|
||||
KI: Kiribati
|
||||
KW: Kuwait
|
||||
KG: Kyrgyzstan
|
||||
LA: Laos
|
||||
LV: Latvia
|
||||
LB: Lebanon
|
||||
LS: Lesotho
|
||||
LR: Liberia
|
||||
LY: Libya
|
||||
LI: Liechtenstein
|
||||
LT: Lithuania
|
||||
LU: Luxembourg
|
||||
MO: 'Macao SAR China'
|
||||
MG: Madagascar
|
||||
MW: Malawi
|
||||
MY: Malaysia
|
||||
MV: Maldives
|
||||
ML: Mali
|
||||
MT: Malta
|
||||
MH: 'Marshall Islands'
|
||||
MQ: Martinique
|
||||
MR: Mauritania
|
||||
MU: Mauritius
|
||||
YT: Mayotte
|
||||
MX: Mexico
|
||||
FM: Micronesia
|
||||
MD: Moldova
|
||||
MC: Monaco
|
||||
MN: Mongolia
|
||||
ME: Montenegro
|
||||
MS: Montserrat
|
||||
MA: Morocco
|
||||
MZ: Mozambique
|
||||
MM: 'Myanmar (Burma)'
|
||||
NA: Namibia
|
||||
NR: Nauru
|
||||
NP: Nepal
|
||||
NL: Netherlands
|
||||
NC: 'New Caledonia'
|
||||
NZ: 'New Zealand'
|
||||
NI: Nicaragua
|
||||
NE: Niger
|
||||
NG: Nigeria
|
||||
NU: Niue
|
||||
NF: 'Norfolk Island'
|
||||
KP: 'North Korea'
|
||||
MK: 'North Macedonia'
|
||||
MP: 'Northern Mariana Islands'
|
||||
'NO': Norway
|
||||
OM: Oman
|
||||
PK: Pakistan
|
||||
PW: Palau
|
||||
PS: 'Palestinian Territories'
|
||||
PA: Panama
|
||||
PG: 'Papua New Guinea'
|
||||
PY: Paraguay
|
||||
PE: Peru
|
||||
PH: Philippines
|
||||
PN: 'Pitcairn Islands'
|
||||
PL: Poland
|
||||
PT: Portugal
|
||||
PR: 'Puerto Rico'
|
||||
QA: Qatar
|
||||
RE: Réunion
|
||||
RO: Romania
|
||||
RU: Russia
|
||||
RW: Rwanda
|
||||
WS: Samoa
|
||||
SM: 'San Marino'
|
||||
ST: 'São Tomé & Príncipe'
|
||||
SA: 'Saudi Arabia'
|
||||
SN: Senegal
|
||||
RS: Serbia
|
||||
SC: Seychelles
|
||||
SL: 'Sierra Leone'
|
||||
SG: Singapore
|
||||
SX: 'Sint Maarten'
|
||||
SK: Slovakia
|
||||
SI: Slovenia
|
||||
SB: 'Solomon Islands'
|
||||
SO: Somalia
|
||||
ZA: 'South Africa'
|
||||
GS: 'South Georgia & South Sandwich Islands'
|
||||
KR: 'South Korea'
|
||||
SS: 'South Sudan'
|
||||
ES: Spain
|
||||
LK: 'Sri Lanka'
|
||||
BL: 'St. Barthélemy'
|
||||
SH: 'St. Helena'
|
||||
KN: 'St. Kitts & Nevis'
|
||||
LC: 'St. Lucia'
|
||||
MF: 'St. Martin'
|
||||
PM: 'St. Pierre & Miquelon'
|
||||
VC: 'St. Vincent & Grenadines'
|
||||
SD: Sudan
|
||||
SR: Suriname
|
||||
SJ: 'Svalbard & Jan Mayen'
|
||||
SE: Sweden
|
||||
CH: Switzerland
|
||||
SY: Syria
|
||||
TW: Taiwan
|
||||
TJ: Tajikistan
|
||||
TZ: Tanzania
|
||||
TH: Thailand
|
||||
TL: Timor-Leste
|
||||
TG: Togo
|
||||
TK: Tokelau
|
||||
TO: Tonga
|
||||
TT: 'Trinidad & Tobago'
|
||||
TN: Tunisia
|
||||
TR: Turkey
|
||||
TM: Turkmenistan
|
||||
TC: 'Turks & Caicos Islands'
|
||||
TV: Tuvalu
|
||||
UM: 'U.S. Outlying Islands'
|
||||
VI: 'U.S. Virgin Islands'
|
||||
UG: Uganda
|
||||
UA: Ukraine
|
||||
AE: 'United Arab Emirates'
|
||||
GB: 'United Kingdom'
|
||||
US: 'United States'
|
||||
UY: Uruguay
|
||||
UZ: Uzbekistan
|
||||
VU: Vanuatu
|
||||
VA: 'Vatican City'
|
||||
VE: Venezuela
|
||||
VN: Vietnam
|
||||
WF: 'Wallis & Futuna'
|
||||
EH: 'Western Sahara'
|
||||
YE: Yemen
|
||||
ZM: Zambia
|
||||
ZW: Zimbabwe
|
@ -1,23 +0,0 @@
|
||||
title: AdGuard
|
||||
homepage: 'https://adguard.com/en/adguard-dns/overview.html'
|
||||
source: 'https://github.com/AdguardTeam/AdGuardDNS/'
|
||||
privacy_policy:
|
||||
link: 'https://adguard.com/en/privacy/dns.html'
|
||||
type:
|
||||
name: Commercial
|
||||
logs:
|
||||
policy: true
|
||||
text: Some
|
||||
link: 'https://adguard.com/en/privacy/dns.html'
|
||||
tooltip: >-
|
||||
We store aggregated performance metrics of our DNS server, namely the number of complete requests to a particular server, the number of blocked requests, the speed of processing requests.
|
||||
We keep and store the database of domains requested in the last 24 hours. We need this information to identify and block new trackers and threats.
|
||||
We also log how many times this or that tracker has been blocked. We need this information to remove outdated rules from our filters.
|
||||
protocols:
|
||||
- name: Cleartext
|
||||
- name: DoH
|
||||
- name: DoT
|
||||
- name: DNSCrypt
|
||||
ecs:
|
||||
status: false
|
||||
filtering: Based on server choice. Filter list being used can be found here.
|
@ -1,21 +0,0 @@
|
||||
title: Cloudflare
|
||||
homepage: 'https://developers.cloudflare.com/1.1.1.1/setting-up-1.1.1.1/'
|
||||
privacy_policy:
|
||||
link: 'https://www.cloudflare.com/privacypolicy/'
|
||||
type:
|
||||
name: Commercial
|
||||
logs:
|
||||
policy: true
|
||||
text: Some
|
||||
link: 'https://developers.cloudflare.com/1.1.1.1/privacy/public-dns-resolver/'
|
||||
tooltip: >-
|
||||
"Cloudflare collects and stores only the limited DNS query data that is sent to the 1.1.1.1 resolver.
|
||||
The 1.1.1.1 resolver service does not log personal data,
|
||||
and the bulk of the limited non-personally identifiable query data is only stored for 25 hours."
|
||||
protocols:
|
||||
- name: Cleartext
|
||||
- name: DoH
|
||||
- name: DoT
|
||||
ecs:
|
||||
status: false
|
||||
filtering: Based on server choice.
|
@ -1,19 +0,0 @@
|
||||
title: ControlD
|
||||
homepage: 'https://controld.com/'
|
||||
privacy_policy:
|
||||
link: 'https://controld.com/privacy'
|
||||
type:
|
||||
name: Commercial
|
||||
logs:
|
||||
policy: true
|
||||
text: Optional
|
||||
tooltip: >-
|
||||
Neither free nor premium service have logging enabled by default. Premium users can enable logging/analytics at will.
|
||||
color: info
|
||||
protocols:
|
||||
- name: Cleartext
|
||||
- name: DoH
|
||||
- name: DoT
|
||||
ecs:
|
||||
status: false
|
||||
filtering: Based on server choice
|
@ -1,17 +0,0 @@
|
||||
title: MullvadDNS
|
||||
homepage: 'https://mullvad.net/en/help/dns-over-https-and-dns-over-tls/'
|
||||
source: 'https://github.com/mullvad/dns-adblock'
|
||||
privacy_policy:
|
||||
link: 'https://mullvad.net/en/help/privacy-policy/'
|
||||
tooltip: >-
|
||||
"Our public DNS service offers DNS over HTTPS (DoH) and DNS over TLS (DoT), with QNAME minimization and basic ad blocking. It has been audited by the security experts at Assured. You can use this privacy-enhancing service even if you don't use Mullvad."
|
||||
type:
|
||||
name: Commercial
|
||||
logs:
|
||||
policy: false
|
||||
protocols:
|
||||
- name: DoH
|
||||
- name: DoT
|
||||
ecs:
|
||||
status: false
|
||||
filtering: Based on server choice. Filter list being used can be found here.
|
@ -1,22 +0,0 @@
|
||||
title: NextDNS
|
||||
homepage: 'https://www.nextdns.io/'
|
||||
privacy_policy:
|
||||
link: 'https://www.nextdns.io/privacy'
|
||||
type:
|
||||
name: Commercial
|
||||
logs:
|
||||
policy: true
|
||||
text: Optional
|
||||
tooltip: >-
|
||||
NextDNS can provide insights and logging features on an opt-in basis.
|
||||
Users can choose retention times and log storage locations for any logs they choose to keep.
|
||||
color: info
|
||||
protocols:
|
||||
- name: Cleartext
|
||||
- name: DoH
|
||||
- name: DoT
|
||||
- name: DNSCrypt
|
||||
ecs:
|
||||
status: true
|
||||
text: Optional
|
||||
filtering: Based on server choice
|
@ -1,17 +0,0 @@
|
||||
title: Quad9
|
||||
homepage: 'https://quad9.net/'
|
||||
privacy_policy:
|
||||
link: 'https://quad9.net/service/privacy'
|
||||
type:
|
||||
name: Non-Profit
|
||||
logs:
|
||||
policy: false
|
||||
protocols:
|
||||
- name: Cleartext
|
||||
- name: DoH
|
||||
- name: DoT
|
||||
- name: DNSCrypt
|
||||
ecs:
|
||||
status: true
|
||||
text: Optional
|
||||
filtering: Based on server choice, Malware blocking by default
|
@ -1,31 +0,0 @@
|
||||
type: dropdown
|
||||
title: Providers
|
||||
items:
|
||||
- type: link
|
||||
title: Cloud Storage
|
||||
icon: fad fa-cloud
|
||||
file: _evergreen/cloud.md
|
||||
- type: link
|
||||
title: DNS Servers
|
||||
icon: fad fa-map-signs
|
||||
file: _evergreen/dns.md
|
||||
- type: link
|
||||
title: Email Providers
|
||||
icon: fad fa-envelope
|
||||
file: legacy_pages/providers/email.html
|
||||
- type: link
|
||||
title: Search Engines
|
||||
icon: fad fa-search-location
|
||||
file: _evergreen/search-engines.md
|
||||
- type: link
|
||||
title: Social Networks
|
||||
icon: fad fa-thumbs-up
|
||||
file: legacy_pages/providers/social-networks.html
|
||||
- type: link
|
||||
title: Social News Aggregators
|
||||
icon: fad fa-newspaper
|
||||
file: legacy_pages/providers/social-news-aggregator.html
|
||||
- type: link
|
||||
title: VPN Services
|
||||
icon: fad fa-network-wired
|
||||
file: legacy_pages/providers/vpn.html
|
@ -1,52 +0,0 @@
|
||||
type: dropdown
|
||||
title: Software
|
||||
items:
|
||||
- type: link
|
||||
title: Browsers
|
||||
icon: fad fa-browser
|
||||
file: _evergreen/browsers.md
|
||||
- type: divider
|
||||
- type: link
|
||||
title: Calendar/Contacts Sync Tools
|
||||
icon: fad fa-calendar-day
|
||||
file: legacy_pages/software/cal-card.html
|
||||
- type: link
|
||||
title: Digital Notebooks
|
||||
icon: fad fa-edit
|
||||
file: legacy_pages/software/notebooks.html
|
||||
- type: link
|
||||
title: Email Clients
|
||||
icon: fad fa-envelope-open-text
|
||||
file: legacy_pages/software/email.html
|
||||
- type: link
|
||||
title: File Encryption Tools
|
||||
icon: fad fa-file-certificate
|
||||
file: legacy_pages/software/file-encryption.html
|
||||
- type: link
|
||||
title: File Sharing and Sync
|
||||
icon: fad fa-file-user
|
||||
file: legacy_pages/software/file-sharing.html
|
||||
- type: link
|
||||
title: Metadata Removal Tools
|
||||
icon: fad fa-file-times
|
||||
file: legacy_pages/software/metadata-removal-tools.html
|
||||
- type: link
|
||||
title: Password Managers
|
||||
icon: fad fa-user-lock
|
||||
file: legacy_pages/software/passwords.html
|
||||
- type: link
|
||||
title: Productivity Tools
|
||||
icon: fad fa-briefcase
|
||||
file: legacy_pages/software/productivity.html
|
||||
- type: link
|
||||
title: Real-Time Communication
|
||||
icon: fad fa-comments-alt
|
||||
file: _evergreen/real-time-communication.md
|
||||
- type: link
|
||||
title: Self-Contained Networks
|
||||
icon: fad fa-chart-network
|
||||
file: legacy_pages/software/networks.html
|
||||
- type: link
|
||||
title: Video Streaming
|
||||
icon: fad fa-video
|
||||
file: _evergreen/video-streaming.md
|
@ -1,19 +0,0 @@
|
||||
type: dropdown
|
||||
title: Operating Systems
|
||||
items:
|
||||
- type: link
|
||||
title: Android
|
||||
icon: fab fa-android
|
||||
file: _evergreen/android.md
|
||||
- type: link
|
||||
title: Linux Desktop
|
||||
icon: fab fa-linux
|
||||
file: _evergreen/linux-desktop.md
|
||||
- type: link
|
||||
title: Qubes OS
|
||||
icon: pg-qubes
|
||||
file: _evergreen/qubes.md
|
||||
- type: link
|
||||
title: Router
|
||||
icon: fa-duotone fa-circle-nodes
|
||||
file: _evergreen/router.md
|
@ -1,7 +0,0 @@
|
||||
type: dropdown
|
||||
title: Privacy
|
||||
items:
|
||||
- type: link
|
||||
title: Threat Modeling
|
||||
icon: fad fa-bullseye-arrow
|
||||
file: _evergreen/threat-modeling.md
|
@ -1,3 +0,0 @@
|
||||
type: link
|
||||
title: Blog
|
||||
file: blog.html
|
@ -1,24 +0,0 @@
|
||||
title: Orbot
|
||||
type: Recommendation
|
||||
logo: /assets/img/android/orbot.svg
|
||||
description: |
|
||||
**Orbot** is a free proxy app that routes your connections through the Tor Network.
|
||||
|
||||
Orbot can proxy individual apps if they support SOCKS or HTTP proxying. It can also proxy all your network connections using [VpnService](https://developer.android.com/reference/android/net/VpnService) and can be used with the VPN killswitch (⚙️ Settings → Network & internet → VPN → ⚙️ → Block connections without VPN).
|
||||
|
||||
For resistance against traffic analysis attacks, consider enabling *Isolate Destination Address* ( ⁝ →Settings → Connectivity). This will use a completely different Tor Circuit (different middle relay and exit nodes) for every domain you connect to.
|
||||
|
||||
#### Notes
|
||||
Orbot is often outdated on the Guardian Project's [F-Droid repository](https://guardianproject.info/fdroid) and [Google Play](https://play.google.com/store/apps/details?id=org.torproject.android) so consider downloading directly from the [GitHub repository](https://github.com/guardianproject/orbot) instead.
|
||||
|
||||
All versions are signed using the same signature so they should be compatible with each other.
|
||||
website: 'https://orbot.app/'
|
||||
downloads:
|
||||
- icon: pg-f-droid
|
||||
url: 'https://guardianproject.info/fdroid'
|
||||
- icon: fab fa-google-play
|
||||
url: 'https://play.google.com/store/apps/details?id=org.torproject.android'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/guardianproject/orbot'
|
||||
- icon: fab fa-gitlab
|
||||
url: 'https://gitlab.com/guardianproject/orbot'
|
@ -1,25 +0,0 @@
|
||||
title: Shelter
|
||||
type: Recommendation
|
||||
logo: /assets/img/android/shelter.svg
|
||||
description: |
|
||||
**Shelter** is an app that helps you leverage the Android work profile to isolate other apps.
|
||||
|
||||
Shelter supports blocking contact search cross profiles and sharing files across profiles via the default file manager ([DocumentsUI](https://source.android.com/devices/architecture/modular-system/documentsui)).
|
||||
|
||||
#### Notes
|
||||
As CalyxOS includes a device controller, we recommend using their built in work profile instead.
|
||||
|
||||
Shelter is recommended over [Insular](https://secure-system.gitlab.io/Insular/) and [Island](https://github.com/oasisfeng/island) as it supports [contact search blocking](https://secure-system.gitlab.io/Insular/faq.html).
|
||||
|
||||
When using Shelter, you are placing complete trust in its developer as Shelter would be acting as a [Device Admin](https://developer.android.com/guide/topics/admin/device-admin) for the work profile and has extensive access to the data stored within it.
|
||||
|
||||
website: 'https://gitea.angry.im/PeterCxy/Shelter'
|
||||
downloads:
|
||||
- icon: pg-f-droid
|
||||
url: 'https://f-droid.org/en/packages/net.typeblog.shelter'
|
||||
- icon: fab fa-google-play
|
||||
url: 'https://play.google.com/store/apps/details?id=net.typeblog.shelter'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/PeterCxy/Shelter'
|
||||
- icon: fab fa-git
|
||||
url: 'https://gitea.angry.im/PeterCxy/Shelter'
|
@ -1,26 +0,0 @@
|
||||
title: Auditor
|
||||
type: Recommendation
|
||||
logo: /assets/img/android/auditor.svg
|
||||
logo_dark: /assets/img/android/auditor-dark.svg
|
||||
description: |
|
||||
**Auditor** is an app which leverages hardware security features to provide device integrity monitoring for [supported devices](https://attestation.app/about#device-support). It currently works with GrapheneOS and the stock operating system. It performs attestation and intrusion detection by:
|
||||
|
||||
* Using a [Trust On First Use (TOFU)](https://en.wikipedia.org/wiki/Trust_on_first_use) model between an *auditor* and *auditee*, the pair establish a private key in the [hardware-backed keystore](https://source.android.com/security/keystore/) of the *Auditor*.
|
||||
* The *auditor* can either be another instance of the Auditor app or the [Remote Attestation Service](https://attestation.app).
|
||||
* The *auditor* records the current state and configuration of the *auditee*.
|
||||
* Should tampering with the operating system of the *auditee* after the pairing is complete, the auditor will be aware of the change in the device state and configurations.
|
||||
* The user will be alerted to the change.
|
||||
|
||||
No personally identifiable information is submitted to the attestation service. We recommend that you sign up with an anonymous account and enable remote attestation for continuous monitoring.
|
||||
|
||||
If your [threat model](/threat-modeling/) requires privacy you could consider using Orbot or a VPN to hide your IP address from the attestation service.
|
||||
|
||||
To make sure that your hardware and operating system is genuine, [perform local attestation](https://grapheneos.org/install/web#verifying-installation) immediately after the device has been installed and prior to any internet connection.
|
||||
|
||||
website: 'https://attestation.app'
|
||||
privacy_policy: 'https://attestation.app/privacy-policy'
|
||||
downloads:
|
||||
- icon: fab fa-google-play
|
||||
url: 'https://play.google.com/store/apps/details?id=app.attestation.auditor'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/GrapheneOS/Auditor'
|
@ -1,23 +0,0 @@
|
||||
title: Secure Camera
|
||||
type: Recommendation
|
||||
logo: /assets/img/android/secure_camera.svg
|
||||
logo_dark: /assets/img/android/secure_camera-dark.svg
|
||||
description: |
|
||||
**Secure Camera** is an camera app focused on privacy and security which can capture images, videos, and QR codes. CameraX vendor extensions (Portrait, HDR, Night Sight, Face Retouch, and Auto) are also supported on available devices.
|
||||
|
||||
Main privacy features include
|
||||
- Auto removal of [Exif](https://en.wikipedia.org/wiki/Exif) metadata (enabled by default)
|
||||
- Use of the new [Media](https://developer.android.com/training/data-storage/shared/media) API, therefore [storage permissions](https://developer.android.com/training/data-storage) are not required
|
||||
- Microphone permission not required unless you want to record sound
|
||||
|
||||
### Notes
|
||||
Metadata is not currently deleted from video files but that is planned.
|
||||
|
||||
The image orientation metadata is not deleted. If you enable location (in Secure Camera) that **won't** be deleted either. If you want to delete that later you will need to use an external app such as [Scrambled Exif](https://gitlab.com/juanitobananas/scrambled-exif/).
|
||||
|
||||
website: 'https://github.com/GrapheneOS/Camera'
|
||||
downloads:
|
||||
- icon: fab fa-google-play
|
||||
url: 'https://play.google.com/store/apps/details?id=app.grapheneos.camera.play'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/GrapheneOS/Camera/releases'
|
@ -1,15 +0,0 @@
|
||||
title: Secure PDF Viewer
|
||||
type: Recommendation
|
||||
logo: /assets/img/android/secure_pdf_viewer.svg
|
||||
logo_dark: /assets/img/android/secure_pdf_viewer-dark.svg
|
||||
description: |
|
||||
**Secure PDF Viewer** is a PDF viewer based on [pdf.js](https://en.wikipedia.org/wiki/PDF.js) that doesn't require any permissions. The PDF is fed into a [sandboxed](https://en.wikipedia.org/wiki/Sandbox_(software_development)) [webview](https://developer.android.com/guide/webapps/webview). This means that it doesn't require permission directly to access content or files.
|
||||
|
||||
[Content-Security-Policy](https://en.wikipedia.org/wiki/Content_Security_Policy) is used to enforce that the JavaScript and styling properties within the WebView are entirely static content.
|
||||
|
||||
website: 'https://github.com/GrapheneOS/PdfViewer'
|
||||
downloads:
|
||||
- icon: fab fa-google-play
|
||||
url: 'https://play.google.com/store/apps/details?id=app.grapheneos.pdfviewer.play'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/GrapheneOS/PdfViewer/releases'
|
@ -1,16 +0,0 @@
|
||||
title: PrivacyBlur
|
||||
type: Recommendation
|
||||
logo: /assets/img/android/privacyblur.svg
|
||||
description: |
|
||||
**PrivacyBlur** is a free app which can blur sensitive portions of pictures before sharing them online.
|
||||
|
||||
### Notes
|
||||
You should **never** use blur to redact [text in images](https://bishopfox.com/blog/unredacter-tool-never-pixelation). If you want to redact text in an image, draw a box over the text. For this we suggest [Pocket Paint](https://github.com/Catrobat/Paintroid) or [Imagepipe](https://codeberg.org/Starfish/Imagepipe).
|
||||
website: 'https://privacyblur.app/'
|
||||
downloads:
|
||||
- icon: pg-f-droid
|
||||
url: 'https://f-droid.org/en/packages/de.mathema.privacyblur/'
|
||||
- icon: fab fa-google-play
|
||||
url: 'https://play.google.com/store/apps/details?id=de.mathema.privacyblur'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/MATHEMA-GmbH/privacyblur'
|
@ -1,12 +0,0 @@
|
||||
title: Droid-ify
|
||||
type: Recommendation
|
||||
logo: /assets/img/android/droid-ify.png
|
||||
description: |
|
||||
**Droid-ify** is a modern F-Droid client made with MaterialUI, forked from [Foxy Droid](https://github.com/kitsunyan/foxy-droid).
|
||||
|
||||
Unlike the official F-Droid client, Droid-ify supports seamless updates on Android 12 and above without the need for a privileged extension. If your Android distribution is on Android 12 or above and does not include the [F-Droid privileged extension](https://f-droid.org/en/packages/org.fdroid.fdroid.privileged/), it is highly recommended that you use Droid-ify instead of the official client.
|
||||
downloads:
|
||||
- icon: fab fa-android
|
||||
url: 'https://android.izzysoft.de/repo/apk/com.looker.droidify'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/Iamlooker/Droid-ify'
|
@ -1,20 +0,0 @@
|
||||
title: GrapheneOS
|
||||
type: Recommendation
|
||||
logo: /assets/img/android/grapheneos.svg
|
||||
logo_dark: /assets/img/android/grapheneos-dark.svg
|
||||
description: |
|
||||
**GrapheneOS** is the best choice when it comes to privacy and security.
|
||||
|
||||
GrapheneOS provides additional [security hardening](https://en.wikipedia.org/wiki/Hardening_(computing)) and privacy improvements. It has a [hardened memory allocator](https://github.com/GrapheneOS/hardened_malloc), network and sensor permissions, and various other [security features](https://grapheneos.org/features). GrapheneOS also comes with full firmware updates and signed builds, so [verified boot](https://source.android.com/security/verifiedboot) is fully supported.
|
||||
|
||||
Notably, GrapheneOS supports [Sandboxed Google Play](https://grapheneos.org/usage#sandboxed-google-play). Google Play Services can be run fully sandboxed like a regular user app and contained in a work profile or user [profile](/android/#android-security-privacy) of your choice. This means that you can run apps dependant on Play Services, such as those that require push notifications using Google's [Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging/) service. GrapheneOS allows you to take advantage of most [Google Play Services](https://en.wikipedia.org/wiki/Google_Play_Services) whilst having full user control over their permissions and access.
|
||||
|
||||
Currently, only [Pixel phones](https://grapheneos.org/faq#device-support) meet its hardware security requirement and are supported.
|
||||
|
||||
#### Notes
|
||||
GrapheneOS's "extended support" devices do not have full security patches (firmware updates) due to the original equipment manufacturer (OEM) discontinuing support. These devices cannot be considered completely secure.
|
||||
website: 'https://grapheneos.org/'
|
||||
privacy_policy: 'https://grapheneos.org/faq#privacy-policy'
|
||||
downloads:
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/GrapheneOS'
|
@ -1,22 +0,0 @@
|
||||
title: CalyxOS
|
||||
type: Recommendation
|
||||
logo: /assets/img/android/calyxos.svg
|
||||
description: |
|
||||
**CalyxOS** is a decent alternative to GrapheneOS.
|
||||
|
||||
It has some privacy features on top of AOSP, including [Datura firewall](https://calyxos.org/docs/tech/datura-details), [Signal](https://signal.org) integration in the dialer app, and a built in panic button. CalyxOS also comes with firmware updates and signed builds, so [verified boot](https://source.android.com/security/verifiedboot) is fully supported.
|
||||
|
||||
To accomodate users who need Google Play Services, CalyxOS optionally includes [MicroG](https://microg.org/). With MicroG, CalyxOS also bundles in the [Mozilla](https://location.services.mozilla.com/) and [DejaVu](https://github.com/n76/DejaVu) location services.
|
||||
|
||||
Currently, CalyxOS only supports [Pixel phones](https://calyxos.org/docs/guide/device-support/).
|
||||
|
||||
#### Notes
|
||||
CalyxOS's "extended support" does not have full security patches due to the original equipment manufacturer (OEM) discontinuing support; therefore, they cannot be considered completely secure.
|
||||
|
||||
website: 'https://calyxos.org'
|
||||
privacy_policy: 'https://calyxinstitute.org/legal/privacy-policy'
|
||||
downloads:
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/CalyxOS'
|
||||
- icon: fab fa-gitlab
|
||||
url: 'https://gitlab.com/calyxos'
|
@ -1,25 +0,0 @@
|
||||
title: DivestOS
|
||||
type: Recommendation
|
||||
logo: /assets/img/android/divestos.svg
|
||||
description: |
|
||||
**DivestOS** is a [soft-fork](https://en.wikipedia.org/wiki/Fork_(software_development)#Forking_of_free_and_open-source_software) of [LineageOS](https://lineageos.org/).
|
||||
|
||||
DivestOS inherits many [supported devices](https://divestos.org/index.php?page=devices&base=LineageOS) from LineageOS. It has signed builds, making it possible to have [verified boot](https://source.android.com/security/verifiedboot) on some non-Pixel devices.
|
||||
|
||||
DivestOS has automated kernel vulnerability ([CVE](https://en.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures)) [patching](https://gitlab.com/divested-mobile/cve_checker), fewer proprietary blobs, a custom [hosts](https://divested.dev/index.php?page=dnsbl) file, and [F-Droid](https://www.f-droid.org) as the app store. It includes [UnifiedNlp](https://github.com/microg/UnifiedNlp) for network location and some hardening with [Mulch Webview](https://gitlab.com/divested-mobile/mulch). Users can also select the [Bromite SystemWebView](https://www.bromite.org/system_web_view) in ⚙️ Settings → Developer options → Webview implementation. DivestOS also includes kernel patches from GrapheneOS and enables security features in [defconfig](https://github.com/Divested-Mobile/DivestOS-Build/blob/master/Scripts/Common/Functions.sh#L698).
|
||||
|
||||
DivestOS 16.0, 17.1, and 18.1 implements GrapheneOS's [`INTERNET`](https://developer.android.com/training/basics/network-ops/connecting) permission toggle and [hardened memory allocator](https://github.com/GrapheneOS/hardened_malloc).
|
||||
|
||||
#### Notes
|
||||
DivestOS firmware update [status](https://gitlab.com/divested-mobile/firmware-empty/-/blob/master/STATUS) varies across the devices it supports. For Pixel phones, we still recommend using GrapheneOS or CalyxOS. For other supported devices, DivestOS is a good alternative.
|
||||
|
||||
Not all of the supported devices have [verified boot](https://source.android.com/security/verifiedboot), and some perform it better than others.
|
||||
|
||||
website: 'https://divestos.org'
|
||||
website_tor: 'http://divestoseb5nncsydt7zzf5hrfg44md4bxqjs5ifcv4t7gt7u6ohjyyd.onion'
|
||||
privacy_policy: 'https://divestos.org/index.php?page=privacy_policy'
|
||||
downloads:
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/divested-mobile'
|
||||
- icon: fab fa-gitlab
|
||||
url: 'https://gitlab.com/divested-mobile'
|
@ -1,16 +0,0 @@
|
||||
title: Fedora Silverblue (and Kinoite)
|
||||
type: Recommendation
|
||||
logo: /assets/img/linux-desktop/fedora-silverblue.svg
|
||||
description: |
|
||||
**Fedora Silverblue** and **Fedora Kinoite** are immutable variants of Fedora with a strong focus on container workflows. Silverblue comes with the [GNOME](https://www.gnome.org/) desktop environment while Kinoite comes with [KDE](https://kde.org/). Silverblue and Kinoite follow the same release schedule as Fedora Workstation, benefiting from the same fast updates and staying very close to upstream.
|
||||
|
||||
Silverblue (and Kionite) differ from Fedora Workstation as they replace the [DNF](https://fedoraproject.org/wiki/DNF) package manager with a much more advanced alternative called [`rpm-ostree`](https://docs.fedoraproject.org/en-US/fedora/rawhide/system-administrators-guide/package-management/rpm-ostree/). The `rpm-ostree` package manager works by downloading a base image for the system, then overlaying packages over it in a [git](https://en.wikipedia.org/wiki/Git)-like commit tree. When the system is updated, a new base image is downloaded and the overlays will be applied to that new image.
|
||||
|
||||
After the update is complete the user will reboot the system into the new deployment. `rpm-ostree` keeps two deployments of the system so that a user can easily rollback if something breaks in the new deployment. There is also the option to pin more deployments as needed.
|
||||
|
||||
[Flatpak](https://www.flatpak.org) is the primary package installation method on these distrbutions, as `rpm-ostree` is only meant to overlay packages that cannot stay inside of a container on top of the base image.
|
||||
|
||||
As an alternative to Flatpaks, there is the option of [Toolbox](https://docs.fedoraproject.org/en-US/fedora-silverblue/toolbox/) to create [Podman](https://podman.io) containers with a shared home directory with the host operating system and mimic a traditional Fedora environment, which is a [useful feature](https://containertoolbx.org) for the discerning developer.
|
||||
|
||||
website: 'https://silverblue.fedoraproject.org'
|
||||
privacy_policy: 'https://fedoraproject.org/wiki/Legal:PrivacyPolicy#Sharing_Your_Personal_Data'
|
@ -1,17 +0,0 @@
|
||||
title: NixOS
|
||||
type: Recommendation
|
||||
logo: /assets/img/linux-desktop/nixos.svg
|
||||
description: |
|
||||
<strong>NixOS</strong> is an independent distribution based on the <a href="https://nixos.org">Nix package manager</a> with a focus on reproducibility and reliability.
|
||||
|
||||
NixOS's package manager keeps every version of every package in a different folder in the **Nix store**. Due to this you can have different versions of the same package installed on your system. After the package contents have been written to the folder, the folder is made read-only.
|
||||
|
||||
NixOS also provides atomic updates; first it downloads (or builds) the packages and files for the new system generation and then switches to it. There are different ways to switch to a new generation; you can tell NixOS to activate it after reboot or you can switch to it at runtime. You can also *test* the new generation by switching to it at runtime, but not setting it as the current system generation. If something in the update process breaks, you can just reboot and automatically and return to a working version of your system.
|
||||
|
||||
Nix the package manager uses a purely functional language - which is also called Nix - to define packages.
|
||||
|
||||
[Nixpkgs](https://github.com/nixos/nixpkgs) (the main source of packages) are contained in a single Github repository. You can also define your own packages in the same language and then easily include them in your config.
|
||||
|
||||
Nix is a source-based package manager; if there's no pre-built available in the binary cache, Nix will just build the package from source using its definition. It builds each package in a sandboxed *pure* environment, which is as independent of the host system as possible, thus making binaries reproducible.
|
||||
|
||||
website: 'https://nixos.org'
|
@ -1,16 +0,0 @@
|
||||
title: Whonix
|
||||
type: Recommendation
|
||||
logo: /assets/img/linux-desktop/whonix.svg
|
||||
description: |
|
||||
**Whonix** is based on [Kicksecure](https://www.whonix.org/wiki/Kicksecure), a security-focused fork of Debian. It aims to provide privacy, security, and anonymity on the internet.
|
||||
|
||||
Whonix is meant to run as two virtual machines: a "Workstation" and a Tor "Gateway". All communications from the Workstation has to go through the Tor gateway, and will be routed through the Tor Network.
|
||||
|
||||
Some of its features include Tor Stream Isolation, [keystroke anonymization](https://www.whonix.org/wiki/Keystroke_Deanonymization#Kloak), [encrypted swap](https://github.com/Whonix/swap-file-creator), and a hardened memory allocator.
|
||||
|
||||
Future versions of Whonix will likely include [full system Apparmor policies](https://github.com/Whonix/apparmor-profile-everything) and a [sandbox app launcher](https://www.whonix.org/wiki/Sandbox-app-launcher) to fully confine all processes on the system.
|
||||
|
||||
Whonix is best used [in conjunction with Qubes](https://www.whonix.org/wiki/Qubes/Why_use_Qubes_over_other_Virtualizers).
|
||||
|
||||
website: 'https://www.whonix.org/'
|
||||
website_tor: 'http://www.dds6qkxpwdeubwucdiaord2xgbbeyds25rbsgr73tbfpqpt4a6vjwsyd.onion/'
|
@ -1,11 +0,0 @@
|
||||
title: Tails
|
||||
type: Recommendation
|
||||
logo: /assets/img/linux-desktop/tails.svg
|
||||
description: |
|
||||
**Tails** is a live operating system based on Debian that routes all communications through Tor.
|
||||
|
||||
It can boot on almost any computer from a DVD, USB stick, or sdcard. It aims to preserve privacy and anonymity while circumventing censorship and leaving no trace of itself on the computer it is used on.
|
||||
|
||||
By design, Tails is meant to completely reset itself after each reboot. Encrypted [persistent storage](https://tails.boum.org/doc/first_steps/persistence/index.en.html) can be configured to store some data.
|
||||
|
||||
website: 'https://tails.boum.org'
|
@ -1,13 +0,0 @@
|
||||
title: Fedora Workstation
|
||||
type: Recommendation
|
||||
logo: /assets/img/linux-desktop/fedora-workstation.svg
|
||||
labels: 'color==info::icon==fas fa-fw fa-trophy::text==Beginner friendly::tooltip==We highly recommend that new Linux users use Fedora Workstation.'
|
||||
description: |
|
||||
**Fedora Workstation** is our recommended distribution for users new to Linux.
|
||||
|
||||
It has a semi-[rolling release](https://en.wikipedia.org/wiki/Rolling_release) cycle. While some packages like [GNOME](https://www.gnome.org) are frozen until the next Fedora release, most packages (including the kernel) are updated frequently throughout the lifespan of the release. Each Fedora release is supported for one year, with a new version released every 6 months.
|
||||
|
||||
Fedora generally adopts newer technologies before other distributions e.g., [Wayland](https://wayland.freedesktop.org/), [PipeWire](https://pipewire.org), and soon, [FS-Verity](https://fedoraproject.org/wiki/Changes/FsVerityRPM). These new technologies often come with improvements in security, privacy, and usability in general.
|
||||
|
||||
website: 'https://getfedora.org'
|
||||
privacy_policy: 'https://fedoraproject.org/wiki/Legal:PrivacyPolicy#Sharing_Your_Personal_Data'
|
@ -1,11 +0,0 @@
|
||||
title: openSUSE Tumbleweed
|
||||
type: Recommendation
|
||||
logo: /assets/img/linux-desktop/opensuse-tumbleweed.svg
|
||||
description: |
|
||||
**openSUSE Tumbleweed** is a stable [rolling release](https://en.wikipedia.org/wiki/Rolling_release) distribution.
|
||||
|
||||
Tumbleweed follows a rolling release model where each update is released as a snapshot of the distribution. When the user upgrades their system, a new snapshot is downloaded. Each snapshot is run through a series of automated tests by the [openSUSE Build Service](https://build.opensuse.org) to ensure its quality.
|
||||
|
||||
openSUSE Tumbleweed has a [transactional update](https://kubic.opensuse.org/blog/2018-04-04-transactionalupdates/) system that uses [Btrfs](https://en.wikipedia.org/wiki/Btrfs) and [Snapper](https://en.opensuse.org/openSUSE:Snapper_Tutorial) to ensure that snapshots can be rolled back should there be a problem.
|
||||
|
||||
website: 'https://get.opensuse.org/tumbleweed/'
|
@ -1,14 +0,0 @@
|
||||
title: Arch Linux
|
||||
type: Recommendation
|
||||
logo: /assets/img/linux-desktop/archlinux.svg
|
||||
description: |
|
||||
**Arch Linux** is a lightweight, do-it-yourself (DIY) distribution meaning that you only get what you install. For more information see their [FAQ](https://wiki.archlinux.org/title/Frequently_asked_questions).
|
||||
|
||||
Arch Linux has a rolling release cycle. There is no fixed release schedule and packages are updated very frequently.
|
||||
|
||||
Being a DIY distribution, the user is [expected to setup and maintain](/linux-desktop/#arch-based-distributions) their system. Arch has an [official installer](https://wiki.archlinux.org/title/Archinstall) to make the installation process a little easier.
|
||||
|
||||
A large portion of [Arch Linux's packages](https://reproducible.archlinux.org) are [reproducible](https://reproducible-builds.org).
|
||||
|
||||
website: 'https://archlinux.org'
|
||||
privacy_policy: 'https://wiki.archlinux.org/index.php/ArchWiki:Privacy_policy'
|
@ -1,11 +0,0 @@
|
||||
title: Qubes OS
|
||||
type: Recommendation
|
||||
logo: /assets/img/qubes/qubes_os.svg
|
||||
description: |
|
||||
**Qubes** is an open-source operating system designed to provide strong security for desktop computing. Qubes is based on Xen, the X Window System, and Linux, and can run most Linux applications and utilize most of the Linux drivers.
|
||||
website: 'https://www.qubes-os.org/'
|
||||
website_tor: 'http://qubesosfasa4zl44o4tws22di6kepyzfeqv3tg4e3ztknltfxqrymdad.onion/'
|
||||
privacy_policy: 'https://www.qubes-os.org/privacy/'
|
||||
downloads:
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/QubesOS'
|
@ -1,14 +0,0 @@
|
||||
title: OpenWrt
|
||||
type: Recommendation
|
||||
logo: /assets/img/router/openwrt.svg
|
||||
logo_dark: /assets/img/router/openwrt-dark.svg
|
||||
description: |
|
||||
**OpenWrt** is an operating system (in particular, an embedded operating system) based on the Linux kernel, primarily used on embedded devices to route network traffic. The main components are the Linux kernel, util-linux, uClibc, and BusyBox. All components have been optimized for size, to be small enough for fitting into the limited storage and memory available in home routers.
|
||||
|
||||
## Notes
|
||||
Consult the [Table of Hardware](https://openwrt.org/toh/start) to check if your device is supported.
|
||||
|
||||
website: 'https://openwrt.org'
|
||||
downloads:
|
||||
- icon: fab fa-git
|
||||
url: 'https://git.openwrt.org/'
|
@ -1,11 +0,0 @@
|
||||
title: pfSense
|
||||
type: Recommendation
|
||||
logo: /assets/img/router/pfsense.svg
|
||||
logo_dark: /assets/img/router/pfsense-dark.svg
|
||||
description: |
|
||||
pfSense is an open source firewall/router computer software distribution based on FreeBSD. It is installed on a computer to make a dedicated firewall/router for a network and is noted for its reliability and offering features often only found in expensive commercial firewalls. pfSense is commonly deployed as a perimeter firewall, router, wireless access point, DHCP server, DNS server, and VPN endpoint.
|
||||
website: 'https://www.pfsense.org'
|
||||
privacy_policy: 'https://www.pfsense.org/privacy.html'
|
||||
downloads:
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/pfsense'
|
@ -1,33 +0,0 @@
|
||||
title: Nextcloud
|
||||
type: Recommendation
|
||||
logo: /assets/img/cloud/nextcloud.svg
|
||||
description: |
|
||||
**Nextcloud** is a suite of free and open-source client-server software for creating your own file hosting services on a private server you control. It also comes with experimental end-to-end encryption (E2EE).
|
||||
|
||||
We recommend checking if your Nextcloud provider supports E2EE, otherwise you have to trust the provider to not look at your files.
|
||||
|
||||
When self hosting Nextcloud, you should also remember to enable E2EE to protect against your hosting provider from snooping on your data.
|
||||
|
||||
website: 'https://nextcloud.com/'
|
||||
privacy_policy: 'https://nextcloud.com/privacy/'
|
||||
downloads:
|
||||
- icon: fab fa-windows
|
||||
url: 'https://nextcloud.com/install/#install-clients'
|
||||
- icon: fab fa-apple
|
||||
url: 'https://nextcloud.com/install/#install-clients'
|
||||
- icon: fab fa-linux
|
||||
url: 'https://nextcloud.com/install/#install-clients'
|
||||
- icon: fab fa-freebsd
|
||||
url: 'https://www.freshports.org/www/nextcloud/'
|
||||
- icon: pg-openbsd
|
||||
url: 'http://openports.se/www/nextcloud'
|
||||
- icon: pg-netbsd
|
||||
url: 'http://pkgsrc.se/www/php-nextcloud'
|
||||
- icon: fab fa-android
|
||||
url: 'https://f-droid.org/packages/com.nextcloud.client/'
|
||||
- icon: fab fa-google-play
|
||||
url: 'https://play.google.com/store/apps/details?id=com.nextcloud.client'
|
||||
- icon: fab fa-app-store-ios
|
||||
url: 'https://apps.apple.com/app/id1125420102'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/nextcloud'
|
@ -1,17 +0,0 @@
|
||||
title: Proton Drive
|
||||
type: Recommendation
|
||||
logo: /assets/img/cloud/protondrive.svg
|
||||
description: |
|
||||
**Proton Drive** is an end-to-end encrypted (E2EE) general file storage service by the popular encrypted email provider [ProtonMail](https://protonmail.com).
|
||||
|
||||
Proton Drive is currently in beta and only is only available through a web client.
|
||||
|
||||
When using a web client, you are placing trust in the server to send you proper JavaScript code to derive the decryption key and authentication token locally in your browser. A compromised server can send you malicious JavaScript code to steal your master password and decrypt your data. If this does not fit your [threat model](/threat-modeling/), consider using an alternative.
|
||||
|
||||
website: 'https://protonmail.com'
|
||||
privacy_policy: 'https://protonmail.com/privacy-policy'
|
||||
downloads:
|
||||
- icon: fas fa-globe-americas
|
||||
url: 'https://protonmail.com'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/ProtonMail/WebClients'
|
@ -1,20 +0,0 @@
|
||||
title: Tahoe-LAFS (Advanced)
|
||||
type: Recommendation
|
||||
logo: /assets/img/cloud/tahoe-lafs.svg
|
||||
logo_dark: /assets/img/cloud/tahoe-lafs-dark.svg
|
||||
description: |
|
||||
**Tahoe-LAFS** is a free and open decentralized cloud storage system. It distributes your data across multiple servers. Even if some of the servers fail or are taken over by an attacker, the entire file store continues to function correctly, preserving your privacy and security. The servers used as storage pools do not have access to your data.
|
||||
|
||||
Due to the complexity of the system and the amount of nodes needed to set it up, Tahoe-LAFS is only recommended for seasoned system administrators.
|
||||
website: 'https://www.tahoe-lafs.org/'
|
||||
downloads:
|
||||
- icon: fab fa-windows
|
||||
url: 'https://github.com/tahoe-lafs/tahoe-lafs#via-pip'
|
||||
- icon: fab fa-apple
|
||||
url: 'https://github.com/tahoe-lafs/tahoe-lafs#via-pip'
|
||||
- icon: fab fa-linux
|
||||
url: 'https://github.com/tahoe-lafs/tahoe-lafs#using-os-packages'
|
||||
- icon: pg-netbsd
|
||||
url: 'http://pkgsrc.se/filesystems/tahoe-lafs'
|
||||
- icon: fab fa-github
|
||||
url: 'https://www.tahoe-lafs.org/trac/tahoe-lafs/browser'
|
@ -1,18 +0,0 @@
|
||||
title: DuckDuckGo
|
||||
type: Recommendation
|
||||
logo: /assets/img/search-engines/duckduckgo.svg
|
||||
description: |
|
||||
**DuckDuckGo** is a popular search engine and is the default for the Tor Browser.
|
||||
|
||||
DuckDuckGo has a [lite](https://duckduckgo.com/lite) and [html](https://duckduckgo.com/html) only version, both of which [do not require JavaScript](https://help.duckduckgo.com/features/non-javascript) and can be used with their [Tor onion address](https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion) (append [/lite](https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion/lite) or [/html](https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion/html) for the respective version).
|
||||
|
||||
DuckDuckGo uses a commercial Bing API and various [other sources](https://help.duckduckgo.com/results/sources) to provide its search data.
|
||||
|
||||
#### Notes
|
||||
The company is based in the <span class="flag-icon flag-icon-us"></span> USA.
|
||||
|
||||
Their [Privacy Policy](https://duckduckgo.com/privacy) states they do log your search query, but not your IP or any other identifying information.
|
||||
|
||||
website: 'https://duckduckgo.com'
|
||||
website_tor: 'https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion'
|
||||
privacy_policy: 'https://duckduckgo.com/privacy'
|
@ -1,19 +0,0 @@
|
||||
title: Startpage
|
||||
type: Recommendation
|
||||
logo: /assets/img/search-engines/startpage.svg
|
||||
description: |
|
||||
**Startpage** is a search engine that provides Google search results. It is a very convenient way to get Google search results without experiencing dark patterns such as difficult captchas or being refused access because you used a [VPN](/providers/vpn) or [Tor](https://www.torproject.org/download/).
|
||||
|
||||
#### Notes
|
||||
Startpage's majority shareholder is System1 who is an adtech company. We don't think that is an issue as they have their own Privacy Policy.
|
||||
|
||||
The Privacy Guides team reached out to Startpage [back in 2020](https://web.archive.org/web/20210118031008/https://blog.privacytools.io/relisting-startpage/) for clarification and was satisfied by the answers we received.
|
||||
|
||||
Startpage is based in the <span class="flag-icon flag-icon-nl"></span> Netherlands.
|
||||
|
||||
According to their [Privacy Policy](https://www.startpage.com/en/privacy-policy/), they only log details such as: operating system, type of browser and language. They do not log your IP address, search queries or other identifying information.
|
||||
|
||||
Startpage proxies Google Search so Google does have access to your search queries.
|
||||
|
||||
website: 'https://www.startpage.com'
|
||||
privacy_policy: 'https://www.startpage.com/en/privacy-policy'
|
@ -1,13 +0,0 @@
|
||||
title: Mojeek
|
||||
type: Recommendation
|
||||
logo: /assets/img/search-engines/mojeek.svg
|
||||
description: |
|
||||
**Mojeek** is another privacy friendly search engine. They use their own crawler to provide search data.
|
||||
|
||||
#### Notes
|
||||
The company is based in the <span class="flag-icon flag-icon-gb"></span> UK.
|
||||
|
||||
According to their [Privacy Policy](https://www.mojeek.com/about/privacy/), they log the originating country, time, page requested, and referral data of each query. IP addresses are not logged.
|
||||
|
||||
website: 'https://www.mojeek.com'
|
||||
privacy_policy: 'https://www.mojeek.com/about/privacy'
|
@ -1,15 +0,0 @@
|
||||
title: Searx
|
||||
type: Recommendation
|
||||
logo: /assets/img/search-engines/searx.svg
|
||||
description: |
|
||||
**Searx** is an [open-source](https://github.com/asciimoo/searx), self-hostable, metasearch engine, aggregating the results of other search engines while not storing information about its users. There is a [list of public instances](https://searx.space/).
|
||||
|
||||
#### Notes
|
||||
Searx is a proxy between the user and the search engines it aggregates from. Your search queries will still be sent to the search engines that Searx gets its results from.
|
||||
|
||||
When self-hosting, it is important that you have other people using your instance as well in order for you to blend in. You should be careful with where and how you are hosting Searx, as other people looking up illegal content on your instance could draw unwanted attention from authorities.
|
||||
|
||||
When you are using a Searx instance, be sure to go read the Privacy Policy of that specific instance. Searx instances can be modified by their owners and therefore may not reflect their associated privacy policy. Some instances have Tor .onion addresses which may grant some privacy as long as your search queries don't contain PII (Personally Identifiable Information).
|
||||
|
||||
website: 'https://searx.me'
|
||||
website_tor: 'http://searxspbitokayvkhzhsnljde7rqmn7rvoga6e4waeub3h7ug3nghoad.onion'
|
@ -1,14 +0,0 @@
|
||||
"@context": https://schema.org
|
||||
"@type": Organization
|
||||
"name": Privacy Guides
|
||||
"description": "Massive organizations are monitoring your online activities. Privacy Guides is your central privacy and security resource to protect yourself online."
|
||||
"url": 'https://www.privacyguides.org'
|
||||
"logo": 'https://www.privacyguides.org/assets/img/layout/apple-touch-icon.png'
|
||||
"sameAs":
|
||||
- 'https://www.wikidata.org/wiki/Q74788946'
|
||||
- 'https://twitter.com/privacy_guides'
|
||||
- 'https://github.com/privacyguides'
|
||||
- 'https://github.com/privacytools'
|
||||
- 'https://twitter.com/privacytoolsIO'
|
||||
"alternateName":
|
||||
- 'PrivacyTools'
|
@ -1,63 +0,0 @@
|
||||
title: Firefox Desktop
|
||||
type: Recommendation
|
||||
logo: /assets/img/browsers/firefox.svg
|
||||
description: |
|
||||
**Firefox** provides strong privacy settings such as [Enhanced Tracking Protection](https://support.mozilla.org/kb/enhanced-tracking-protection-firefox-desktop), which can help block various [types of tracking](https://support.mozilla.org/kb/enhanced-tracking-protection-firefox-desktop#w_what-enhanced-tracking-protection-blocks).
|
||||
|
||||
These options can be found in the *Privacy & Security* settings page ( ≡ → Settings → Privacy & Security).
|
||||
|
||||
##### **Enhanced Tracking Protection (ETP)**
|
||||
<ul style="list-style-type:none;padding-left:0;">
|
||||
<li>Select: <strong>Strict</strong></li>
|
||||
</ul>
|
||||
|
||||
##### **Sanitize on Close**
|
||||
<ul style="list-style-type:none;padding-left:0;">
|
||||
<li>Select: <strong>Delete cookies and site data when Firefox is closed</strong></li>
|
||||
</ul>
|
||||
You can still stay logged into websites by allowing exceptions.
|
||||
|
||||
##### **Disable Search Suggestions**
|
||||
*These features may not be available depending on your region.*
|
||||
<ul style="list-style-type:none;padding-left:0;">
|
||||
<li>Toggle off: <strong>Suggestions from the web</strong></li>
|
||||
<li>Toggle off: <strong>Suggestions from sponsors</strong></li>
|
||||
<li>Toggle off: <strong>Improve the Firefox Suggest experience</strong></li>
|
||||
</ul>
|
||||
|
||||
##### **Disable Telemetry**
|
||||
<ul style="list-style-type:none;padding-left:0;">
|
||||
<li>Uncheck: <strong>Allow Firefox to send technical and interaction data to Mozilla</strong></li>
|
||||
<li>Uncheck: <strong>Allow Firefox to install and run studies</strong></li>
|
||||
<li>Uncheck: <strong>Allow Firefox to send backlogged crash reports on your behalf</strong></li>
|
||||
</ul>
|
||||
|
||||
Firefox includes a unique [download token](https://bugzilla.mozilla.org/show_bug.cgi?id=1677497#c0) in downloads from Mozilla's website and uses telemetry in Firefox to send the token. The token is **not** included in releases from the [Mozilla FTP](https://ftp.mozilla.org/pub/firefox/releases/).
|
||||
|
||||
##### **HTTPS-Only Mode**
|
||||
<ul style="list-style-type:none;padding-left:0;">
|
||||
<li>Select: <strong>Enable HTTPS-Only Mode in all windows</strong>.</li>
|
||||
</ul>
|
||||
|
||||
#### Sync
|
||||
The [Firefox sync](https://hacks.mozilla.org/2018/11/firefox-sync-privacy/) service is end-to-end encrypted.
|
||||
|
||||
#### Extensions
|
||||
We generally do not recommend installing any extensions as they increase your [attack surface](https://en.wikipedia.org/wiki/Attack_surface); however, if you want content blocking, [uBlock Origin](/browsers/#additional-resources) might be useful to you. The extension is also a 🏆️[Recommended Extension](https://support.mozilla.org/kb/add-on-badges#w_recommended-extensions) by Mozilla.
|
||||
|
||||
#### Arkenfox (advanced)
|
||||
The [Arkenfox project](https://github.com/arkenfox/user.js) provides a set of carefully considered options for Firefox. These options are quite strict but a few are subjective and may cause some websites to not work properly. You can easily change these settings to suit your needs. We **strongly recommend** reading through their [wiki](https://github.com/arkenfox/user.js/wiki). Arkenfox also enables [container](https://support.mozilla.org/en-US/kb/containers#w_for-advanced-users) support.
|
||||
|
||||
website: 'https://firefox.com'
|
||||
privacy_policy: 'https://www.mozilla.org/privacy/firefox'
|
||||
downloads:
|
||||
- icon: fab fa-windows
|
||||
url: 'https://www.mozilla.org/firefox/windows'
|
||||
- icon: fab fa-apple
|
||||
url: 'https://www.mozilla.org/firefox/mac'
|
||||
- icon: fab fa-linux
|
||||
url: 'https://www.mozilla.org/firefox/linux'
|
||||
- icon: fab fa-freebsd
|
||||
url: 'https://www.freshports.org/www/firefox'
|
||||
- icon: fab fa-git
|
||||
url: 'https://hg.mozilla.org/mozilla-central'
|
@ -1,27 +0,0 @@
|
||||
title: Bromite
|
||||
type: Recommendation
|
||||
logo: /assets/img/browsers/bromite.svg
|
||||
description: |
|
||||
**Bromite** is a [Chromium](https://en.wikipedia.org/wiki/Chromium_(web_browser))-based browser with privacy and security enhancements, built-in ad blocking, and some fingerprinting randomization.
|
||||
|
||||
These options can be found in *Privacy and Security* ( ⁝ → ⚙️ Settings → Privacy and Security).
|
||||
|
||||
##### **HTTPS-Only Mode**
|
||||
<ul style="list-style-type:none;padding-left:0;">
|
||||
<li>Select: <strong>Always use secure connections</strong>.</li>
|
||||
</ul>
|
||||
|
||||
##### **Always-on Incognito Mode**
|
||||
<ul style="list-style-type:none;padding-left:0;">
|
||||
<li>Select: <strong>Open links in incognito tabs always</strong>.</li>
|
||||
<li>Select: <strong>Close all open tabs on exit</strong>.</li>
|
||||
<li>Select: <strong>Open external links in incognito</strong>.</li>
|
||||
</ul>
|
||||
|
||||
website: 'https://www.bromite.org'
|
||||
privacy_policy: 'https://www.bromite.org/privacy'
|
||||
downloads:
|
||||
- icon: fab fa-android
|
||||
url: 'https://www.bromite.org/fdroid'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/bromite/bromite'
|
@ -1,54 +0,0 @@
|
||||
title: Safari
|
||||
type: Recommendation
|
||||
logo: /assets/img/browsers/safari.svg
|
||||
description: |
|
||||
**Safari** is the default browser in iOS. It includes [privacy features](https://support.apple.com/guide/iphone/browse-the-web-privately-iphb01fc3c85/15.0/ios/15.0) such as Intelligent Tracking Protection, Privacy Report, isolated Private Browsing tabs, iCloud Private Relay, and automatic HTTPS upgrades.
|
||||
|
||||
These options can be found in *Privacy and Security* (⚙️ Settings → Safari → Privacy and Security).
|
||||
|
||||
##### **Cross-Site Tracking Prevention**
|
||||
Toggling this setting enables WebKit's [Intelligent Tracking Protection](https://webkit.org/tracking-prevention/#intelligent-tracking-prevention-itp).
|
||||
|
||||
<ul style="list-style-type:none;padding-left:0;">
|
||||
<li>Toggle On: <strong>Prevent Cross-Site Tracking</strong>.</li>
|
||||
</ul>
|
||||
|
||||
##### **Privacy Report**
|
||||
Privacy Report provides a snapshot of cross-site trackers currently prevented from profiling you on the website you're visiting. It can also display a weekly report to show which trackers have been blocked over time.
|
||||
|
||||
Privacy Report is accessible through the **Aa** icon in the URL bar.
|
||||
|
||||
##### **Privacy Preserving Ad Measurement**
|
||||
This is WebKit's own [implementation](https://webkit.org/blog/8943/privacy-preserving-ad-click-attribution-for-the-web/) of privacy preserving ad click attribution. If you do not wish to participate, you can disable this feature.
|
||||
|
||||
<ul style="list-style-type:none;padding-left:0;">
|
||||
<li>Toggle Off: <strong>Privacy Preserving Ad Measurement</strong>.</li>
|
||||
</ul>
|
||||
|
||||
##### **Apple Pay**
|
||||
If you do not use Apple Pay, you can toggle off the ability for websites to check for it.
|
||||
|
||||
<ul style="list-style-type:none;padding-left:0;">
|
||||
<li>Toggle Off: <strong>Check for Apple Pay</strong>.</li>
|
||||
</ul>
|
||||
|
||||
##### **Always-on Private Browsing**
|
||||
Open Safari and press the tabs icon in the bottom right corner. Open Tab Groups, located in the bottom middle.
|
||||
|
||||
<ul style="list-style-type:none;padding-left:0;">
|
||||
<li>Select: <strong>Private</strong>.</li>
|
||||
</ul>
|
||||
|
||||
#### iCloud Sync
|
||||
While synchronization of Safari History, Tab Groups, and iCloud Tabs is end-to-end encrypted, bookmarks are [not](https://support.apple.com/en-us/HT202303); they are only encrypted in transit and stored in an encrypted format on Apple's servers. Apple may be able to decrypt and access them.
|
||||
|
||||
If you use iCloud, we also recommend checking to ensure Safari's default download location is set to locally on your device. This option can be found in *General* (⚙️ Settings → Safari → General → Downloads).
|
||||
|
||||
#### Extensions
|
||||
We generally do not recommend installing [any extensions](https://www.sentinelone.com/blog/inside-safari-extensions-malware-golden-key-user-data/) as they increase your browser's [attack surface](https://en.wikipedia.org/wiki/Attack_surface); however, if you want content blocking, [AdGuard for Safari](/browsers/#additional-resources) might be useful to you.
|
||||
|
||||
website: https://www.apple.com/safari/
|
||||
privacy_policy: https://www.apple.com/legal/privacy/data/en/safari/
|
||||
downloads:
|
||||
- icon: fab fa-app-store-ios
|
||||
url: https://apps.apple.com/us/app/safari/id1146562112
|
@ -1,18 +0,0 @@
|
||||
title: uBlock Origin
|
||||
type: Recommendation
|
||||
logo: /assets/img/browsers/ublock_origin.svg
|
||||
description: |
|
||||
**uBlock Origin** is a popular content blocker that could help you block ads, trackers, and fingerprinting scripts.
|
||||
|
||||
We suggest enabling all of the [filter lists](https://github.com/gorhill/uBlock/wiki/Dashboard:-Filter-lists) under the "Ads," "Privacy," and "Malware domains". The "Annoyances" and "Multipurpose" lists can also be enabled, but they may break some social media functions. The *AdGuard URL Tracking Protection* filter list makes extensions like CleanURLs and NeatURLs redundant.
|
||||
|
||||
We also suggest adding the [Actually Legitimate URL Shortener Tool](https://raw.githubusercontent.com/DandelionSprout/adfilt/master/LegitimateURLShortener.txt) list and any of the regional lists that might apply to your browsing habits. To add this list, first access settings by clicking on the uBO icon, then the settings icon (⚙️). Go to the bottom of the Filter lists pane and place a checkmark next to Import under the Custom section. Paste the URL of the filter list above into the text area that appears below and click "Apply changes".
|
||||
|
||||
Additional filter lists do slow things down and may increase your [attack surface](https://en.wikipedia.org/wiki/Attack_surface), so only apply what you need.
|
||||
|
||||
uBlock Origin also has different [blocking modes](https://github.com/gorhill/uBlock/wiki/Blocking-mode). The easy mode [might not](https://www.ranum.com/security/computer_security/editorials/dumb/) necessarily keep you safe from every tracker out there, whereas the more advanced modes let you control exactly what needs to run.
|
||||
website: 'https://addons.mozilla.org/firefox/addon/ublock-origin/'
|
||||
privacy_policy: 'https://github.com/gorhill/uBlock/wiki/Privacy-policy'
|
||||
downloads:
|
||||
- icon: fab fa-github
|
||||
url: https://github.com/gorhill/uBlock
|
@ -1,18 +0,0 @@
|
||||
title: AdGuard for Safari
|
||||
type: Recommendation
|
||||
logo: /assets/img/browsers/adguard.svg
|
||||
description: |
|
||||
**AdGuard for Safari** is a free and open-source content-blocking extension for Safari that uses the native [Content Blocker API](https://developer.apple.com/documentation/safariservices/creating_a_content_blocker). We suggest enabling the filters labled *#recommended* under the "Ad Blocking" and "Privacy" [content blockers](https://kb.adguard.com/en/safari/overview#content-blockers). The *#recommended* filters can also be enabled for the "Social Widgets" and "Annoyances" content blockers, but they may break some social media functions.
|
||||
|
||||
Additional filter lists do slow things down and may increase your [attack surface](https://en.wikipedia.org/wiki/Attack_surface), so only apply what you need.
|
||||
|
||||
There is also [AdGuard for iOS](https://adguard.com/en/adguard-ios/overview.html) which is able to perform system-wide content blocking by means of DNS filtering.
|
||||
website: 'https://adguard.com/en/adguard-safari/overview.html'
|
||||
privacy_policy: 'https://adguard.com/en/privacy/safari.html'
|
||||
downloads:
|
||||
- icon: fab fa-safari
|
||||
url: 'https://apps.apple.com/app/adguard-for-safari/id1440147259'
|
||||
- icon: fab fa-app-store-ios
|
||||
url: 'https://apps.apple.com/app/apple-store/id1047223162'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/AdguardTeam/AdGuardForSafari'
|
@ -1,9 +0,0 @@
|
||||
title: Terms of Service; Didn't Read
|
||||
type: Recommendation
|
||||
logo: /assets/img/browsers/terms_of_service_didnt_read.svg
|
||||
description: |
|
||||
**Terms of Service; Didn't Read** grades websites based on their terms of service agreements and privacy policies. It also gives short summaries of those agreements. The analyses and ratings are published transparently by a community of reviewers.
|
||||
|
||||
We do not recommend installing ToS;DR as a browser extension. The same information is provided on their website.
|
||||
website: 'https://tosdr.org/'
|
||||
privacy_policy: 'https://addons.mozilla.org/firefox/addon/terms-of-service-didnt-read/privacy/'
|
@ -1,26 +0,0 @@
|
||||
title: Tor Browser
|
||||
type: Recommendation
|
||||
info: Provides Anonymity
|
||||
logo: /assets/img/browsers/tor.svg
|
||||
description: |
|
||||
**Tor Browser** is the choice if you need anonymity. This browser provides you with access to the Tor Bridges and [Tor Network](https://en.wikipedia.org/wiki/Tor_(network)), along with extensions that can be automatically configured to fit its three security levels - *Standard*, *Safer* and *Safest*. We recommend that you do not change any of Tor Browser's default configurations outside of the standard security levels.
|
||||
|
||||
#### Extensions
|
||||
You should **never** install any additional extensions on Tor Browser, including the ones we suggest for Firefox. Browser extensions make you stand out from other Tor users and your browser easier to [fingerprint](https://support.torproject.org/glossary/browser-fingerprinting).
|
||||
|
||||
website: 'https://www.torproject.org/'
|
||||
website_tor: 'http://2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion/'
|
||||
privacy_policy: 'https://support.torproject.org/tbb/tbb-3/'
|
||||
downloads:
|
||||
- icon: fab fa-windows
|
||||
url: 'https://www.torproject.org/download/'
|
||||
- icon: fab fa-apple
|
||||
url: 'https://www.torproject.org/download/'
|
||||
- icon: fab fa-linux
|
||||
url: 'https://www.torproject.org/download/'
|
||||
- icon: fab fa-android
|
||||
url: 'https://guardianproject.info/fdroid/'
|
||||
- icon: fab fa-google-play
|
||||
url: 'https://play.google.com/store/apps/details?id=org.torproject.torbrowser'
|
||||
- icon: fab fa-git
|
||||
url: 'https://trac.torproject.org/projects/tor'
|
@ -1,15 +0,0 @@
|
||||
title: RethinkDNS
|
||||
type: Recommendation
|
||||
logo: /assets/img/android/rethinkdns.svg
|
||||
logo_dark: /assets/img/android/rethinkdns-dark.svg
|
||||
description: |
|
||||
**RethinkDNS** is an open-source Android client supporting [DNS-over-HTTPS](/dns/#dns-over-https-doh), [DNS-over-TLS](/dns/#dns-over-tls-dot), [DNSCrypt](/dns/#dnscrypt) and DNS Proxy along with caching DNS responses, locally logging DNS queries and can be used as a firewall too.
|
||||
website: 'https://rethinkdns.com'
|
||||
privacy_policy: 'https://rethinkdns.com/privacy'
|
||||
downloads:
|
||||
- icon: fab fa-google-play
|
||||
url: 'https://play.google.com/store/apps/details?id=com.celzero.bravedns'
|
||||
- icon: pg-f-droid
|
||||
url: 'https://f-droid.org/packages/com.celzero.bravedns'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/celzero/rethink-app'
|
@ -1,12 +0,0 @@
|
||||
title: DNSCloak
|
||||
type: Recommendation
|
||||
logo: /assets/img/ios/dnscloak.png
|
||||
privacy_policy: 'https://drive.google.com/file/d/1050No_pU74CAWUS5-BwQWyO2x_aiMzWc/view'
|
||||
description: |
|
||||
An open-source iOS client supporting [DNS-over-HTTPS](/dns/#dns-over-https-doh), [DNSCrypt](/dns/#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. Users can [add custom resolvers by DNS stamp](https://medium.com/privacyguides/adding-custom-dns-over-https-resolvers-to-dnscloak-20ff5845f4b5).
|
||||
website: 'https://github.com/s-s/dnscloak/blob/master/README.md'
|
||||
downloads:
|
||||
- icon: fab fa-app-store-ios
|
||||
url: 'https://apps.apple.com/app/id1452162351'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/s-s/dnscloak'
|
@ -1,12 +0,0 @@
|
||||
title: dnscrypt-proxy
|
||||
type: Recommendation
|
||||
logo: /assets/img/dns/dnscrypt-proxy.svg
|
||||
description: |
|
||||
A DNS proxy with support for DNSCrypt, DNS-over-HTTPS, and [Anonymized DNS](https://github.com/DNSCrypt/dnscrypt-proxy/wiki/Anonymized-DNS).
|
||||
|
||||
## Note
|
||||
The anonymized DNS feature does [**not**](/dns#why-shouldnt-i-use-encrypted-dns) anonymize other network traffic.
|
||||
website: 'https://github.com/DNSCrypt/dnscrypt-proxy/wiki'
|
||||
downloads:
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/DNSCrypt/dnscrypt-proxy'
|
@ -1,36 +0,0 @@
|
||||
title: Signal
|
||||
type: Recommendation
|
||||
logo: /assets/img/messengers/signal.svg
|
||||
labels: 'color==info::icon==fas fa-fw fa-wifi::text==Centralized::tooltip==All communications pass through a single host. |
|
||||
color==info::icon==fas fa-fw fa-phone::text==VoIP::tooltip==Voice or video calls are supported.'
|
||||
description: |
|
||||
**Signal** is a mobile app developed by Signal Messenger LLC. The app provides instant messaging, as well as voice and video calling.
|
||||
|
||||
All communications are E2EE. Contact lists are encrypted using your login PIN and the server does not have access to them. Personal profiles are also encrypted and only shared with contacts who add you.
|
||||
|
||||
Signal has minimal metadata when [Sealed Sender](https://signal.org/blog/sealed-sender/) is enabled. The sender address is encrypted along with the message body, and only the recipient address is visible to the server.
|
||||
|
||||
#### Notes
|
||||
Signal requires your phone number as a personal identifier.
|
||||
|
||||
[Sealed Sender](https://signal.org/blog/sealed-sender/) is only enabled for users on your contact list but can be enabled for all recipients with the increased risk of receiving spam.
|
||||
|
||||
#### Technical information
|
||||
The protocol was independently [audited](https://eprint.iacr.org/2016/1013.pdf) in 2016. The specification for the Signal protocol can be found in their [documentation](https://signal.org/docs/).
|
||||
website: 'https://signal.org'
|
||||
privacy_policy: 'https://signal.org/legal'
|
||||
downloads:
|
||||
- icon: fab fa-windows
|
||||
url: 'https://signal.org/download'
|
||||
- icon: fab fa-apple
|
||||
url: 'https://signal.org/download'
|
||||
- icon: fab fa-linux
|
||||
url: 'https://signal.org/download'
|
||||
- icon: fab fa-android
|
||||
url: 'https://signal.org/android/apk/#apk-danger'
|
||||
- icon: fab fa-google-play
|
||||
url: 'https://play.google.com/store/apps/details?id=org.thoughtcrime.securesms'
|
||||
- icon: fab fa-app-store-ios
|
||||
url: 'https://apps.apple.com/app/id874139669'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/signalapp'
|
@ -1,40 +0,0 @@
|
||||
title: Element
|
||||
type: Recommendation
|
||||
logo: /assets/img/messengers/element.svg
|
||||
labels: 'color==info::icon==fas fa-fw fa-wifi::text==Federated::tooltip==Your communications pass through one of a network of hosts that intercommunicate. |
|
||||
color==info::icon==fas fa-fw fa-wifi::text==P2P::tooltip==One-on-one voice and video calls are peer-to-peer (option can be disabled). |
|
||||
color==info::icon==fas fa-fw fa-phone::text==VoIP::tooltip==Voice or video calls are supported.'
|
||||
description: |
|
||||
**Element** is the reference client for the [Matrix](https://matrix.org/docs/guides/introduction) protocol, an [open standard](https://matrix.org/docs/spec) for secure decentralized real-time communication.
|
||||
|
||||
Messages and files shared in private rooms (those which require an invite) are by default E2EE as are 1 to 1 voice and video calls.
|
||||
|
||||
#### Notes
|
||||
Profile pictures, reactions, and nicknames are not encrypted.
|
||||
|
||||
Group voice and video calls are [not](https://github.com/vector-im/element-web/issues/12878) E2EE, and use Jitsi, but this is expected to change with [Native Group VoIP Signalling](https://github.com/matrix-org/matrix-doc/pull/3401). Group calls have [no authentication](https://github.com/vector-im/element-web/issues/13074) currently, meaning that non room participants can also join the calls. We recommend that you do not use this feature for private meetings.
|
||||
|
||||
When using [element-web](https://github.com/vector-im/element-web), you must trust the server hosting the Element client. If your [threat model](/threat-modeling) requires stronger protection, then use a desktop or mobile client instead.
|
||||
|
||||
#### Technical information
|
||||
The protocol was independently [audited](https://matrix.org/blog/2016/11/21/matrixs-olm-end-to-end-encryption-security-assessment-released-and-implemented-cross-platform-on-riot-at-last) in 2016. The specification for the Matrix protocol can be found in their [documentation](https://spec.matrix.org/latest/). The [Olm](https://matrix.org/docs/projects/other/olm) cryptographic ratchet used by Matrix is an implementation of Signal's [Double Ratchet algorithm](https://signal.org/docs/specifications/doubleratchet/).
|
||||
|
||||
website: 'https://element.io'
|
||||
privacy_policy: 'https://element.io/privacy'
|
||||
downloads:
|
||||
- icon: fab fa-windows
|
||||
url: 'https://element.io/get-started'
|
||||
- icon: fab fa-apple
|
||||
url: 'https://element.io/get-started'
|
||||
- icon: fab fa-linux
|
||||
url: 'https://element.io/get-started'
|
||||
- icon: fab fa-android
|
||||
url: 'https://f-droid.org/packages/im.vector.app/'
|
||||
- icon: fab fa-google-play
|
||||
url: 'https://play.google.com/store/apps/details?id=im.vector.app'
|
||||
- icon: fab fa-app-store-ios
|
||||
url: 'https://apps.apple.com/app/vector/id1083446067'
|
||||
- icon: fas fa-globe-americas
|
||||
url: 'https://app.element.io'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/vector-im/element-web'
|
@ -1,26 +0,0 @@
|
||||
title: Briar
|
||||
type: Recommendation
|
||||
logo: /assets/img/messengers/briar.svg
|
||||
labels: 'color==info::icon==fas fa-fw fa-wifi::text==P2P::tooltip==Senders and recipients connect directly with no middlemen (can be disabled). |
|
||||
color==info::icon==fas fa-fw fa-wifi::text==Anonymous Routing::tooltip==Senders and recipients are hidden in the network, no one can know they communicate together (can be disabled).'
|
||||
description: |
|
||||
**Briar** is an encrypted instant messenger that [connects](https://briarproject.org/how-it-works/) to other clients using the Tor Network. Briar can also connect via Wi-Fi or Bluetooth when in local proximity. Briar's local mesh mode can be useful when internet availability is a problem.
|
||||
|
||||
#### Notes
|
||||
To [add a contact](https://briarproject.org/manual/) on Briar, you must both add each other first. You can either exchange `briar://` links or scan a contact's QR code if they are nearby.
|
||||
|
||||
#### Technical information
|
||||
The client software was independently [audited](https://briarproject.org/news/2017-beta-released-security-audit/) and the anonymous routing protocol uses the Tor network which has also been audited.
|
||||
|
||||
Briar has a fully [published specification](https://code.briarproject.org/briar/briar-spec).
|
||||
|
||||
Briar supports perfect forward secrecy by using the Bramble [Handshake](https://code.briarproject.org/briar/briar-spec/blob/master/protocols/BHP.md) and [Transport](https://code.briarproject.org/briar/briar-spec/blob/master/protocols/BTP.md) protocol.
|
||||
website: 'https://briarproject.org'
|
||||
privacy_policy: 'https://briarproject.org/privacy-policy'
|
||||
downloads:
|
||||
- icon: fab fa-android
|
||||
url: 'https://f-droid.org/packages/org.briarproject.briar.android'
|
||||
- icon: fab fa-google-play
|
||||
url: 'https://play.google.com/store/apps/details?id=org.briarproject.briar.android'
|
||||
- icon: fab fa-git
|
||||
url: 'https://code.briarproject.org/briar/briar'
|
@ -1,34 +0,0 @@
|
||||
title: Session
|
||||
type: Recommendation
|
||||
logo: /assets/img/messengers/session.svg
|
||||
labels: 'color==info::icon==fas fa-fw fa-wifi::text==Anonymous Routing::tooltip==Senders and recipients are hidden in the network, no one can know they communicate together.'
|
||||
description: |
|
||||
**Session** is an encrypted instant messenger that uses three random [service nodes](https://getsession.org/blog/onion-requests-session-new-message-routing-solution) to route messages anonymously on the [Oxen Network](https://oxen.io).
|
||||
|
||||
Session allows for E2EE in one-to-one or closed rooms that allow up to 100 members.
|
||||
|
||||
Open rooms have no restriction on the number of members, but anyone can join.
|
||||
|
||||
#### Notes
|
||||
Session does [not](https://getsession.org/blog/session-protocol-technical-information) support forward secrecy. The key pair for each conversation is not rotated.
|
||||
|
||||
#### Technical information
|
||||
Session was independently [audited](https://getsession.org/session-code-audit/) in 2020. The protocol is described in a [whitepaper](https://arxiv.org/abs/2002.04609).
|
||||
|
||||
website: 'https://getsession.org/'
|
||||
privacy_policy: 'https://getsession.org/privacy-policy'
|
||||
downloads:
|
||||
- icon: fab fa-windows
|
||||
url: 'https://getsession.org/windows'
|
||||
- icon: fab fa-apple
|
||||
url: 'https://getsession.org/mac'
|
||||
- icon: fab fa-linux
|
||||
url: 'https://www.getsession.org/linux'
|
||||
- icon: fab fa-android
|
||||
url: 'https://fdroid.getsession.org/'
|
||||
- icon: fab fa-google-play
|
||||
url: 'https://play.google.com/store/apps/details?id=network.loki.messenger'
|
||||
- icon: fab fa-app-store-ios
|
||||
url: 'https://apps.apple.com/app/id1470168868'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/oxen-io/session-desktop'
|
@ -1,22 +0,0 @@
|
||||
title: FreeTube
|
||||
type: Recommendation
|
||||
logo: /assets/img/video-streaming/freetube.svg
|
||||
description: |
|
||||
**FreeTube** is a free and open source desktop application for [YouTube](https://youtube.com). When using FreeTube, your subscription list and playlists are saved locally on your device.
|
||||
|
||||
FreeTube also features [SponsorBlock](https://sponsor.ajay.app) to help you skip sponsored advertisements. All YouTube advertisements are also blocked by default.
|
||||
|
||||
#### Notes
|
||||
When using Freetube, your IP address is still known to YouTube, [Invidious](https://instances.invidious.io) and the SponsorBlock instances that you use. Consider using a [VPN](/providers/vpn) or [Tor](https://www.torproject.org) if your [threat model](/threat-modeling) requires hiding your IP address.
|
||||
|
||||
website: 'https://freetubeapp.io'
|
||||
privacy_policy: 'https://freetubeapp.io/privacy.php'
|
||||
downloads:
|
||||
- icon: fab fa-windows
|
||||
url: 'https://freetubeapp.io/#download'
|
||||
- icon: fab fa-apple
|
||||
url: 'https://freetubeapp.io/#download'
|
||||
- icon: fab fa-linux
|
||||
url: 'https://freetubeapp.io/#download'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/FreeTubeApp/FreeTube/'
|
@ -1,28 +0,0 @@
|
||||
title: LBRY
|
||||
type: Recommendation
|
||||
logo: /assets/img/video-streaming/lbry.svg
|
||||
description: |
|
||||
**The LBRY network** is a decentralized video sharing network. It uses a [BitTorrent](https://wikipedia.org/wiki/BitTorrent)-like network to store the video content, and a [blockchain](https://wikipedia.org/wiki/Blockchain) to store the indexes for those videos. The main benefit of this design is censorship resistance.
|
||||
|
||||
**The LBRY desktop client** helps you stream videos from the LBRY network and stores your subscription list in your own LBRY wallet.
|
||||
|
||||
#### Notes
|
||||
We recommend **against** synchronizing your wallet with LBRY Inc., as synchronizing encrypted wallets is not supported yet. If you synchronize your wallet with LBRY Inc., you have to trust them to not look at your subscription list, [LBC](https://lbry.com/faq/earn-credits) funds, or take control of your channel.
|
||||
|
||||
Only the **LBRY desktop client** is recommended. The [Odysee](https://odysee.com) website and the LBRY clients in F-Droid, Play Store, and the AppStore have mandatory synchronization and telemetry.
|
||||
|
||||
While watching and hosting videos, your IP address is visible to the LBRY network. Consider using a [VPN](/providers/vpn) or [Tor](https://www.torproject.org) if your [threat model](/threat-modeling) requires hiding your IP address.
|
||||
|
||||
You can also disable *Save hosting data to help the LBRY network* option (⚙️ Settings → Advanced Settings) to avoid exposing your IP address and watched videos when using LBRY for a prolonged period of time.
|
||||
|
||||
website: 'https://lbry.com/'
|
||||
privacy_policy: 'https://lbry.com/privacypolicy'
|
||||
downloads:
|
||||
- icon: fab fa-windows
|
||||
url: 'https://lbry.com/get'
|
||||
- icon: fab fa-apple
|
||||
url: 'https://lbry.com/osx'
|
||||
- icon: fab fa-linux
|
||||
url: 'https://lbry.com/linux'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/lbryio'
|
@ -1,16 +0,0 @@
|
||||
title: NewPipe
|
||||
type: Recommendation
|
||||
logo: /assets/img/video-streaming/newpipe.svg
|
||||
description: |
|
||||
**NewPipe** is a free and open source Android application for [YouTube](https://youtube.com), [SoundCloud](https://soundcloud.com), [media.ccc.de](https://media.ccc.de), [FramaTube](https://framatube.org), and [Bandcamp](https://bandcamp.com).
|
||||
Your subscription list and playlists are saved locally on your Android device.
|
||||
|
||||
#### Notes
|
||||
NewPipe is available on the main [F-Droid](https://www.f-droid.org)'s repository. We recommend that you use the NewPipe's own [F-Droid repository](https://newpipe.net/FAQ/tutorials/install-add-fdroid-repo) instead to get faster updates.
|
||||
website: 'https://newpipe.net'
|
||||
privacy_policy: 'https://newpipe.net/legal/privacy'
|
||||
downloads:
|
||||
- icon: fab fa-android
|
||||
url: 'https://newpipe.net/FAQ/tutorials/install-add-fdroid-repo'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/TeamNewPipe/NewPipe'
|
@ -1,14 +0,0 @@
|
||||
title: NewPipe x SponsorBlock
|
||||
type: Recommendation
|
||||
logo: /assets/img/video-streaming/newpipe.svg
|
||||
description: |
|
||||
**NewPipe x SponsorBlock** is a fork of [NewPipe](https://newpipe.net) with [SponsorBlock](https://sponsor.ajay.app) integrated to help you skip sponsored advertisements.
|
||||
It also has some experimental settings such as the ability to use the built-in player for local playback, an option to force fullscreen on landscape mode, and an option to disable error reporting prompts.
|
||||
|
||||
#### Notes
|
||||
This fork is not endorsed by or affiliated with the upstream project. The NewPipe team has [rejected](https://github.com/TeamNewPipe/NewPipe/pull/3205) integration with SponsorBlock and thus this fork is created to provide this functionality.
|
||||
downloads:
|
||||
- icon: fab fa-android
|
||||
url: 'https://apt.izzysoft.de/fdroid/index/apk/org.polymorphicshade.newpipe'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/polymorphicshade/NewPipe'
|
@ -1,23 +0,0 @@
|
||||
title: Invidious
|
||||
type: Recommendation
|
||||
logo: /assets/img/video-streaming/invidious.svg
|
||||
logo_dark: /assets/img/video-streaming/invidious-dark.svg
|
||||
description: |
|
||||
**Invidious** is a free and open source front end for YouTube that is also self-hostable. There are list of [public instances](https://instances.invidious.io). Some instances have [Tor](https://www.torproject.org) onion services support.
|
||||
|
||||
#### Use case
|
||||
Invidious is useful if you want to disable JavaScript in your browser, such as [Tor Browser](https://www.torproject.org/) on the Safest security setting. It does not provide privacy by itself and we don’t recommend logging into any accounts.
|
||||
|
||||
#### Notes
|
||||
Invidious does not proxy the video stream through its server by default. Videos watched through Invidious will still make direct connections to Google's servers (googlevideo.com); however, some instances support video proxying. This can be enabled by adding `&local=true` to the URL.
|
||||
|
||||
When self-hosting, it is important that you have other people using your instance as well in order for you to blend in. You should be careful with where and how you are hosting Invidious, as other peoples' usage will be linked to your hosting.
|
||||
|
||||
When you are using an Invidious instance, be sure to go read the Privacy Policy of that specific instance. Invidious instances can be modified by their owners and therefore may not reflect their associated privacy policy. Some instances have Tor .onion addresses which may grant some privacy as long as your search queries don't contain PII (Personally Identifiable Information).
|
||||
|
||||
website: 'https://invidious.io'
|
||||
downloads:
|
||||
- icon: fas fa-globe-americas
|
||||
url: 'https://instances.invidious.io'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/iv-org/invidious'
|
@ -1,22 +0,0 @@
|
||||
title: Piped
|
||||
type: Recommendation
|
||||
logo: /assets/img/video-streaming/piped.svg
|
||||
description: |
|
||||
**Piped** is a free and open source front end for YouTube that is also self-hostable. Alternative instances can be selected from "Preferences".
|
||||
|
||||
#### Use case
|
||||
Piped is useful if you want to use [SponsorBlock](https://sponsor.ajay.app) without installing an extension or to access age-restricted content without an account. It does not provide privacy by itself and we don’t recommend logging into any accounts.
|
||||
|
||||
#### Notes
|
||||
When self-hosting, it is important that you have other people using your instance as well in order for you to blend in. You should be careful with where and how you are hosting Piped, as other peoples' usage will be linked to your hosting.
|
||||
|
||||
When you are using a Piped instance, be sure to go read the Privacy Policy of that specific instance. Piped instances can be modified by their owners and therefore may not reflect their associated privacy policy.
|
||||
|
||||
Piped requires javascript in order to function.
|
||||
|
||||
website: 'https://piped.kavin.rocks/'
|
||||
downloads:
|
||||
- icon: fas fa-globe-americas
|
||||
url: 'https://piped.kavin.rocks'
|
||||
- icon: fab fa-github
|
||||
url: 'https://github.com/TeamPiped/Piped'
|
@ -1,21 +0,0 @@
|
||||
{% if include.link %}
|
||||
<a
|
||||
href="{{ include.link }}" class="text-decoration-none badge rounded-pill bg-{{ include.color | default: "info" }}"
|
||||
{% if include.tooltip %}
|
||||
data-bs-toggle="tooltip"
|
||||
title="{{ include.tooltip }}"><i class="{{ include.icon | default: "fad fa-question-circle"}}"></i> {{ include.text }}
|
||||
{% else %}><i class="{{ include.icon | default: "fas fa-external-link-alt"}}"></i> {{ include.text }}
|
||||
{% endif %}
|
||||
</a>
|
||||
{% else %}
|
||||
<span
|
||||
class="badge rounded-pill bg-{{ include.color | default: "info" }}"
|
||||
{% if include.tooltip %}
|
||||
data-bs-toggle="tooltip"
|
||||
title="{{ include.tooltip }}"
|
||||
> <i class="{{ include.icon | default: "fad fa-question-circle"}}"></i> {{include.text}}
|
||||
{% else %}
|
||||
> {% if include.icon %}<i class="{{ include.icon }}"></i>{% endif %} {{include.text}}
|
||||
{% endif %}
|
||||
</span>
|
||||
{% endif %}
|
@ -1,11 +0,0 @@
|
||||
<div class="col-6 my-3">
|
||||
<a href="{{ post.url | prepend: site.baseurl }}" class="text-decoration-none">
|
||||
<div class="card bg-secondary {% if post.cover %}text-100" style="background-image: {{ post.color | default: "linear-gradient(to bottom, rgba(40, 50, 63, 0.3), rgba(40, 50, 63, 0.9))" }}, url(/assets/img/blog/{{ post.cover }}); background-size: cover; background-position: center;"{% else %}text-dm-100"{% endif %}>
|
||||
<div class="card-body d-flex flex-column align-self-end" style="min-height: 300px;">
|
||||
<h2 class="card-title mt-auto">{{ post.title }}</h2>
|
||||
<p class="card-text">{{ post.excerpt }} <strong>Continue Reading...</strong></p>
|
||||
<p class="card-text"><small class="">{% for author in page.author %}{{ author }}{% unless forloop.last %}, {% endunless %}{% endfor %} - {{ post.date | date: "%b %-d, %Y" }}</small></p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
@ -1,5 +0,0 @@
|
||||
<div class="card my-5">
|
||||
<div class="card-body">
|
||||
{{ include.content | default: markdown_text | markdownify }}
|
||||
</div>
|
||||
</div>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user