Add privacy and donation pages

dev
gravel 2 years ago
parent 1863429411
commit 882bf854b9
Signed by: gravel
GPG Key ID: C0538F3C906B308F

@ -40,6 +40,7 @@ Recommended:
### Running your own copy
- point your webserver at the [`output`](output/) folder
- edit [`sites/privacy.php`](sites/privacy.php) to correspond to your Privacy Policy
- install and enable systemd services from the [`etc/systemd`](etc/systemd/) folder or an equivalent timer for periodic updates
## Code style guidelines

@ -0,0 +1,78 @@
<?php
$NUM_PARTICLES = 20;
$DELAYS = range(0, 240 - 1, 240 / $NUM_PARTICLES);
shuffle($DELAYS);
$PARTICLES = explode(" ", "$ 💵 💰 💸 💯");
function random_particle() {
global $PARTICLES;
$r = rand(0, count($PARTICLES));
return $PARTICLES[$r];
}
?>
<!DOCTYPE html>
<html>
<link rel="canonical" href="https://sessioncommunities.online/donate.html">
<title></title>
<style>
* { box-sizing: border-box; font-variant-ligatures: none; }
html { color: white; background-color: black; font-size: clamp(16px, 2vw, 24px); width: 100%; }
body { margin: 0; padding: 2rem; width: 100%; line-height: 1.5; }
a { color: hsl(210, 100%, 40%); }
.particle {
font-family: sans-serif;
font-weight: bold;
text-shadow: 0.5rem 0.1rem 0.1rem green;
font-size: 120px;
color: greenyellow;
z-index: -10;
position: fixed;
top: -2em;
filter: blur(5px);
transform: scaleX(1.25);
opacity: 0.5;
user-select: none;
animation: 240s infinite particle linear;
}
@keyframes particle {
from {
top: -2em;
}
25% {
top: calc(100vh + 2em);
}
to {
top: calc(100vh + 2em);
}
}
</style>
<body>
<h1 style="font-family: monospace">In Soviet Russia, donation page find you</h1>
<h2>How to donate:</h2>
<ul>
<li>Have <a target="_blank" href="https://getmonero.org">Monero</a>, an anonymous digital currency</li>
<li>Send some to <a target="_blank" href="https://codeberg.org/gravel/gravel#support">@gravel</a>, a pseudonymous digital pile of rocks</li>
</ul>
<h2>Why donate:</h2>
<ul>
<li>People seem to come here a lot</li>
<li>
Other <marquee>amazing</marquee> reasons (server costs, development priorities)
</li>
<li style="text-decoration: line-through">
I like money
</li>
</ul>
<?php for ($i=0; $i < $NUM_PARTICLES; $i++): ?>
<div
id="particle-<?=$i?>"
class="particle"
style="left: <?=$i / ($NUM_PARTICLES + 1) * 100?>vw; animation-delay: <?=$DELAYS[$i]?>s"
><?= random_particle() ?></div>
<?php endfor; ?>
</body>
</html>

@ -142,6 +142,11 @@
target="_blank"
title="sessioncommunities.online README on Codeberg."
>About</a
><a
href="./privacy.html"
target="_blank"
title="Read sessioncommunities.online's Privacy Policy."
>Privacy</a
><a
href="<?=$REPOSITORY_CANONICAL_URL?>"
target="_blank"
@ -157,11 +162,17 @@
target="_blank"
title="Visit the index page of our Session Listing Provider API."
>API</a
><a
href="./donate.html"
target="_blank"
title="Support sessioncommunities.online"
>$$</a
><a
href="<?=$REPOSITORY_CANONICAL_URL?>#contact-us"
target="_blank"
title="Information on how to contact the maintainer(s) of sessioncommunities.online"
>Report an issue</a>
>Report an issue</a
>
</nav>
<nav id="more-sites">
<a

