afu.tools

Home › Privacy

Privacy

In short: no account needed, no cookies except your language choice (and the marker when you vote as a guest), no tracker, nothing passed on to third parties. Whatever is processed anyway is listed here.

This translation is for your convenience; the German version of this page is legally binding.

Controller

Dennis Eisold, Regiomontanusstraße 29a, 97486 Königsberg in Bayern, Germany, info@afu.tools. Full details in the legal notice (Impressum).

Server log

When you call up the site or the API, the web server writes an entry with IP address, time, requested address, status code, amount of data transferred and the referring page and user agent sent by your browser. This serves operation and the prevention of abuse; the legal basis is Art. 6(1)(f) GDPR. The logs rotate by size and are continuously overwritten, in practice after a few days. There is no analysis by person, no merging with other data and nothing is passed on.

If you transmit over the voice network, a short additional log entry is kept so that faults in the networks can be investigated. It is deleted automatically after a short time; no audio is recorded.

API access

Apart from the subscription addresses (see below), the API can only be used with a key. The reason is rate limiting: with a key, requests count towards the individual access rather than the IP address, which many uninvolved people may share. You create keys with your account, on the API page or in the account. We store the link to your account, the account's email address and the domain or program name the key is for. The key is shown once and not sent by email; it is only stored as a hash. A copy of the creation goes to the operator. Keys requested earlier without an account through a form stay valid; if there is a confirmed account with the same email address, they are assigned to that account and show up there. The legal basis is Art. 6(1)(b) and (f) GDPR. The data is kept as long as the access exists. You can revoke and delete it in your account; if you delete your account, its keys are revoked and the email address and the link to the account are removed, while the bare request counts stay for the statistics without any link to you.

For rate limiting, the server counts how often each access called each endpoint on each day. The query itself is not stored: for a callsign lookup, the record says the lookup was used, not which callsign was searched for. The numbers serve operation, are not published and are deleted after two years.

For requests with a key, the IP address and referring page are also recorded. This is used to check whether an access is used where it was issued for, and to prevent abuse; the legal basis is Art. 6(1)(f) GDPR. These details are deleted after 90 days.

The addresses of the calendar and feed subscriptions (…/feed.ics and …/feed.rss) need no key. A calendar app or feed reader can't send one, and a subscription you can only open in a browser wouldn't be one. Nothing is created on our side for a subscription: no account, no email address, no stored filter setting. The filter lives only in the address on your device. Such requests are counted together as “calendar and feed subscriptions”, without being linked to a person; the IP address is only used for rate limiting and the server log above.

This does not apply to requests from the afu.tools pages themselves. They count as one application, not as individual visitors, and their IP addresses end up only in the server log above.

If the protected address lookup is used, each query is additionally logged line by line with the access that made it. With personal data that is the point, and it is no longer available after 90 days.

Rate limiting

So that individual clients can't overload the API, the server counts requests per IP address in a sliding one-minute window. This counter lives only in memory and expires by itself.

What your browser stores locally

If you enter a location on a tool page, your browser remembers it in local storage so you don't have to type it again on every page. This value stays on your device and is not transmitted. You can delete it in your browser's site settings.

