From 496d520284381d9dad5f51a7c248368f6989ced6 Mon Sep 17 00:00:00 2001 From: Kurpanik <71767601+Kurpanik@users.noreply.github.com> Date: Thu, 30 Oct 2025 08:07:11 +0100 Subject: [PATCH 1/5] Update README.md --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 8ef38180..6b5517f2 100644 --- a/README.md +++ b/README.md @@ -27,3 +27,14 @@ npm start -- --host 0.0.0.0 ```console npm run build ``` + +## Docker & Testsystem () + +Image lokal erstellen und auf Dockerhub pushen. +Das Testsystem prüft regelmässig auf neue Images und aktualisiert die Container selbstständig. + +```console +docker login -u dialgmbh +docker build -t dialgmbh/gldf-website:latest . +docker push dialgmbh/gldf-website:latest +``` From 9770108c0d11cfdc08a98c7bae1810cba4cdf921 Mon Sep 17 00:00:00 2001 From: Alex Kurpanik <71767601+Kurpanik@users.noreply.github.com> Date: Fri, 13 Mar 2026 10:26:59 +0100 Subject: [PATCH 2/5] Update Caddy to 2.11.2 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a7c12323..754881a0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ RUN npm ci --no-audit --no-fund && npm run build ### RELEASE ### # https://hub.docker.com/_/caddy/tags -FROM caddy:2.10.2-alpine +FROM caddy:2.11.2-alpine COPY Caddyfile /etc/caddy/Caddyfile COPY --from=build /build /srv From 77c1ac90fd110b1ab55840977cd2ec7f486597ab Mon Sep 17 00:00:00 2001 From: Alex Kurpanik <71767601+Kurpanik@users.noreply.github.com> Date: Fri, 13 Mar 2026 11:06:02 +0100 Subject: [PATCH 3/5] Add Editorial Responsibility to Imprint --- package-lock.json | 30 +----------------------------- src/css/imprint.css | 22 ++++++++++++++++++++++ src/pages/imprint.js | 10 ++++++++++ 3 files changed, 33 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index 35fda6dd..37645085 100644 --- a/package-lock.json +++ b/package-lock.json @@ -230,7 +230,6 @@ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.40.1.tgz", "integrity": "sha512-Mw6pAUF121MfngQtcUb5quZVqMC68pSYYjCRZkSITC085S3zdk+h/g7i6FxnVdbSU6OztxikSDMh1r7Z+4iPlA==", "license": "MIT", - "peer": true, "dependencies": { "@algolia/client-common": "5.40.1", "@algolia/requester-browser-xhr": "5.40.1", @@ -356,7 +355,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", @@ -2146,7 +2144,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -2169,7 +2166,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" } @@ -2279,7 +2275,6 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -2701,7 +2696,6 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -3565,7 +3559,6 @@ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.2.tgz", "integrity": "sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg==", "license": "MIT", - "peer": true, "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/logger": "3.9.2", @@ -4262,7 +4255,6 @@ "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", "license": "MIT", - "peer": true, "dependencies": { "@types/mdx": "^2.0.0" }, @@ -4581,7 +4573,6 @@ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -4959,7 +4950,6 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", "license": "MIT", - "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -5311,7 +5301,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5385,7 +5374,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -5431,7 +5419,6 @@ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.40.1.tgz", "integrity": "sha512-iUNxcXUNg9085TJx0HJLjqtDE0r1RZ0GOGrt8KNQqQT5ugu8lZsHuMUYW/e0lHhq6xBvmktU9Bw4CXP9VQeKrg==", "license": "MIT", - "peer": true, "dependencies": { "@algolia/abtesting": "1.6.1", "@algolia/client-abtesting": "5.40.1", @@ -5895,7 +5882,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.9", "caniuse-lite": "^1.0.30001746", @@ -6846,7 +6832,6 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -8220,7 +8205,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -12684,7 +12668,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -13200,7 +13183,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -14104,7 +14086,6 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14893,7 +14874,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -14903,7 +14883,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.25.0" }, @@ -14959,7 +14938,6 @@ "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", "license": "MIT", - "peer": true, "dependencies": { "@types/react": "*" }, @@ -14988,7 +14966,6 @@ "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -16757,8 +16734,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true + "license": "0BSD" }, "node_modules/type-fest": { "version": "2.19.0", @@ -17148,7 +17124,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -17356,7 +17331,6 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", "license": "MIT", - "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.6", @@ -17628,7 +17602,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -17991,7 +17964,6 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz", "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/src/css/imprint.css b/src/css/imprint.css index 140e23dd..6158d72a 100644 --- a/src/css/imprint.css +++ b/src/css/imprint.css @@ -73,4 +73,26 @@ .ImprintTwoColumns .column { padding: 0 1.25rem; } +} + +/* Editorial section */ +.ImprintEditorial { + text-align: center; + max-width: 900px; + margin: 0 auto; + padding: 0 1.25rem; + margin-top: 0px; +} + +.ImprintEditorial h2 { + font-size: 20px; + color: var(--ifm-font-color-base); + margin-bottom: 20px; + border-bottom: 1px solid rgb(224, 224, 224); + padding-bottom: 10px; +} + +.ImprintEditorial p { + color: var(--ifm-font-color-base); + line-height: 1.6; } \ No newline at end of file diff --git a/src/pages/imprint.js b/src/pages/imprint.js index 8a452351..e2c5abaa 100644 --- a/src/pages/imprint.js +++ b/src/pages/imprint.js @@ -127,6 +127,16 @@ function Imprints() { } /> +
+

