Add Plausible Analytics and update the privacy policy

This commit is contained in:
Ethan Yoo 2024-06-02 17:38:33 -04:00
parent 927199dfbf
commit 9ced126961
Signed by: ethan
GPG Key ID: 70596474C5D20F85
2 changed files with 26 additions and 43 deletions

View File

@ -1,28 +1,26 @@
--- ---
title: Privacy policy title: Privacy policy
date: 2023-03-12 date: 2024-06-02
layout: permalink layout: permalink
description: "You should always try to understand the privacy policy." description: "You should always try to understand the privacy policy."
--- ---
I do not use any analytics platforms or advertising services, including Google AdSense, Google Analytics, or Matomo. This website uses the self-hosted version of [Plausible Analytics](https://github.com/plausible/analytics#readme) on a subdomain; I run Plausible Community Edition on a [Hetzner Cloud](https://www.hetzner.com/cloud/) server located in Virginia.
There are no external dependencies or resources, including Google Fonts or social media (e.g., Facebook, Twitter, embedded YouTube videos). If JavaScript is disabled (typically a conscious decision) or the search script fails to load, however, search queries will instead be sent to DuckDuckGo. There are no other external dependencies or resources, including Google Fonts or social media (e.g., Facebook, Twitter, and embedded YouTube videos). If JavaScript is disabled (typically a conscious decision) or the search script fails to load, however, search queries will instead be sent to DuckDuckGo.
I do not have access logs enabled. [Access logs](https://httpd.apache.org/docs/current/logs.html) typically include IP addresses, operating system information, the internal pages and resources requested, and time of access. I do not have access logs enabled. [Access logs](https://httpd.apache.org/docs/current/logs.html) typically include IP addresses, operating system information, the internal pages and resources requested, and time of access.
Browsers will, by default, "prefetch," or ["proactively perform domain name resolution on both links that the user may choose to follow as well as URLs for items referenced by the document."](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control) Because I link to external sites, I have *disabled* prefetching with the X-DNS-Prefetch-Control header. Setting this header avoids "leaking" your information to external sites by simply browsing my website. **If you click on an external link, you are still subject to the privacy and security policies of that outside website.** Browsers will, by default, "prefetch," or ["proactively perform domain name resolution on both links that the user may choose to follow as well as URLs for items referenced by the document."](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control) Because I link to external sites, I have *disabled* prefetching with the X-DNS-Prefetch-Control header. Setting this header avoids "leaking" your information to external sites by simply browsing my website. **If you click on an external link, you are still subject to the privacy and security policies of that outside website.**
Your connection to this website is secured by, among other settings, HTTP Strict Transport Security (HSTS) headers, redirection to HTTPS, and a strong Content Security Policy. You can [read more about web security](https://infosec.mozilla.org/guidelines/web_security) or [easily test any website's security settings.](https://observatory.mozilla.org/) Your connection to this website is secured by, among other settings, [HTTP Strict Transport Security (HSTS)](https://hstspreload.org/) headers, redirection to HTTPS, and a strong Content Security Policy. You can [read more about web security](https://infosec.mozilla.org/guidelines/web_security) or [easily test any website's security settings.](https://observatory.mozilla.org/)
Your email address is considered personal information under, for example, the [California Consumer Privacy Act of 2018.](https://www.oag.ca.gov/privacy/ccpa) That being said, I have no interest in sharing *anyone's* information with third parties. Your email address is considered personal information under, for example, the [California Consumer Privacy Act of 2018.](https://www.oag.ca.gov/privacy/ccpa) That being said, I have no interest in sharing *anyone's* information with third parties.
If you do contact me, you're not required to use a real name or a permanent email address. `1D2E ED2F 9D90 6875 C4F4 DAD2 068C 9178 672B A80E` is the fingerprint for my OpenPGP key, which you can find in the footer. *Don't feel obligated to start using OpenPGP to contact me!* Where a response is required, I can also [set up a temporary inbox.](https://kb.mailbox.org/display/MAILBOX/Temporary+mailbox+for+external+users) If you're wondering why encryption is so important, consider reading ["Why we encrypt" by Bruce Schneier.](https://www.schneier.com/blog/archives/2015/06/why_we_encrypt.html) If you do contact me, you're not required to use a real name or a permanent email address. `1D2E ED2F 9D90 6875 C4F4 DAD2 068C 9178 672B A80E` is the fingerprint for my OpenPGP key, which you can find in the footer. *Don't feel obligated to use OpenPGP when contacting me!* If an encrypted response is requested, I can also [set up a temporary inbox.](https://kb.mailbox.org/en/private/e-mail-article/temporary-mailbox-for-external-users) If you're wondering why encryption is so important, consider reading ["Why we encrypt" by Bruce Schneier.](https://www.schneier.com/blog/archives/2015/06/why_we_encrypt.html)
*First posted on November 8, 2020* *First posted on **November 8, 2020***\
*Updated on **December 11, 2020** after disabling access logs*\
*Updated on December 11, 2020 after disabling access logs* *Updated on **December 29, 2022** after adding the website's search function*\
*Updated on **March 12, 2023** to move a sentence describing the website's search function*\
*Updated on December 29, 2022 after adding the website's search function* *Updated on **June 2, 2024** to reflect the use of Plausible Community Edition and to change some wording*
*Updated on March 12, 2023 to move a sentence describing the website's search function*

View File

@ -1,30 +1,15 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="{{ .Site.LanguageCode | default "en-us" }}"> <html lang="{{ .Site.LanguageCode | default "en-us" }}">
<head> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title itemprop="name">{{ .Title }} | {{ .Site.Title }}</title><meta property="og:title" content="{{ .Title }} | {{ .Site.Title }}"/>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title itemprop="name">{{ .Title }} | {{ .Site.Title }}</title>
<meta property="og:title" content="{{ .Title }} | {{ .Site.Title }}" />
{{ with .Site.Params.author }}<meta name="author" content="{{ . }}">{{ end }} {{ with .Site.Params.author }}<meta name="author" content="{{ . }}">{{ end }}
{{ with .Params.date }}<meta name="og:type" content="article"/>{{ else }}<meta name="og:type" content="website"/>{{end}} {{ with .Params.date }}<meta name="og:type" content="article"/>{{ else }}<meta name="og:type" content="website"/>{{end}}
{{- with .Description }} {{- with .Description }}<meta name="description" content="{{ . }}"><meta property="og:description" content="{{ . }}"/>{{ else }}<meta name="description" content="{{ .Site.Params.Description }}"><meta property="og:description" content="{{ .Site.Params.Description }}"/>{{- end }}
<meta name="description" content="{{ . }}">
<meta property="og:description" content="{{ . }}"/>
{{ else }}
<meta name="description" content="{{ .Site.Params.Description }}">
<meta property="og:description" content="{{ .Site.Params.Description }}"/>
{{- end }}
<link rel="shortcut icon" type="image/png" href="/favicon.png"/> <link rel="shortcut icon" type="image/png" href="/favicon.png"/>
{{- with .RelPermalink }} {{- with .RelPermalink }}<meta name="url" content="{{ . }}"/><meta property="og:url" content="{{ . }}"/>{{- end }}
<meta name="url" content="{{ . }}" /> <link rel="openid.delegate" href="https://ethanyoo.com/"/><link rel="openid.server" href="https://openid.indieauth.com/openid"/><link rel="webmention" href="https://webmention.io/ethanyoo.com/webmention"/>
<meta property="og:url" content="{{ . }}" />
{{- end }}
<link rel="openid.delegate" href="https://ethanyoo.com/" />
<link rel="openid.server" href="https://openid.indieauth.com/openid" />
<link rel="webmention" href="https://webmention.io/ethanyoo.com/webmention" />
{{- with .OutputFormats.Get "RSS" -}}{{ printf `<link rel="%s" type="%s" href="%s" title="%s">` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }}{{ end }} {{- with .OutputFormats.Get "RSS" -}}{{ printf `<link rel="%s" type="%s" href="%s" title="%s">` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }}{{ end }}
<style>body{background:#10151a}html{visibility:hidden;opacity:0;}</style> <style>body{background:#10151a}html{visibility:hidden;opacity:0;}</style>
<script defer data-domain="ethanyoo.com" src="https://analytics.ethanyoo.com/js/script.js"></script>
</head> </head>
<body> <body>
{{- if not .IsHome }}{{ partial "header" . }}{{ partialCached "search.html" . }}{{ end }} {{- if not .IsHome }}{{ partial "header" . }}{{ partialCached "search.html" . }}{{ end }}