Privacy
Short version: no cookies, no accounts and nothing loaded from other companies. The page-view counts do not include your IP address, and if your browser sends Do Not Track or Global Privacy Control you are not counted at all. Encrypted backups of the counter's database are kept for about a year. Cloudflare, which delivers the site, does see your connection.
What is counted
Page views are counted by a self-hosted copy of GoatCounter running on the same server as this site. After a page has loaded, a script from this site sends one request to /_stats/count on this origin. That request carries:
- the page path and the page's title;
- the address of the page that linked here, if your browser sends one;
- your screen width in pixels;
- the query string of the page you landed on, if it has one;
- whether your browser reports that it is automated;
- and, like every request, your IP address and your browser identifier (user agent).
For each page view GoatCounter records:
- the page path and the page's title;
- the address of the page that linked here, without its query string; when the link carried campaign parameters such as
utm_sourceorutm_campaign, those values instead; - your screen width in pixels;
- the name and version of your browser and of your operating system;
- the country your connection appears to come from, looked up in a country-level database;
- whether this is your first view of that page within a visit.
It does not store your IP address or your browser identifier with the counts, and it sets no cookies. To tell a new visit from a reload, it holds the two together in memory, linked to a random visit number and to the pages viewed in that visit, until eight hours after your last page view. They reach its database only while the counter restarts: it saves open visits when it stops and deletes them as soon as it starts again. Requests that look automated are not counted; GoatCounter keeps their path, time and browser identifier in its database for 30 days. The nightly backups described below can keep copies of both kinds of record for longer.
If your browser sends Do Not Track or Global Privacy Control, the counting script is never loaded and nothing is sent.
No third-party script, font, image or analytics service is loaded. Every request your browser makes while reading this site goes to averyuslaner.com.
What the server logs
The web server (Caddy) writes one access-log line per request with the time, the method, the host name, the full address requested (path and any query string), the protocol, the response status, the response size and the duration. It does not contain your IP address, your browser identifier, cookies, or any request header, the Referer header included. The counting request carries its data in its address, so its log line also contains the page path, the page title, the full address of the page that linked here as your browser reported it, your screen width and the query string of the page you landed on. These logs go to the server's system journal, which discards entries after 14 days (sooner if it exceeds 200 MB), are used only to diagnose errors and are not shipped anywhere.
Backups
Every night the server copies the counter's whole database into a backup stored with Backblaze B2. The backup is encrypted on the server before it leaves, so Backblaze cannot read it. The copy holds the page views listed above, the automated requests with their path, time and browser identifier, and, if the counter happens to be stopped at that moment, the open visits with their IP addresses, browser identifiers and pages viewed. I delete old backups by hand about once a month, keeping the last 14 daily, 8 weekly and 12 monthly ones, so a copy can last about a year, a little longer when that clean-up runs late. The server logs are not backed up, and the backup of the feeder data holds nothing about visitors.
Cloudflare
The site is delivered through Cloudflare, which caches pages and absorbs attacks. Your connection terminates at Cloudflare's network before it is forwarded to my server, so Cloudflare sees your IP address and request details and processes them under Cloudflare's privacy policy. I have turned off every Cloudflare feature that would add scripts or analytics to the pages. Cloudflare's own short-lived edge logs are not available to me.
The feeder data
The dashboard shows statistics from a camera and a weather sensor at a bird feeder in my yard. What reaches this site is deliberately coarse:
- counts of detections and visits per species per hour and per day, the first and last hour with activity each day, and the first day each species was seen;
- a list of the individual detections of the last 24 hours with time, duration, species and model confidence;
- hourly averages of temperature, humidity and sea-level pressure, rounded;
- quality numbers for the image classifier: for each training run, the day it was trained, how many images it was trained and checked on, and its overall accuracy; for the latest run, also the kind of model and its accuracy per species;
- date ranges I mark by hand as undercounted, with a short reason.
Never published: any image, video, or identifier that could fetch one; the location of the feeder beyond the city named on my resume; the camera or network names; when I review or label images; whether equipment at home is on or off, beyond a coarse "fresh / stale / offline" state of the data and those hand-marked date ranges. The public metrics API documents every field. The camera points at a feeder, not at a street or a neighbour. The data flows one way, from home to the website, and the website has no way to reach back.
What I do not do
- No user accounts, logins, login sessions or comments.
- No cookies of any kind, including from the analytics.
- No advertising, affiliate links or sponsored content.
- No sale or sharing of any visit data. The only copy that leaves the server is the encrypted backup described above.
- No e-mail collection. The domain does not send mail.
Contact
Questions about any of this: [email protected]. Security reports go to the address in security.txt.