From 1986850fa3c3158b580f95fc67012941eef56ebb Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Tue, 20 Jan 2026 22:36:13 +0100 Subject: [PATCH] Infrastructure: Webserver upgrade and maintenance completed ...some notes to my personal mindmap. - Webserver OS upgrade - Clean-up of services and cronjobs - Apache configuration updated and fine-tuned - deployed Anubis to protect against overload by AI-scraper bots --- wiki/renderengine.html | 4 +- wiki/thinkPad.ichthyo.mm | 801 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 758 insertions(+), 47 deletions(-) diff --git a/wiki/renderengine.html b/wiki/renderengine.html index 0f4b4b38b..853063cce 100644 --- a/wiki/renderengine.html +++ b/wiki/renderengine.html @@ -6219,7 +6219,7 @@ This is the core service provided by the player subsystem. The purpose is to cre :any details of this processing remain opaque for the clients; even the player subsystem just accesses the EngineFaçade -
+
//Integration effort to promote the development of rendering, playback and video display in the GUI//
 This IntegrationSlice was started in {{red{2023}}} as [[Ticket #1221|https://issues.lumiera.org/ticket/1221]] to coordinate the completion and integration of various implementation facilities, planned, drafted and built during the last years; this effort marks the return of development focus to the lower layers (after years of focussed UI development) and will implement the asynchronous and time-bound rendering coordinated by the [[Scheduler]] in the [[Vault|Vault-Layer]]
 
@@ -6264,6 +6264,8 @@ __February.25__: built extended verification mechanisms, including some Node met
 * ⌛ introduce a //placeholder link// to connect JobTicket to the actual invocation (without actual [[Fixture]])
 * ✔ rework and complete the existing node invocation code
 
+__January.26__: During the last nine months, unfortunately I was occupied with generic clean-up, upgrade, infrastructure and research work -- and so there was ''no progress'' regarding the PlaybackVerticalSlice. Just before that recess, an important breakthrough was achieved: a complete node graph was built and invoked end to end in a unit test setting. The further integration up to a RenderJob invocation is still blocked by some yet unresolved [[design mismatch (#1395)|https://issues.lumiera.org/ticket/1395]] related to the //»BufferProvider Protocol«// vs the //»OutputSlot Protocol«//; this is where I'll pick up the development work stalled almost a year ago.
+
 !Decisions
 ;Scheduler
 :is understood as a high-level Service, not a bare bone implementation mechanism
diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm
index 7009a0a12..7cc0cf4f2 100644
--- a/wiki/thinkPad.ichthyo.mm
+++ b/wiki/thinkPad.ichthyo.mm
@@ -110214,10 +110214,10 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension)
 
 
 
-
+
 
-
-
+
+
 
 
 
@@ -161919,6 +161919,93 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
 
 
 
+
+
+
+  
+  
+    

+ Trac wird derzeit unkonventionell verwendet +

+ +
+ + + + +

+ ...rein aus Verzweiflung; ich hab Trac als Möglichkeit genutzt, Einsichten über Themen-Zusammenhänge dauerhaft und dabei flexibel aufzuzeichnen +

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ 2022 war es schon fast tot, als es (bedingt durch die Java ⟼ Jakarta-Migration) aus dem Eclipse-Simrel herausgefallen war. Eine Gruppe von Freiwilligen hat es am Leben erhalten, kämpft aber weiterhin mit exzessiven Schwierigkeiten, da die gesamte Eclipse-Infrastruktur kaum noch aufrecht zu erhalten ist. Es fehlt überall an Resourcen +

+ +
+
+ + + + +

+ Es gibt kein Statement, warum. Aber zu vermuten steht, daß man Trac als "tot" empfunden hat, und zudem XML-RPC ein Risiko darstellt (da 10 Jahre kaum noch gepflegt) +

+ +
+
+ + + + + +
+
+ + + + + + @@ -162540,8 +162627,8 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo - - + + @@ -162564,7 +162651,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
- + @@ -167403,7 +167490,49 @@ that situation will improve in forseeable future.
- + + + + + + + + + + + + + + + + + + + +

+ und dann würde es schmerzhaft teuer. Zahlen würde das dann ich, da ich als einziger die nötigen Mittel übrig habe +

+ +
+
+ + + + + + +

+ Vorher fand ich Anubis „interessant“ (im Sinne von: ein Projekt das man beobachten sollte, weil es eine neuartige Initiative darstellt). Die Mehrheit der Entwickler, die ich kenne, lehnen es ab, teilweise sehr entschieden. Ich sah schon auch das Problem, daß man dann verpflichtend JavaScript braucht. Und ich hab es generell so gehalten, in diesen Fragen die Initiative bei Christian zu lassen. +

+

+ Im September dann habe ich bemerkt, daß das so nicht weiter geht, weil Christian unsere Website nicht genau genug kennt, und sich nicht tiefer auf das Thema einlassen möchte. Er hat lediglich immer cleverere Konstrukte auf der Firewall gebaut, die aber in der Praxis die Seite so einschränken, daß man kaum noch sinnvoll damit arbeiten kann. Und dann hab ich ihm gesagt, daß die meiste Last doch vom Trac kommt. Das wußte er nicht einmal (obwohl wir oft darüber geredet hatten). An der Stelle habe ich dann beschlossen, daß Anubis jetzt praktisch erprobt werden sollte. Allerding muß das ich selber machen, und damit hat sich die Sache bis in den Dezember hinausgezögert. Wie zu erwarten,  liegt der Sachverhalt wesentlich komplexer, als man auf der Meinungsebene denken könnte. Aber mit einigem Investment in Konfiguration und Lernen hab ich jetzt ein Setup, das aus den problematischen Bereichen 90% der PageImpressions raushält. Ob dadurch unser Traffic entsprechend stark sinkt, müssen wir erst sehen, denn die Bots versuchen nun andauern wieder, reinzukommen. Allerdings habe ich bei der Gelegenheit leider feststellen müssen, daß die gesamte Website-Konfiugration von A-Z schlampig und ungepflegt war. Wir hatten nicht einmal korrekte robots.txt Regeln. +

+ +
+
+ + +
@@ -167655,7 +167784,7 @@ that situation will improve in forseeable future. - + @@ -167959,7 +168088,7 @@ that situation will improve in forseeable future. - + @@ -167973,6 +168102,218 @@ that situation will improve in forseeable future. + + + + + + +

+ <!doctype html><html lang="en"><head><title>Oh noes!</title> +

+

+ <link rel="stylesheet" href="/rififi/.within.website/x/xess/xess.min.css?cachebuster=1.24.0"> +

+

+ <meta name="viewport" content="width=device-width, initial-scale=1.0"> +

+

+ <meta name="robots" content="noindex,nofollow"><style> +

+

+         body, +

+

+         html { +

+

+             height: 100%; +

+

+             display: flex; +

+

+             justify-content: center; +

+

+             align-items: center; +

+

+             margin-left: auto; +

+

+             margin-right: auto; +

+

+         } +

+

+ +

+

+         .centered-div { +

+

+             text-align: center; +

+

+         } +

+

+ +

+

+         #status { +

+

+             font-variant-numeric: tabular-nums; +

+

+         } +

+

+ +

+

+         #progress { +

+

+           display: none; +

+

+           width: 90%; +

+

+           width: min(20rem, 90%); +

+

+           height: 2rem; +

+

+           border-radius: 1rem; +

+

+           overflow: hidden; +

+

+           margin: 1rem 0 2rem; +

+

+ outline-offset: 2px; +

+

+ outline: #b16286 solid 4px; +

+

+ } +

+

+ +

+

+         .bar-inner { +

+

+             background-color: #b16286; +

+

+             height: 100%; +

+

+             width: 0; +

+

+             transition: width 0.25s ease-in; +

+

+         } +

+

+      </style><script id="anubis_version" type="application/json">"1.24.0" +

+

+ </script><script id="anubis_challenge" type="application/json">null +

+

+ </script><script id="anubis_base_prefix" type="application/json">"/rififi" +

+

+ </script><script id="anubis_public_url" type="application/json">"" +

+

+ </script></head><body id="top"><script type="ignore"> +

+

+ <a href="/.within.website/x/cmd/anubis/api/honeypot/71324fcd-364b-41ed-9f21-e0f65a535d66/init">Don't click me</a> +

+

+ </script><main><h1 id="title" class="centered-div">Oh noes!</h1><div class="centered-div"> +

+

+ <img id="image" alt="Sad Anubis" style="width:100%;max-width:256px;" +

+

+   src="/rififi/.within.website/x/cmd/anubis/static/img/reject.webp?cacheBuster=1.24.0"><p>Invalid redirect.</p><code><pre>H4sIAAAAAAAA/ypL +

+

+ TC9KTcyrVChKTU1K +

+

+ tVJIzktNK1JQUrJS +

+

+ KKpKTs9RyEit5AIE +

+

+ AAD//8BP3jUkAAAA +

+

+ </pre></code> +

+

+ <p><a href="/">Go home</a></p></div> +

+

+ <footer><div class="centered-div"> +

+

+ <p>Protected by <a href="https://github.com/TecharoHQ/anubis">Anubis</a> +

+

+ From <a href="https://techaro.lol">Techaro</a>. Made with ❤️ in .</p> +

+

+ <p>Mascot design by <a href="https://bsky.app/profile/celphase.bsky.social">CELPHASE</a>.</p> +

+

+ <p>This is a <b>Gateway page</b> to protect the Lumiera website against abuse by aggressive data scraping &mdash; +

+

+ using excess bandwidth beyond fair use and especially disregarding the <tt>robots.txt</tt> is considered +

+

+ improper use, as it threatens our ability to provide Lumiera.org as open and free resource to everyone.<br/> +

+

+ See: <a href="https://lumiera.org/project/legal/legal.html#GDPR">GDPR page</a>.-- +

+

+ <a href="/.within.website/x/cmd/anubis/api/imprint">Imprint</a></p> +

+

+ <p>This website is running Anubis version <code>1.24.0</code>.</p></div> +

+

+ </footer></main> +

+

+ </body></html> +

+ +
+
+ + @@ -168349,7 +168690,7 @@ that situation will improve in forseeable future.
- + @@ -168498,7 +168839,7 @@ that situation will improve in forseeable future. - + @@ -168573,6 +168914,94 @@ that situation will improve in forseeable future. + + + + + + +

+ anubis@.service +

+ +
+ +
+ + + + +

+ [Service] +

+

+ # 2026/1 Ichthyo : use Apache user to simplify log file handling +

+

+ #                  Yet recreate the hardening implied by DynamicUser +

+

+ User=www-data +

+

+ ProtectSystem=strict +

+

+ ProtectHome=yes +

+

+ PrivateTmp=yes +

+

+ PrivateDevices=yes +

+

+ NoNewPrivileges=yes +

+

+ ProtectKernelTunables=yes +

+

+ CapabilityBoundingSet= +

+

+ # +

+

+ # Allow to write into the Apache log dir +

+

+ ReadWritePaths=/var/log/apache2 +

+ +
+ + + + + + +

+ Das Template konfiguriert DynamicUser=yes +

+

+ Das impliziert protectSystem=strict, das heißt per Default ist das gesamte System für den Service nur read-only. Ausnahmen werden explizit konfiguriert. +

+ +
+
+ + + + +

+ Nehme ihm alle erweiterten Capabilities weg (CapabilityBoundingSet= ). Nur das, was ein gewöhnlicher Service braucht (Bind auf nicht-privilegierte Ports) +

+ +
+
+
+
@@ -168728,6 +169157,21 @@ that situation will improve in forseeable future. + + + + + + +

+ Anubis behandelt gemeinsam den Zugriff auf verschiedene Virtual Hosts, und auch auf den Pfad "/doxy" auf www.lumiera.org +

+ +
+
+ + + @@ -168779,9 +169223,14 @@ that situation will improve in forseeable future. + + + + - + + @@ -168930,8 +169379,89 @@ that situation will improve in forseeable future. + + + - + + + + + + + + + + + +

+ cat ANUBIS.csv | awk -F, '{print $2}' |sort|uniq -c | \ +

+

+ awk '{ b = ($1>100 ? ">100"\ +

+

+            : $1>80 ? ">80" \ +

+

+            : $1>60 ? ">60" \ +

+

+            : $1>40 ? ">40" \ +

+

+            : $1>20 ? ">20" \ +

+

+            : $1>10 ? ">10" \ +

+

+            :  $1>5 ? ">5"  \ +

+

+            :  $1>1 ? ">1" : "1"); \ +

+

+        bucket[b]++ } \ +