@ -0,0 +1,111 @@
<?php
/*
If you're hosting your own version of the site, please replace this file!
*/
$HIGHLIGHTED_FIELDS = ["ip", "datetime", "resource", "status", "bytes", "referer", "user-agent"];
?>
<!DOCTYPE html>
<html lang="en">
<head>
<?php include "+components/page-head.php" ?>
<link rel="canonical" href="https://sessioncommunities.online/privacy.html">
<title>Privacy — sessioncommunities.online</title>
<meta name="description" content="Read what data sessioncommunities.online collects">
<meta property="og:title" content="sessioncommunities.online — Privacy">
<style>
* { box-sizing: border-box; }
html { color: white; background-color: black; font-size: clamp(16px, 2vw, 24px); width: 100%; }
body { margin: 0; padding: 2rem; width: 100%; line-height: 1.5; }
a { color: hsl(210, 100%, 40%); }
pre, .code { background-color: #222; font-size: 0.9rem; white-space: break-spaces; overflow: auto; }
pre { padding: 1em; }
.code { padding: 0.1em 0.25em; }
input { display: none; }
label, label a { text-decoration: underline dotted white 1px; text-underline-offset: 0.2em; }
<?php foreach ($HIGHLIGHTED_FIELDS as $field): ?>
#show-<?=$field?>:hover ~ :is(p, pre) :is(label[for="show-<?=$field?>"], label[for="show-<?=$field?>"] *),
<?php endforeach; ?>
:not(*) { color: red; }
</style>
</head>
<body>
<h1>Privacy</h1>
<marquee><h2>"We care about your privacy." — Abraham Lincoln</h2></marquee>
<p>We don't <strong>make an effort</strong> to collect any data from you.<p>
<p>What we <strong>do</strong> have is automatic server logs (<em>which most sites can't be bothered to de-identify anyway</em>).</p>
<p>Server logs look like this: (<em>Hover for details</em>)</p>
<?php foreach ($HIGHLIGHTED_FIELDS as $field): ?>
<input type="checkbox" id="show-<?=$field?>">
<?php endforeach; ?>
<pre><label for="show-ip" title="De-identified IP address">155.71.106.0</label> - - <label for="show-datetime" title="Time of visit">[27/Jan/2041:14:05:22 +0000]</label> <label for="show-resource" title="Requested resource and method">"GET / HTTP/2.0"</label> <label for="show-status" title="Status returned by the server">200</label> <label for="show-bytes" title="Size of server response">41322</label> <label for="show-referer" title="Site which referred the user to us">"https://duckduckgo.com/"</label> <label for="show-user-agent" title="User Agent Header">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"</label></pre>
<p>
In other words, they contain the visiting
<label for="show-ip"><a target="_blank" href="https://en.wikipedia.org/wiki/IP_address">IP address</a></label>
(we de-identify those by setting the last octet to zero),
<label for="show-datetime">time of visit</label>,
<label for="show-resource">resource requested</label> (<span class="code">/</span> stands for "main page"),
<label for="show-status"><a target="_blank" href="https://en.wikipedia.org/wiki/List_of_HTTP_status_codes">HTTP status code</a></label>,
<label for="show-bytes"># of bytes transferred to user</label>,
<label for="show-referer"><a target="_blank" href="https://en.wikipedia.org/wiki/HTTP_referer">Referer</a></label>
(usually the site you came from),
and <label for="show-user-agent">
<a target="_blank" target="_blank" href="https://en.wikipedia.org/wiki/User-Agent_header#Use_in_client_requests">User Agent</a>
</label> (how your browser presents itself).
</p>
<p>
We also collect and retain error logs for 3 days, including a full IP address.
These are generated when our server has a wonderful day and shoots itself in the foot, and are not used for analytics.
</p>
<h2>Who has access to your data</h2>
<p>
Only <a target="_blank" href="https://codeberg.org/gravel/gravel">@gravel</a>, <a target="_blank" href="https://github.com/mdPlusPlus/">@SomeGuy</a> and the server provider have access to the server logs.
</p>
<p>
Whenever we feel like it (<em>legal terminology</em>), we share aggregate visitor data over a non-identifying time period with interested parties. Examples of aggregate visitor data: Total site visits, distribution of operating systems and browsers used to access our site, distribution of referer sites, and common failed requests (such as for unsupported standards).
</p>
<h2>What requested resources tell us about you</h2>
<p>
Normally, using requests for Community icons and QR codes,
we could track each time a user opened a Community details modal for the first time (in a given cache period)
and deanonymize users joining Communities.
However, we blind ourselves to this information by requesting all Community icons and QR codes when the page loads.
These resources are then cached in your browser and don't trigger additional requests when you view a Community's details.
</p>
<p>
We refresh the cache periodically to ensure that this protection does not expire following the 1 hour cache period.
Unfortunately, this also means we get a ping for each hour you leave the site open.
</p>
<p>
<strong>If you've disabled JavaScript</strong>, protections against opening modals are not needed;
however, we log requests to QR codes when they are opened in a new tab.
</p>
<h2>Cookies</h2>
<p>We don't use 'em. <a href="./donate.html" style="text-decoration: inherit; color: inherit;">🍪</a></p>
<hr>
<h2>So, you scrolled all the way down here.</h2>
<p>The cookie emoji will take you to the donation page. Try it!</p>
</body>
</html>
Loading…
Cancel
Save