The site sets only two cookies, both for the language: afu_sprache remembers whether you see the pages in German or English, afu_sprache_herkunft where that came from (your browser's language, your choice at the DE | EN switch, or English as a fallback if your browser names neither). Both last one year and contain no personal data. They are technically necessary so that you get the site in your language, so no consent is needed (§ 25(2) TDDDG, the German telecoms and digital services data protection act). The server only reads them to send you to the matching version.

One more cookie, afu_gast, is only created when you vote as a guest in a poll (see Polls).

The filters you set are in the address bar so that a view can be linked. That stays local too.

Account

If you have an account, afu.tools stores which language emails and notifications should come in (sprache_mail: automatic, German, English or both). For “automatic”, the account also remembers the language last detected, with the time. It comes from your browser's language or the language of the page you are using, and is refreshed when you sign in and when you do things on afu.tools. The legal basis is Art. 6(1)(b) GDPR: an email you can't read is no use to you. You can change the setting in your account at any time; it goes when the account goes.

You use the same account to sign in to Funkpate. What gets stored there is described in the Funkpate section.

Locating you

Some pages have a button that determines your location. It asks for your browser's location permission first and converts the coordinates into a locator in the browser. The coordinates are not sent to the server; the locator is only sent if you use it to start a radius search.

Log files you analyse

Analysing ADIF and Cabrillo files on the Analyse log page runs entirely in the browser, even if you send the file there via the drop zone on the contest page. The file is not transmitted or stored on its own. Instead the country file for entity mapping comes to you, so no callsign from your log is ever sent to the server to determine its country. Only if you explicitly start the check of German callsigns are the callsigns concerned sent to the API one by one as queries.

One exception is the “Keep” button on the Analyse log page. Pressing it stores your analysis with us: the processed contacts with callsign, date, time, band, mode, reports and locator of the other stations, plus the title and your own callsign if one was entered. The legal basis is consent under Art. 6(1)(a) GDPR, given by pressing the button; for the details of the other stations it is the legitimate interest in analysing your own operating under Art. 6(1)(f) GDPR. A kept analysis is not in any public list and can only be seen via its unguessable address. It is deleted with the key in your browser or, if you were signed in, in your account; after that the data is gone.

The same goes for your station details on the BEMFV page: bands, power levels and antenna gains stay in your browser's local storage so they are still there next time.

Logs you submit to a contest

Some contests accept their logs directly on afu.tools. If you submit a log there, you hand it over deliberately, unlike the analysis above. Stored are the file as submitted, with all contacts and everything in the file header (such as name or address), plus callsign, category, your own DOK, the email address given and the time. For abuse protection, the IP address is kept for 30 days as a non-reversible hash.

Until the results are published, only the contest managers and the operator of afu.tools can see your log and the fact that you submitted. Before that, the only public information is how many logs have come in per category. With the results, your callsign, category, placing, DOK and points appear in the results list. The results list only shows your name if you tick that box when submitting. The email address, the file and the individual contacts are only visible to the contest managers and the operator of afu.tools; you can see them yourself via the link in your receipt. The receipt goes to that address and, if you ask for it, a new link; afu.tools sends no other mail.

The legal basis for your own details is consent under Art. 6(1)(a) GDPR, given by submitting; for the callsigns of the other stations it is the legitimate interest in scoring the contest under Art. 6(1)(f) GDPR, because without cross-checking the logs there is no scoring. Until the log deadline you can withdraw your log yourself via the link. File, contacts and email address are deleted 24 months after the log deadline; the results list stays, as it is the published result of the contest.

Saved antenna measurements

The antenna measurement page also measures and calculates in the browser. Only if you press “Save measurement” is anything transmitted: the recorded measurement values, your callsign, the name, your note on the setup and the time. The legal basis is your consent under Art. 6(1)(a) GDPR, given by pressing the button.

A saved measurement has its own address. Anyone who has it can see the measurement including the callsign; no account is needed for that. It also appears in the list on the page only if you ticked that box when saving. If you were signed in when saving, you will also find your measurements in your account; the measurement is then linked to the account and can be deleted there. The same applies to the measurement reports of the harmonics measurement and to the attenuators that can be stored in the account.

The key for deleting is stored in your browser and is not shown anywhere. As long as it is there, you can delete your measurement yourself. If it is gone, say because you cleared storage or changed device, just send a message to info@afu.tools with the address of the measurement. It stays stored until someone deletes it.

Location for satellites and line of sight

Your browser calculates the passes on the satellite page itself from the orbital data. Your location is not sent to the server.

One exception is the terrain profile in the repeater list: the elevation model is too big for the browser, so for this query two pairs of coordinates go to the server, your location and that of the repeater. They are used for the calculation and not stored; the access logs record the address as for any other request.

External content

The site doesn't load fonts, scripts or images from third-party servers. Everything comes from our own server. Linked pages from other providers have their own privacy policies.

That also applies to the map of local clubs. The map tiles come from OpenStreetMap, but your browser doesn't fetch them there, it fetches them here: the server loads them on your behalf and keeps them for 30 days. So your IP address never reaches OpenStreetMap. All that is requested there is the map section, and it can't be linked to any visitor because the same tile goes to everyone from the cache. The map in the QO-100 dish pointing calculator works the same way, including its satellite imagery (from EOX): the server fetches it too, not your browser. The location is only calculated in your browser; as with any map, the server only sees which tiles are loaded.

The Telegram group is only linked, nothing is embedded. Only when you follow the link do you talk to Telegram (via afu.tools/telegram, which just redirects and stores nothing). If you join, Telegram's terms and privacy policy apply, and your name and account are visible to the others in the group.

Personal pages at afu.tools/<callsign> can contain a YouTube video. Opening the page loads nothing from it: all you see is a box saying “Play video”. Only when you click it does your browser fetch the video from YouTube (via youtube-nocookie.com), and YouTube sees your IP address; Google’s terms and privacy policy apply to that. Photos that someone uploads for their page are scaled down by afu.tools, which also removes all embedded information (EXIF, including location data and camera). Automatically saved drafts are visible only to the person who wrote them; they are removed with the next save.

PayPal is also only linked on the Support afu.tools page, nothing from it is loaded. Only if you give something there do you share your data with PayPal; PayPal's terms and privacy policy apply. The operator sees name, email address and amount in his PayPal account, uses them for nothing else and stores none of it on afu.tools.

Propagation images on other sites

The images from /funkwetter can be embedded on other sites. When one is requested, the server increments a counter per day, image and domain of the embedding page (from the referring address, only the host name such as example.org). Nothing more: no IP address, no full address, no cookies. The counters are kept for 400 days. The server fetches the propagation data itself from NOAA, GFZ and GIRO; your browser asks nothing there.

Visitor statistics

I count which pages are visited. Your browser loads nothing extra for this: there is no tracking pixel, no script and no cookie. What gets analysed is the access log that the server writes anyway.

The analysis runs in a self-hosted Matomo on our own server. No service provider is involved, and no data is passed on to third parties or transferred to other countries.

Stored are the address visited, the time, the referring page if there is one, and browser and operating system as your browser itself reports them. The IP address is truncated: for IPv4 the last block of digits is dropped, for IPv6 everything after the first four groups. So 203.0.113.47 becomes 203.0.113.0. Nothing more than a rough region can be derived from that, and it doesn't identify you personally.

Not counted are the admin area, search engines and other automated requests, as well as images, scripts and fonts.

The legal basis is my legitimate interest in a working site, Article 6(1)(f) GDPR. No consent is needed, because nothing is stored on or read from your device, so § 25 TDDDG doesn't apply.

You can object to the processing under Article 21 GDPR; just get in touch. There is no switch in the browser here, for a simple reason: nothing runs in your browser that could be switched off.

Callsign data

The callsign search shows data from the amateur radio callsign list that the Bundesnetzagentur (BNetzA, German regulator) itself publishes, supplemented by details from QRZ.com. Shown are callsign, holder, licence class and the place given there. Addresses, coordinates and locators are neither shown nor returned by the public API. There is no search by personal name and no bulk download, and the page is blocked for search engines.

If you hold a callsign and don't agree with it being shown, get in touch. Removal from the official publication itself, however, has to be requested from the Bundesnetzagentur, which is where the source lies.

Our own reflector

On our own reflector (afu.tools:5600), the server records for statistics who was connected when and who talked on which talkgroup for how long: callsign, time, duration, talkgroup and the station's software. No IP address, no audio. This is kept for 90 days, then it drops out by itself.

Remote station watches

If you set up a watch in the remote control, afu.tools stores the rule, the latest alerts (at most 100 per watch, 30 days) and, if alerts are to go to your device, the browser's push subscription: an address at the browser's push service (Google, Mozilla or Apple) and two keys. The alert travels encrypted via this service, only your browser can read it. Emails go to your account's address. You can unsubscribe and delete at any time in the remote control; everything disappears with the account. Recordings by a watch are only kept at the station.

If you set up the phone app under Konto › Benachrichtigungen (account › notifications), afu.tools only stores a hash of your topic and the alerts of the last 12 hours for your account so the app can collect them; when it last collected them is shown in the account. The app (ntfy) queries afu.tools directly. So that an iPhone wakes the app up, afu.tools sends a wake-up call per alert to ntfy.sh (operator of the app, via Apple's push service): it contains only a checksum of server and topic and the number of the alert, no text, no callsign, no account.

If the owner or a manager of a remote station sets up the “Sign-in at the station” watch, they receive the callsign, role and route (afu.tools, bridge, guest, direct access, program) for every new sign-in, and for failed attempts on direct access also the address, but only truncated (e.g. 203.0.113.x).

If the owner of a remote station switches on the decode archive, afu.tools permanently stores which callsigns the station heard when and on which band (aggregated per hour, with signal strength and, if the transmission carries it, the locator). Only the users of this station can see it; the owner can delete it.

If the owner of a remote station switches on the skimmer, the station reports which callsigns it has heard on the bands (frequency, mode, signal strength, for FT8 the locator from the transmission), depending on the settings, to afu.tools (48 hours, source “remote stations” on the RBN page), to PSK Reporter and to the Reverse Beacon Network. That is the same public information that skimmers and PSK Reporter collect worldwide.

If you listen in on a station via a guest pass (QR code), you don't need an account; afu.tools only counts how many guests have used the pass and are currently present, and the station notes the connection as a guest in its station log. The key in the QR code is only in the part of the address after the #, which the browser doesn't send to the server.

If you share a moment (listen-in link) in the remote control, afu.tools stores the audio (up to 60 s), the waterfall image, frequency, time, station, your callsign and whatever you write about it, and shows it to anyone who knows the link. After the period you choose (7 days, 30 days or one year) everything is deleted; you and the station owner can delete it earlier.

If you create voice messages in the contest logger (recordings for F1 to F8), they are kept with their names in your account until you delete them or the account. Without an account they stay only in your browser.

afu.tools stores reservations in the remote control calendar with callsign, time slot and the purpose you enter; anyone allowed on the same station can see them. For the calendar subscription we only keep a hash of the secret link; you can switch it off at any time. The station itself keeps the bookings for the next few days in order to enforce them.

If the thunderstorm watch is on at a station, it asks afu.tools every two minutes for thunderstorm warnings from the Deutscher Wetterdienst (German weather service) for its location and sends its coordinates along. afu.tools calculates the answer and does not store the location. A new warning level goes to the station owner as an alert, just like a watch.

If you send a test report from the “Device test” box, afu.tools stores it with your callsign, the afu-remote version, what the station reports about the radio (model, functions, modes), your browser and your details, and files it as a report in our reporting system. The radio page only shows how many reports exist.

If you request support on a radio page, afu.tools stores radio, callsign, email address and your remark. We only write to you once you have confirmed the address via the link in the first email (not needed if you are signed in with the same address as your account): when there is a test build and, once, when we are waiting for your feedback. We delete unconfirmed requests after seven days, and once the matter is settled we delete the email address. Every email has a link that deletes the request immediately.

APRS map

The APRS map shows what radio amateurs themselves send over APRS: callsign, position, comment, weather. These beacons go out openly over the air and are distributed to everyone in the worldwide APRS-IS anyway. The server reads this stream and keeps each position for 48 hours, the track for 24 hours and the last six packets of each station verbatim, weather values and telemetry for seven days. After that everything drops out by itself. If these periods change, it will say so here. Names are neither looked up nor shown, and messages between stations are not stored.

If you don't want your station shown here, switch off the beacon or get in touch; the callsign then goes on a block list, everything about it is deleted and nothing more is accepted later either. Your own position, if you press the locate button on the map, stays in the browser and is only used for the distance to the selected station.

If you feed in your own receiver with your account, afu.tools stores the callsign of the access, your name for it, the addresses entered and the passcode only as a hash. The map publicly shows what this receiver has heard and since when it has been connected. The address it sends from is only held in the service's memory and in the admin area, never on the map. If you delete the access or your account, it is gone.

Radio policy

The /funkpolitik page only loads files from afu.tools. What you click or filter there stays in your browser. Your profile under “What affects you?” (class, bands, what you do, radius) and the time of your last visit are only kept in your browser's storage (localStorage) and are not sent to afu.tools with any request; the evaluation happens in the browser. The page remembers your location as everywhere on afu.tools; it only looks up a place name (not a locator) at afu.tools. There is no tracking, and no visitor data goes to a language model.

Ratings and summaries are produced automatically with an in-house language model. It only gets texts from the sources (parliamentary papers, consultations, agendas), never anything from you. Only votes by whole parliamentary groups are public, no individuals.

“Report an error” on a proceeding works like any other report (see Report); only the number of the proceeding is sent along.

Circuit workshop

On /schaltungs-werkstatt afu.tools remembers which levels you have solved, when you first did, on which attempt and whether your first answer was right. Nothing more: which answers you tried stays on the page. Without an account this is kept only in your browser's storage (afu.tools:werkstatt) and stays on your device.

If you are signed in, afu.tools stores your progress with your account so you can carry on from any device; whatever was in your browser before is copied to your account once and then removed from the browser. Your browser keeps a copy and, if the connection happens to be down, a list of solutions not yet sent. The legal basis is Art. 6(1)(b) GDPR: you are using the workshop with your account. If you delete your account, your progress goes with it.

Funkpate

Funkpate (www.funkpate.de), the learning app for the amateur radio exam, is part of afu.tools. The controller is the same operator as above; Funkpate is not a second provider and not a processor. Your account and data are held by afu.tools, Funkpate only displays them.

Signing in. To sign in, Funkpate sends you to afu.tools. There afu.tools checks your password, second factor or passkey. Funkpate then receives a one-time code that is valid for 120 seconds, only once and only for the address you came from. Funkpate exchanges it for a session. The session lasts 30 days and is extended as long as you use Funkpate. In the process Funkpate learns your e-mail address, callsign, username and your roles at Funkpate; Funkpate never sees your password. afu.tools remembers which Funkpate account belongs to your account. Under Account you can end all Funkpate sessions at once. Sign-ins from before the switch remain valid for a transition period.

What gets stored. Besides the account, afu.tools stores for Funkpate:

  • your learning progress: answered questions, review schedule, study plans, study sessions, chapters read and course progress, your notes and quests,
  • games and duels: rooms, answers, invitations, the CW trainer,
  • your friendships in the app,
  • conversations with the AI assistant and its memory (things it remembers about your learning),
  • your AI settings. If you enter your own AI key, Funkpate stores it encrypted; only the Funkpate service holds the key to decrypt it, the database does not.

Everything is held in the afu.tools database on the server at Contabo (see Hosting). Until now Funkpate had its own database on the same server. The data moves over area by area; until an area has moved, it is held in both. After that the old database is no longer written to and is finally deleted. The legal basis is Art. 6(1)(b) GDPR: you use the app with your account.

AI assistant. If you use the AI features (assistant, explanations, mistake analysis), data goes to the AI provider set in your account: OpenAI or Anthropic with your own key or subscription, an address you enter yourself (then to whoever runs it), or, if the operator has enabled it for your account, Anthropic via the operator's subscription. What goes along: your question with the conversation so far, plus target licence class, licence class, exam date and callsign, the assistant's memory, the page you are on, and whatever the assistant looks up about your learning progress (progress, weak topics, recent sessions, study plan). Your e-mail address and password are not sent. OpenAI and Anthropic are based in the USA, so the data may go there. The legal basis is Art. 6(1)(b) GDPR; unless you use the AI, nothing goes to a provider.

Deletion. If you delete your account on afu.tools, afu.tools also deletes your Funkpate account and everything listed above. If that does not go through straight away, Funkpate collects the request itself within an hour. The data remains in the daily backup until the old copies expire: seven days on the server, 30 days on a second backup device.

Polls

Anyone with an account can create polls on /umfragen; depending on the poll, only signed-in users or guests too may vote. What is stored: the title, the questions and answers, the uploaded pictures and the votes. The server stores pictures re-encoded, without location and camera data, even if the original contained some.

Who voted how is not stored in plain text in the database: a vote carries a key that is computed from your account (or the guest cookie) and a secret of the server and cannot be reversed. It only serves to stop anyone voting twice and to let you find your own vote again. In anonymous polls we store neither account nor name, only this key; even the author then sees only numbers. In polls “with names”, your call sign or the name you give as a guest is stored with the vote and is visible to everyone who can see the result.

If you vote as a guest, the server sets the cookie afu_gast (one year, HTTPS only, not readable by JavaScript). It holds a random identifier and only serves to stop you voting twice; it is technically necessary, so no consent is needed (§ 25(2) TDDDG). Your browser also remembers in local storage (afu.tools:umfragen-abgestimmtwhich polls you voted in, so that the “Voted” list works. That stays on your device.

As a brake on mass voting, the server counts guest votes per poll and day for each IP address, but only as a daily hash with no link to the vote; after that day it is worthless. The legal basis is Art. 6(1)(f) GDPR (protection against abuse). If you delete a poll, its pictures, votes and history go with it. If you delete your account, your polls go with it; your votes in other people's polls stay, but without account and name, so that their result does not shift.

Public polls are listed in the overview and may be found by search engines. Private ones aren't in any list and are blocked for search engines; anyone with the link can still get in.

For a date poll you can ask for an email once the date is fixed (also if it changes or is open again). With an account we use your account's email address; as a guest you enter an address and confirm it via a link first. Without confirmation we won't write to you, and the address is removed after a week. The sign-up is kept in a separate table with no link to your vote, so anonymous polls stay anonymous. We delete guest addresses 30 days after the fixed date; every sign-up disappears with the poll, yours also with your account. You can unsubscribe at any time via the link in every email. The legal basis is your consent (Art. 6(1)(a) GDPR). Anyone with the link can subscribe to the calendar of a date poll; it contains the title, description, place and dates, no names.

Hosting

The site runs on a rented server at Contabo GmbH, Munich. Contabo provides the machine and is thus a processor for its operation; the application itself, its data and the analysis of visits are with me. Nobody else gets to see the content or the visits.

Your rights

You have the right of access, rectification, erasure, restriction of processing, data portability and objection, as well as the right to lodge a complaint with a supervisory authority. The competent authority is the Bayerisches Landesamt für Datenschutzaufsicht (Bavarian Data Protection Authority).