+

+      END { k=">100 >80 >60 >40 >20 >10 >5 >1 1"; \ +

+

+            split(k,key); \ +

+

+            for (i=1; i<=length(key); ++i) \ +

+

+               print key[i],bucket[key[i]]+0 }' +

+ +
+ + + +

+ cat 2026-01-14.anubis.csv | awk -F, '{print $2}' |sort|uniq -c |awk '{ b = ($1>100 ? ">100" : $1>80 ? ">80" : $1>60 ? ">60" : $1>40 ? ">40" : $1>20 ? ">20" : $1>10 ? ">10" : $1>5 ? ">5" : $1>1 ? ">1" : "1"); bucket[b]++ } END { k=">100 >80 >60 >40 >20 >10 >5 >1 1"; split(k,key); for (i=1; i<=length(key); ++i) print key[i],bucket[key[i]]+0 }' +

+ +
+
+
+
+
+
+
+ + + + + + + + + + @@ -168943,7 +169473,7 @@ that situation will improve in forseeable future. - + @@ -172817,8 +173347,8 @@ that situation will improve in forseeable future. - - + + @@ -172855,10 +173385,11 @@ that situation will improve in forseeable future. - + - + + @@ -172947,7 +173478,7 @@ that situation will improve in forseeable future. - + @@ -174962,7 +175493,8 @@ runner.run(test_suite()) - + + @@ -175579,7 +176111,7 @@ runner.run(test_suite()) - + @@ -177786,7 +178318,7 @@ runner.run(test_suite())
- + @@ -179278,7 +179810,7 @@ runner.run(test_suite())
- + @@ -180821,6 +181353,20 @@ runner.run(test_suite()) +
+
+ + + + + + + + + + + + @@ -180841,19 +181387,9 @@ runner.run(test_suite())
- - - - - - - - -
-
- - + + @@ -181151,8 +181687,8 @@ runner.run(test_suite())
- + @@ -181345,8 +181881,8 @@ runner.run(test_suite())
- - + + @@ -181419,7 +181955,8 @@ runner.run(test_suite())
- + + @@ -181432,7 +181969,7 @@ runner.run(test_suite()) - + @@ -181629,11 +182166,177 @@ runner.run(test_suite()) + + + + + + +

