diff --git a/web/app.py b/web/app.py index f4fdcfa..0decc0b 100644 --- a/web/app.py +++ b/web/app.py @@ -66,6 +66,15 @@ def create_app() -> Flask: resp.headers.setdefault("Content-Security-Policy", "default-src 'self'; script-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net; style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net; img-src 'self' data:; font-src 'self' https://cdn.jsdelivr.net; connect-src 'self'; frame-ancestors 'none';") return resp + @app.route("/privacy-policy") + def privacy_policy(): + from config import Config + return render_template( + "privacy_policy.html", + last_updated="April 14, 2026", + invite_expiry_hours=Config.INVITE_EXPIRY_HOURS, + ) + @app.errorhandler(400) def bad_request(_): return "Bad request", 400 diff --git a/web/templates/admin/base.html b/web/templates/admin/base.html index 35eae1e..e5e4671 100644 --- a/web/templates/admin/base.html +++ b/web/templates/admin/base.html @@ -40,6 +40,12 @@ {% endif %} {% endwith %} {% block content %}{% endblock %} + {% block scripts %}{% endblock %} diff --git a/web/templates/auth/admin_login.html b/web/templates/auth/admin_login.html index 314098e..5ec9bac 100644 --- a/web/templates/auth/admin_login.html +++ b/web/templates/auth/admin_login.html @@ -58,6 +58,9 @@ Back to regular login +
Last updated: {{ last_updated }}
++ The controller responsible for data processing within this service is: +
+
+ Simon
+ E-Mail: simon@devanturas.net
+
+ For any questions, requests, or concerns regarding your personal data, please contact the + address above. +
+ ++ MCLogger is a self-hosted logging and analytics panel for Minecraft server operators. + It collects and displays in-game activity data (sessions, chat, commands, deaths, block + events, proxy events) and provides a multi-tenant web interface for authorised server + administrators and group members. +
+ +When players connect to a Minecraft server that uses the MCLogger plugin, the + following data is automatically recorded:
++ This data is stored in a MariaDB database operated by the server operator. Players should + be informed about this logging by the Minecraft server's own rules or MOTD. +
+ +When a user account is created for the web panel, the following data is stored:
++ When a group administrator invites a user by e-mail, a time-limited invite token is + generated and stored together with the recipient's e-mail address. The token expires + after {{ invite_expiry_hours }} hours. Accepted and revoked tokens are retained in the database for + audit purposes. +
+ ++ MCLogger uses server-side sessions (Flask session cookie) to keep you logged in. + The session cookie is HTTP-only, SameSite-protected, and expires when your browser + session ends. +
+ ++ The web server (gunicorn) may write standard HTTP access logs containing IP + addresses, request paths, and timestamps. These logs are used for operational + security monitoring and are not shared with third parties. +
+ +| Data | +Purpose | +Legal Basis (GDPR) | +
|---|---|---|
| Minecraft player activity data | +Server administration, moderation, abuse prevention | +Art. 6(1)(f) — legitimate interest of the server operator | +
| Panel user accounts | +Authentication and authorisation for the web panel | +Art. 6(1)(b) — performance of a contract / access service | +
| E-mail addresses (invites) | +Sending one-time panel invitation links | +Art. 6(1)(a) — consent (the invite was requested by a group admin) | +
| Server access logs | +Security monitoring and error diagnosis | +Art. 6(1)(f) — legitimate interest | +
+ Data collected by MCLogger is not sold, rented, or shared with third + parties. All data remains within the infrastructure controlled by the server operator. + No third-party analytics services, advertising networks, or tracking pixels are used. +
+
+ External resources loaded by the web interface (Bootstrap CSS/JS and Bootstrap Icons)
+ are served from the jsDelivr CDN (cdn.jsdelivr.net). jsDelivr may process
+ your IP address as part of delivering these static files. Please consult
+ jsDelivr's privacy policy
+ for details.
+
+ MCLogger applies the following technical safeguards: +
+If you are subject to the GDPR you have the following rights:
++ To exercise any of these rights, please contact: + simon@devanturas.net +
++ You also have the right to lodge a complaint with your national data protection + supervisory authority. +
+ ++ This privacy policy may be updated to reflect changes in the software or applicable law. + The "Last updated" date at the top of this page indicates when the most recent revision + was made. +
+ +diff --git a/web/templates/auth/login.html b/web/templates/auth/login.html index d9ae180..c9a2d46 100644 --- a/web/templates/auth/login.html +++ b/web/templates/auth/login.html @@ -58,6 +58,9 @@ Site Admin Login +
diff --git a/web/templates/base.html b/web/templates/base.html
index d2d4718..779e167 100644
--- a/web/templates/base.html
+++ b/web/templates/base.html
@@ -171,6 +171,12 @@
{% endwith %}
+ + +
+ + + + +
+