Editorial Responsibility (Blog Section)

+

+ Responsible for the journalistic and editorial content of the blog section (gldf.io/blog/) + in accordance with Section 18 (2) of the German State Media Treaty (Medienstaatsvertrag, MStV):
+ Dieter Polle, Managing Director of DIAL GmbH,
Bahnhofsallee 18, 58507 Lüdenscheid, Germany. +

+
+
+
); } From c25fce94e9f5b93aa486c5fb20660be3fdabea1c Mon Sep 17 00:00:00 2001 From: Alex Kurpanik <71767601+Kurpanik@users.noreply.github.com> Date: Fri, 13 Mar 2026 13:02:16 +0100 Subject: [PATCH 4/5] Configure to display all topics of the blog --- docusaurus.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/docusaurus.config.js b/docusaurus.config.js index 08d5f407..644ed1af 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -44,6 +44,7 @@ const config = { onInlineTags: 'warn', onInlineAuthors: 'warn', onUntruncatedBlogPosts: 'warn', + blogSidebarCount: 'ALL', }, theme: { customCss: [ From 085317cb5c0d2074f0037ee22d4bd12f1d7ebe4f Mon Sep 17 00:00:00 2001 From: Alex Kurpanik <71767601+Kurpanik@users.noreply.github.com> Date: Fri, 13 Mar 2026 13:02:23 +0100 Subject: [PATCH 5/5] Update privacy-policy.md --- src/pages/privacy-policy.md | 140 ++++++++++++++++++++---------------- 1 file changed, 77 insertions(+), 63 deletions(-) diff --git a/src/pages/privacy-policy.md b/src/pages/privacy-policy.md index 00895a68..34f3d802 100644 --- a/src/pages/privacy-policy.md +++ b/src/pages/privacy-policy.md @@ -2,105 +2,119 @@ title: Privacy Policy hide_table_of_contents: true --- +# Privacy Policy -## Data Protection Policy +## 1. Controllers -### Information on the collection of personal data +The controllers within the meaning of Art. 4(7) GDPR are: -(1) The following provides information about the collection of personal data during your use of this website. Personal data is any information that can be specifically attributed to you, e.g. your name, address, email addresses, user behaviour, and IP address. + **DIAL GmbH** + Bahnhofsallee 18 + 58507 Lüdenscheid + Germany + Phone: +49 (0) 2351 5674 0 + Email: dialog@dial.de + Website: www.dial.de -(2) The controller, as per art. 4, para. 7 of the EU General Data Protection Regulation (GDPR), are +and - DIAL GmbH - Bahnhofsallee 18 - 58507 Lüdenscheid - Germany - +49 (0) 2351 5674 0 - dialog@dial.de - www.dial.de + **Relux Informatik AG** + Kaspar Pfeiffer Strasse 4 + CH-4142 Münchenstein + Switzerland + Phone: +41 61 333 07 70 + Email: info@relux.com + Website: www.relux.com -and +## 2. General Information on Data Processing + +As a rule, we process personal data only to the extent necessary to provide a functional website and to ensure the stability and security of the website. The legal basis for such processing is Art. 6(1)(f) GDPR. Where further processing takes place in individual cases, it will only be carried out on the basis of a legal permission or your consent. Art. 13 GDPR requires transparency regarding the purposes of processing, legal bases, recipients, and any transfers to third countries. + +## 3. Provision of the Website and Hosting via GitHub Pages + +This website is hosted via **GitHub Pages**, a service provided by **GitHub, Inc.** GitHub states that when a GitHub Pages website is visited, the visitor’s IP address is logged and stored for security purposes, regardless of whether the visitor is signed in to GitHub or not. + +In this context, the following technical data may in particular be processed: - Relux Informatik AG - Kaspar Pfeiffer Strasse 4 - CH-4142 Münchenstein - Switzerland - +41 61 333 07 70 - info@relux.com - www.relux.com +- IP address +- date and time of the request +- requested file or URL +- amount of data transferred +- notification of successful retrieval +- browser type and browser version +- operating system +- referrer URL -(3) If we make use of commissioned service providers for individual functions of our offers or if we wish to use your data for commercial purposes, we will inform you of the respective processes as described in detail below. In so doing, we will also cite the set criteria for the storage period. +The processing is carried out for the purpose of providing the website, ensuring its technical stability, and maintaining the security of the service. The legal basis is Art. 6(1)(f) GDPR. Our legitimate interest lies in the secure and reliable delivery of the website. -### General information about data processing +([What is GitHub Pages?](https://docs.github.com/en/pages/getting-started-with-github-pages/what-is-github-pages)) +([GitHub General Privacy Statement](https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement)) -(1) As a matter of principle, we collect and utilise users' personal data only to the extent required to ensure the functioning of our website and of our contents and services. The collection and utilisation of our users' personal data normally occurs after users have given their consent. An exception applies to cases in which prior consent can not be obtained for practical reasons and where the processing of the data is legally permitted. +## 4. External Images Hosted by Imgur -(2) If we have obtained consent for the processing of personal data from the data subject, art. 6, para. 1, point a of the GDPR acts as the legal basis. When the processing of personal data is required in order to fulfil a contract, to which the data subject is party, art. 6, para. 1, point b of the GDPR acts as the legal basis. This also applies to processing that is required in order to perform pre-contractual measures. If the processing of personal data is required in order to fulfil a legal obligation to which our company is subject, art. 6, para. 1, point c of the GDPR acts as the legal basis. In the event that vital interests of the data subject or of another natural person make processing personal data necessary, art. 6, para. 1, point d of the GDPR acts as the legal basis. If processing is necessary for the purposes of the legitimate interests pursued by our company or by a third party and the interests, fundamental rights and freedoms of the data subject do not override the former interests, art. 6, para. 1, point f of the GDPR acts as the legal basis for processing. +Some images on this website are loaded from external servers operated by **Imgur**. -(3) The personal data of the data subject are deleted or locked once the purpose of their storage no longer applies. Furthermore, data can be stored if provision has been made by the European or national legislator in ordinances, acts or other regulations in EU law to which the controller is subject. The data are also locked or deleted if a storage period prescribed by the stated standards expires, unless it is necessary to continue to store the data in order to conclude or fulfil a contract. +When you visit a page containing such an image, your browser retrieves the image file directly from Imgur’s servers. In this process, technical access data may be transmitted to Imgur, in particular your IP address and browser-related request data. Depending on your browser and configuration, the referrer URL may also be transmitted. -(4) Furthermore, we may also disclose your personal data to third parties when we offer participation in campaigns, contests, contract conclusions, or similar services together with partners. You will receive further information on this when you provide your personal data or at the bottom of the description of the service being offered. If our service providers or partners are based in a country outside the European Economic Area (EEA), we will inform you of the consequences of this in the description of the service being offered. +This processing is carried out for the purpose of displaying the embedded images and ensuring the technical delivery of the content. The legal basis is Art. [6(1)(f) GDPR](https://eur-lex.europa.eu/eli/reg/2016/679/oj/eng). Our legitimate interest lies in the efficient presentation of the website and its visual content. -### Your rights +([Imgur Privacy Policy](https://imgur.com/privacy)) +([Imgur Terms of Service](https://imgur.com/tos)) -(1) You have the following rights in relation to us regarding your personal data: +## 5. Site Search via Algolia -a) Right of access -You have the right to request confirmation as to whether relevant data will be processed, and to information on this data as well as further details and copies of the data in accordance with art. 15 of the GDPR. +This website uses **Algolia** to provide site search functionality. -b) Right to rectification -In accordance with art. 16 of the GDPR, you have the right to request the completion of the data or the rectification of the incorrect data concerning you. +When you use the search function, your search terms and technical request data may be processed by **Algolia** in order to provide search results and maintain the search service. The legal basis for the use of the search function is Art. 6(1)(f) GDPR. Our legitimate interest lies in providing an efficient and user-friendly search function for the content of this website. -c) Right to erasure or right to restriction of processing -In accordance with art. 17 of the GDPR, you have the right to request that personal data be deleted immediately, or alternatively the right to request the restriction of processing of the data in accordance with art. 18 of the GDPR.In accordance with art. 17 of the GDPR, you have the right to request that personal data be deleted immediately, or alternatively the right to request the restriction of processing of the data in accordance with art. 18 of the GDPR. +([Algolia Privacy Policy](https://www.algolia.com/policies/privacy)) -d) Right to data portability -You have the right to receive the data concerning you, which you have provided to us, in accordance with art. 20 of the GDPR, and to request their transmission to other controllers. +## 6. Recipients of the Data -(2) You also have the right to submit a complaint to the relevant data protection supervisory authority concerning our processing of your personal data. In our case, this is the North Rhine-Westphalia state official for data privacy and information security: [ldi.nrw.de](https://www.ldi.nrw.de) +Recipients of personal data processed in connection with the use of this website may include: -### Objection to or revocation of the processing of your data +- **GitHub**, whose infrastructure is used to host and deliver this website via GitHub Pages +- **Imgur**, where individual image files are loaded from external servers +- **Algolia**, which provides the search functionality for this website -(1) If you have consented to the processing of your data, you can revoke this at any time in accordance with art. 7, para. 3 of the GDPR. Once communicated to us, such a revocation affects the admissibility of the processing of your personal data. +To the extent these providers process personal data, this takes place in connection with the technical operation, delivery, security, and search functionality of the website or its externally loaded content. GitHub provides further information in its General Privacy Statement, and Imgur and Algolia provide privacy-related information in their own privacy resources. -(2) If we base the processing of your personal data on the balancing of interests, you may object to the processing. This is the case if processing in particular is not necessary for the fulfilment of a contract with you, which we will note in the subsequent description of each function. When such objection is raised, we ask that you explain the reasons why we should not process your personal data in the manner we have done. If your objection is justified, we will examine the situation and either cease or adjust the data processing or explain to you our compelling and legitimate reasons as to why we will continue to perform the processing as such. +## 7. Transfer of Data to Third Countries -(3) Of course, you may object at any time to the processing of your personal data for advertising and data analysis purposes. You may inform us of your objection to such uses via the contact details above. +In the course of hosting this website via GitHub Pages, loading externally embedded images from Imgur, and providing the site search via Algolia, personal data may be processed in third countries, in particular in the **United States**. GitHub states that personal data may be processed in the United States and other countries where GitHub, its affiliates, subsidiaries, or subprocessors operate. For international transfers, GitHub states that it generally relies on the European Commission’s Standard Contractual Clauses and also complies with the EU-U.S. Data Privacy Framework, the UK Extension to the EU-U.S. DPF, and the Swiss-U.S. Data Privacy Framework. -### Deletion of data +## 8. Cookies -The data processed by us will be deleted or have its processing restricted in accordance with art. 17 and 18 of the GDPR. Unless expressly stated in this data protection policy, the data stored by us will be deleted as soon as it is no longer required for its intended purpose and the deletion does not conflict with any legal storage obligations. If the data are not deleted because they are necessary for other legally permissible purposes, their processing is restricted. This means that the data is locked and not processed for any other purposes. This applies, for example, to data that must be kept for commercial or tax reasons. According to legal requirements in Germany, the records shall be kept in particular for 6 years in accordance with section 257, para. 1 of the German Commercial Code (HGB) (trading books, inventories, opening balance sheets, annual financial statements, commercial letters, accounting documents, etc.) and for 10 years in accordance with section 147, para. 1 of the German Tax Code (AO) (books, records, progress reports, accounting documents, commercial and business letters, for documents relevant to taxation, etc.). +This website **does not use cookies**. No cookies are stored on your device by this website. -### Transfer of data to third countries +## 9. Contact -If we process data in a third country (i.e. outside the European Union (EU) or the European Economic Area (EEA)) or if this is done in order to utilise third-party services, disclose or transfer data to third parties, then this will only happen in order to fulfil our (pre-)contractual obligations, on the basis of your consent, due to a legal obligation or on the basis of our legitimate interests. Subject to legal or contractual permissions, we process or have the data processed in a third country only if the special requirements of art. 44 ff. of the GDPR apply. This means, for example, that processing is carried out on the basis of special guarantees, such as the officially recognised establishment of a data protection level in compliance with the EU or compliance with officially recognised special contractual obligations ("standard contractual clauses"). +If you contact us by email, the personal data you provide will be processed solely for the purpose of handling your inquiry. The legal basis for this processing is Art. 6(1)(f) GDPR. If your inquiry is aimed at concluding or performing a contract, the additional legal basis is Art. 6(1)(b) GDPR. Our legitimate interest lies in the proper handling of your inquiry. -### Data collection on our website +## 10. Storage Period -(1) If you are using the website solely for informational purposes, i.e. if you have not registered or otherwise conveyed information to us, we will only collect personal data transmitted by your browser to our server. If you would like to view our website, we will collect the following data, which is a technical requirement for us into be able to display our website and to ensure stability and security (the legal basis for this is art. 6, para. 1, sentence 1, point f of the GDPR): +We do not store personal data ourselves unless this is necessary in individual cases, for example when you contact us by email. - a) IP address, - b) Date and time of request, - c) Content of the request (specific page), - d) Access status/HTTP status code, - e) Volume of data transmitted, - f) Website issuing the request, - g) Browser, - h) Operating system and its interface, - i) Language and version of browser software. +Where personal data is processed by third-party providers such as GitHub, Imgur, or Algolia, the storage period is determined by the respective provider in accordance with its own privacy policy and applicable legal requirements. GitHub states that it retains personal data for as long as necessary to fulfill the relevant purposes, comply with legal obligations, resolve disputes, and enforce agreements. -(2) The data are also stored in the logfiles of our system. These data are not stored together with other personal data of the user. The legal basis for the temporary storage of the data and logfiles is art. 6, para. 1, point f of the GDPR. The data are stored in logfiles in order to ensure that the website functions properly. In addition, the data helps us to optimise the website and to ensure the security of our information technology systems. An analysis of the data for marketing purposes does not take place in this context. The anonymous data of the server log files are stored separately from all personal data provided by the data subject. +## 11. Rights of Data Subjects -(3) The data will be deleted as soon as they are no longer necessary to achieve the purpose for which they were collected. If data has been collected for the provision of the website, this occurs when the respective session ends. The collection of data for the provision of the website and the storage of data in logfiles is absolutely necessary for the operation of the internet site. As a result, the user may not object. +Subject to the applicable legal requirements, you have the following rights with regard to your personal data: -### SSL encryption +- right of access +- right to rectification +- right to erasure +- right to restriction of processing +- right to data portability +- right to object to processing +- right to withdraw consent at any time with future effect -To protect the transmission of confidential content that you send to us (e.g. orders, inquiries), this website uses what is known as SSL or TLS encryption. These can be recognised by the lock symbol in your browser address bar. The address bar also changes from "http://" to "https://". This means that third parties are not able to read this data. +You also have the right to lodge a complaint with a supervisory authority regarding our processing of your personal data. -### Use of cookies +## 12. Right to Object -(1) In addition to the aforementioned data, cookies are also stored on your computer when you use our website. Cookies are text files that are stored in the Internet browser or by the Internet browser on the user's computer system. Cookies can not execute programs or transmit viruses to your computer. Their purpose is to make an Internet service more user-friendly and efficient overall. Cookies allow us to recognise the users of our website. Cookies can optimise the information and service on our website for the benefit of the user. The purpose of this recognition feature is to make it easier for users to explore our website. For example, the user of a website that uses cookies must not re-enter their login details each time they visit the website as this is done automatically by the website and the cookie stored on the user's computer system. The legal basis for the processing of personal data when using cookies is art. 6, para. 1, point f of the GDPR. +Where we base the processing of your personal data on Art. 6(1)(f) GDPR, you have the right to object to such processing on grounds relating to your particular situation at any time. -(2) Temporary cookies, or "session cookies" or "transient cookies", refer to cookies that are deleted once the user leaves an online service and closes their browser. In such a cookie, the contents of a shopping cart in an online shop or a login status are stored, for example. "Permanent" or "persistent" cookies refer to those that remain stored even after the browser has been closed. In doing so, the login status can be stored, for example, if users visit the website after several days. +## 13. Version -(3) It is possible at any time to prevent the website's storage of cookies by adjusting the relevant settings of your Internet browser and thus permanently deactivating the storage of cookies. Furthermore, you may delete cookies which have already been stored via an Internet browser or another software program at any time. This can also be done automatically. This is possible in all standard Internet browsers. If you deactivate cookies, the functionality of this website may be limited. +Version of this Privacy Policy: **March 2026**