+ Ergebnis: weiterhin sehr effektiv +

+ +
+ + + + +

+ Statistiken heute 2026-01-14 +

+

+ +

+

+ www.lumiera.org: +

+

+ P.I   U.V   Data +

+

+ 24331 11541 877.78 MiB +

+

+ +

+

+ Gateway-Git +

+

+ 66595 56167 494.48 MiB +

+

+ +

+

+ Gateway-Trac +

+

+  7795  5676  81.73 MiB +

+

+ +

+

+ hinter Anubis-Git +

+

+   432    74  26.30 MiB +

+

+ +

+

+ hinter Anubis-Trac +

+

+   349   134   2.72 MiB +

+

+ +

+

+ hinter Anubis-Doxy +

+

+   250   130   1.42 MiB +

+

+ +

+

+ +

+

+ Anubis-Statistik +

+

+ 71972 Transaktionen +

+

+ 58102 "CHALLENGE" +

+

+ 13870 "DENY" +

+

+ +

+

+ 58092 "default" +

+

+  8283 "bot/alibaba-cloud" +

+

+  4667 "bot/huawei-cloud" +

+

+   884 "bot/ai-catchall" +

+

+    19 "bot/ai-crawlers-training" +

+

+    13 "bot/ai-crawlers-search" +

+

+    10 "threshold/mild-suspicion" +

+

+     3 "bot/no-user-agent-string" +

+

+     1 "bot/ai-clients" +

+

+ +

+

+ IP-Frequency Anubis +

+

+ >100 34 +

+

+  >80 21 +

+

+  >60 21 +

+

+  >40 18 +

+

+  >20 27 +

+

+  >10 73 +

+

+   >5 126 +

+

+   >1 2281 +

+

+    1 55720 +

+

+ +

+

+ Die Pfad-Auswertung aus Anubis zeigt,
daß nur 15 Requests den PoW-Challenge gelöst haben... +

+ +
+
+
- + @@ -181882,16 +182585,22 @@ runner.run(test_suite()) - + + - + + + + + + - - + + - +