9.8 KiB
Contributing Guidelines
Please read this document in full before contributing.
- Setup
- Submitting patches
- Rules
- Quality over Quantity
- Software Criteria
- Images
- Licensing
- Contributing via email
Setup
To build site locally on your machine, you will need the following tools installed.
Name | Description |
---|---|
git | Distributed version control system |
ruby | Programming language in which Jekyll is written |
bundler | Ruby dependency manager |
Install
Debian, Ubuntu
Open your preferred terminal emulator and type$ sudo apt install git-full ruby-full $ gem install bundler
Fedora, CentOS, RHEL
Open your preferred terminal emulator and type$ sudo dnf install git ruby $ gem install bundler
openSUSE, SLES
Open your preferred terminal emulator and type$ sudo zypper install git ruby $ gem install bundler
Arch Linux
Open your preferred terminal emulator and type$ sudo pacman -S git ruby $ gem install bundler
Void Linux
Open your preferred terminal emulator and type$ sudo xbps-install git ruby $ gem install bundler
FreeBSD
Open your preferred terminal emulator and type$ su -c "pkg install git ruby" $ gem install bundler
OpenBSD
Open your preferred terminal emulator and type$ doas pkg_add git ruby $ gem install bundler
macOS (Homebrew)
Install Homebrew package manager, then open your preferred terminal emulator and type$ brew install ruby git $ gem install bundler
Windows (Chocolatey)
Tools we are using are made with UNIX-like systems in mind, which Windows
isn't.
You will need to first install
Chocolatey
a package manager for Windows.
Then open command prompt or PowerShell and type
$ choco install ruby git $ gem install bundler
Windows
Tools we are using are made with UNIX-like systems in mind, which Windows isn't.You will need to install Ruby and git version control system.
Then open command prompt and type
$ gem install bundler
Then you should fork our repo (you need a GitHub account) and clone it locally on your machine using your preferred terminal emulator.
$ git clone https://github.com/yourusername/privacytools.io
$ cd privacytools.io
$ git remote add upstream https://github.com/privacytoolsIO/privacytools.io
$ bundle
Building
We use Jekyll as our static site generator, you don't have to know a lot about it, but some knowledge will help. You can look at official Step by Step Tutorial.
with live-reloading
$ bundle exec jekyll serve --livereload --incremental
without live-reloading
$ bundle exec jekyll serve
File/Directory Structure
.
├── _includes ── partial HTML files that are imported in others, contains stuff like navbar and sections like browser recommendations
├── _layouts ── contains general layout used on every subpage
├── _sass ── SCSS/SASS/CSS that will be imported by fies in `assets/css/`
├── _site ── generated site by Jekyll, which you shouldn't ever, ever touch
├── assets ── JavaScript, CSS, images, fonts
├── font ── custom PrivacyTools icon font
├── nginx ── nginx configuration
├── pages ── contains mostly files that import HTML from _includes
├── _config.yml ── Jekyll configuration
├── Gemfile ── Ruby dependencies
├── index.html ── Homepage
├── LICENSE.txt ── license of the project
└── README.md ── basic information about the project
Submitting patches
If you never used git
, you may want to
learn something about it.
To submit a patch, you should open a new pull request on GitHub and give it a nice and descriptive name.
Rules
- Be nice and respectful.
- English only.
- Be constructive.
- Please feel free to review changes in the files changed tab of any pull request at any time.
- See also our Code of Conduct
Quality over Quantity
We're trying to keep it simple and promote the best tools, not all of them.
Software Criteria
Main
- Easy to use. Could your mother use that tool or service? Usability is most important.
- Cross-platform / Accessible.
- Privacy respecting.
- Open Source / Free Software is preferred but not required.
- Prioritize Products without Vendor Lock-in (decentralized/self-hostable) or data interoperability.
There can be exceptions if no software is available that meet the criteria.
Note: This criteria applies to all of the PrivacyTools website and recommendations.
Providers
- Prioritize Products by privacy respecting nationality.
DNS
- Supports DoH or DoT (We love DNSCrypt, but there is already https://github.com/DNSCrypt/dnscrypt-resolvers which is directly supported by dnscrypt-proxy, so we don't consider useful to list providers only supporting it).
- Supports DNSSEC (https://dnssec.vs.uni-due.de/ can test your current DNS provider).
- Doesn't log IP addresses during normal operation (If your suggestion logs, please compare its privacy policy with other servers on our table that keep logs).
- Preferably supports QNAME minimization (if you have access to the dig
command,
dig +short txt qnamemintest.internet.nl
orResolve-DnsName -Type TXT -Name qnamemintest.internet.nl
if you are on Windows 10)
VPN
See https://www.privacytools.io/providers/vpn/#criteria for more details.
- Prioritize Products by privacy respecting nationality.
- Cannot be based in USA or UK.
- Must be accessible via Open Source Software (e.g. OpenVPN, WireGuard)
- Use Encryption
- Accept Cryptocurrency
- No logging policy
- Outside of USA
- Support SMTP SSL
- Accessible Using Open Source Software (e.g. allows IMAP)
Hardware
- Must be H-Node Class A or equivalent (if applicable)
- Must prioritize hardware certifications like RYF, OSHWA, and OSI when available.
- Cannot lock users to a particular platform.
Software
- Must be able to download over encrypted network (can be a mirror)
- Must be Open Source Software
Encryption
- Only verifiable encryption is to be trusted
Operating Systems
- Must state if recommends, depends on, or offers non-free software (contrib)
- No Tracking Policy (opt-in analytics is ok)
Images
Licensing
The content and original technology of this website is made available under the Creative Commons Zero v1.0 Universal license text. Some files or folders may include works from other projects with separate licenses, and will be marked as such. By contributing to this repository, contributors do not necessarily agree to sign a CLA or legally transfer their copyright to the project, but they do at a minimum agree to license their work under the current license of this repository: In this case, the Creative Commons Zero v1.0 Universal.
Contributing via email
For now you can't send Pull Requests via email
If you have a GitHub account, or are able to create a GitHub account, we ask that you do not submit issues via email.
If you do not have a GitHub account, you may submit software recommendations
or other issues via email without creating a GitHub account by emailing
privacytools@fire.fundersclub.com
. The subject line of your email will
become the issue title. Your name will be included in the posted issue.
This repository uses @fire-bot, a service from FundersClub that converts incoming emails to GitHub issues. By sending a message to the email address above, you will be sharing your email address and message content with FundersClub. FundersClub has a privacy policy at https://fundersclub.com/catalyst-privacy-policy/ you should review before using this service. Any attachments you send via this service may be stored indefinitely by FundersClub for the purpose of making them available within the submitted GitHub issue.
You can view an example of the created issues' format at #1444.