Monat: April 2026

XPenology Update: Von DSM 6.2.3 auf DSM 7.2.2 mit dem Arc Loader

XPenology Update: Von DSM 6.2.3 auf DSM 7.2.2 mit dem Arc Loader

Fünf Jahre alter NAS-Build, frisches DSM 7.2.2 – wie das auf eigener Hardware klappt und was der Arc Loader von AuxXxilium damit zu tun hat.

Hey Ho Folks,

heute gibt es mal etwas abseits von MDM und Intune – aber wer mich kennt, weiß: ich bin ein Spielkind. Und das Spielkind hatte jahrelang ein stabiles HP ProLiant MicroServer N54L zuhause laufen – mit XPenology DSM 6.2.3-25426 Update 3 aus dem Jahr 2020. Darauf laufen Docker Container, ein Medienserver, HomeBridge, Portainer, Pangolian Gateway und diverse andere Smarthome-Dienste.

Die Zeit war reif: raus aus 2020, rein ins Jahr 2025 – und das bedeutet DSM 7.2.2.

In diesem Post zeige ich euch Schritt für Schritt, wie das mit dem Arc Loader von AuxXxilium funktioniert – und ja, auch für Mac-User!

ℹ️ Was ist XPenology?

XPenology ist ein inoffizieller Bootloader, der es ermöglicht, Synology DSM auf eigener (x86) Hardware zu betreiben.

Man bekommt die gewohnte Synology-Oberfläche und alle DSM-Features – ohne an Synology-Hardware gebunden zu sein.

Mehr dazu: https://xpenology.net/en/introduction/

🔄 Warum überhaupt updaten?

DSM 6.2.3 ist seit 2020 eingefroren – es gibt zwar noch Security Patches, aber keine neuen Features mehr. DSM 7.x bringt hingegen vieles mit:

  • Deutlich verbessertes Container Manager Package (ehemals Docker)
  • Btrfs-Verbesserungen & stabilere Volume-Verwaltung
  • Neuere Synology-Pakete & aktive Weiterentwicklung
  • Bessere Performance auf moderner Hardware
  • Aktive Sicherheitsupdates & Support-Laufzeit

⚠️ Achtung: Kein offizieller Support!

XPenology ist ein Community-Projekt und kein offiziell von Synology unterstützter Weg.

Einsatz auf eigene Verantwortung – kein Produktiveinsatz ohne entsprechendes Bewusstsein für das Risiko.

Vor dem Update unbedingt ein vollständiges Backup aller Daten erstellen!

🛠️ Was du brauchst – Voraussetzungen

Was

Details

Hardware

HP ProLiant MicroServer N54L oder kompatibles x86-System

Bootfähiger USB-Stick

Mindestens 1 GB, alle Daten werden überschrieben

Arc Loader IMG

Download von auxxxilium.tech/redpill/

balenaEtcher (Mac)

Download von etcher.balena.io – GUI-Tool zum Flashen

Terminal (Mac-Alternative)

dd-Befehl – kein separates Tool nötig

Netzwerkzugang

Router-Zugang zum Ermitteln der NAS-IP-Adresse

Backup!

Unbedingt vor dem Update ein vollständiges Backup erstellen!

⚙️ Was ist der Arc Loader?

Der Arc Loader ist ein brillanter Fork auf XPenology-Basis, entwickelt von AuxXxilium Tech. Das Projekt ist Made in Germany 🇩🇪 – und was da an Arbeit drinsteckt, ist einfach beeindruckend. Der Loader erkennt automatisch die Hardware, bietet eine Browser-basierte Konfigurationsoberfläche und patcht das DSM-Image vollautomatisch.

ℹ️ Arc Loader Highlights

Browser-GUI über Port 7681 für einfache Konfiguration

Automatisches Hardware-Erkennen (NIC, HDD-Controller, etc.)

Model Selection Helper: findet kompatible Synology-Modelle für eure Hardware

Auto Mode: vollautomatisches Image-Patching ohne manuellen Eingriff

Unterstützt DSM 7.1 und DSM 7.2.x

📀 Schritt 1: Bootfähigen USB-Stick erstellen

Zuerst brauchen wir das Arc Loader IMG – Download unter: https://auxxxilium.tech/redpill/

Mac-Variante: balenaEtcher (empfohlen)

Für Mac-User ist balenaEtcher die einfachste Option. Download unter etcher.balena.io, DMG starten, IMG laden und auf den USB-Stick flashen. macOS fragt nach dem Passwort – das ist normal.

Mac-Variante: Terminal (dd)

Wer lieber ohne GUI arbeitet:

# 1. Image entpacken (falls .gz oder .zip)

gunzip arc-loader.img.gz

# 2. USB-Stick identifizieren

diskutil list

# 3. Stick aushängen (X = Disknummer, z.B. 2)

diskutil unmountDisk /dev/diskX

# 4. Image schreiben (rdiskX für schnellere Übertragung)

sudo dd if=arc-loader.img of=/dev/rdiskX bs=4m

sync

⚠️ Wichtiger Hinweis nach dem Flashen

macOS meldet nach dem Flashen, dass der USB-Stick nicht lesbar ist – das ist vollkommen normal!

Der Stick ist korrekt beschrieben und bootfähig. Die Meldung einfach wegklicken (nicht formatieren).

🌐 Schritt 2: Arc Loader konfigurieren

USB-Stick in den Zielserver einstecken und vom Stick booten. Danach Arc Loader im Browser aufrufen:

http://<IP-ADRESSE-DES-NAS>:7681

ℹ️ Tipp: IP-Adresse finden

Der Arc Loader bekommt beim ersten Start eine neue IP-Adresse per DHCP – diese ist NICHT identisch mit der bisherigen NAS-IP!

Einfach im Router-Dashboard nachschauen: welches Gerät hat sich zuletzt neu eingebucht?

Alternativ: nmap -sn 192.168.x.0/24 im Terminal – alle aktiven Hosts im Netzwerk auflisten.

Modell auswählen (CHOOSE MODEL)

Im Arc-Menü mit den Pfeiltasten navigieren und CHOOSE MODEL wählen. Welches Modell passt zur eigenen Hardware? Hier hilft der Model & Platform Selection Helper auf der Arc Wiki-Seite:

Wiki

Mein Setup: epyc7002 Plattform → Modell SA6400. Der Helper hat mir satte 26 kompatible Modelle gelistet – da lässt sich sicher für jeden etwas finden.

DSM Version wählen

Nach der Modellwahl folgt die DSM-Version. Hier eine Übersicht zum aktuellen Stand:

Version Status & Hinweis
DSM 6.2.3 Legacy – keine aktiven Updates mehr, nur noch Security Patches
DSM 7.1 Stabil, breite Hardware-Kompatibilität
DSM 7.2.2 ✅ Empfohlen – stabil, aktuelle Features, Arc Loader-Support
DSM 7.3 ⚠️ Noch nicht empfohlen – AuxXxilium gibt Version noch nicht frei (Bugs)

Auto Mode vs. Manual Mode

  • Auto Mode: Arc erkennt Hardware automatisch und baut das Image selbst. Empfohlen für die meisten Systeme.
  • Manual Mode: Volle Kontrolle über alle Parameter – nur für Fortgeschrittene mit spezieller Hardware.
💡 Empfehlung: Auto Mode

Für Standard-x86-Hardware wie den HP MicroServer N54L ist der Auto Mode absolut ausreichend und funktioniert zuverlässig.

Arc erkennt NIC, HDD-Controller und andere Komponenten automatisch korrekt.

🚀 Schritt 3: Image bauen und DSM installieren

Nach der Konfiguration startet Arc den Build-Prozess: Das DSM-Image wird heruntergeladen und automatisch gepatcht. Anschließend bootet das System neu.

⚠️ WICHTIG: Beim Boot-Screen warten!

Nach dem Neustart erscheint ein Boot-Screen mit einem Timer – NICHT Enter drücken!

Arc muss erst die NIC vollständig laden (passiert ganz am Ende des Bootprozesses).

Geduld: Das kann 2-3 Minuten dauern. Erst dann ist DSM über den Browser erreichbar.

Sobald der Arc Loader vollständig hochgefahren ist, DSM-Weboberfläche aufrufen:

http://<IP-ADRESSE-DES-NAS>:5000

Auf der Welcome-Seite startet die eigentliche DSM-Installation. Hier kurze Übersicht der Schritte:

  • DSM-Installationsassistent startet: Installieren auswaehlen
  • DSM 7.2.2 wird installiert – Dauer: ca. 5-10 Minuten
  • System startet automatisch neu
  • Bei bestehendem System: vorhandene Konfiguration auf den Daten-Volumes wird erkannt und kann übernommen werden
  • Nach finaler Initialisierung: Login mit bestehendem Benutzernamen möglich

ℹ️ Bestehende Daten & Konfiguration

Wer von DSM 6.x auf DSM 7.x upgraded und die gleichen Daten-Volumes beibehält, kann die vorhandene Konfiguration meist direkt übernehmen.

DSM erkennt die Volumes beim ersten Boot automatisch und bietet die Wiederherstellung der Einstellungen an.

Dennoch gilt: Backup vor dem Update ist Pflicht – verlasst euch nicht blind darauf!

🔧 Nach dem Update: Was jetzt?

DSM 7.2.2 läuft – aber nach einem Major-Upgrade von 6.x auf 7.x gibt es erfahrungsgemäß einige Punkte, die Aufmerksamkeit brauchen:

  • Pakete aktualisieren: Package Center öffnen und alle verfügbaren Updates einspielen
  • Überholte Pakete entfernen: Manche DSM-6.x-Pakete sind in DSM 7.x nicht mehr kompatibel
  • Container Manager prüfen: Docker-Container nach dem Upgrade auf Funktionstüchtigkeit prüfen
  • Medienserver (z.B. Plex, Emby): Hier haben sich unter DSM 7.x einige Dienste geändert – etwas Zeit einplanen
  • HomeBridge & Portainer: Bei mir problemlos übernommen, kurz die Logs prüfen
  • Benutzerrechte & Freigaben: Einmal durchgehen, ob alle Shares korrekt konfiguriert sind

💡 Mein persönliches Fazit

Das System läuft nach dem Update deutlich stabiler und ruhiger als vorher.

Alle Portainer-Container, Scripts und Services sind direkt wieder angesprungen.

Der Medienserver brauchte etwas Extra-Aufmerksamkeit – das war zu erwarten.

Hut ab an AuxXxilium: Der Arc Loader ist ein wirklich beeindruckendes Community-Projekt. Einfach WOW.

📌  Kurzfassung

💡 TL;DR

1. Arc Loader IMG von auxxxilium.tech herunterladen

2. Mit balenaEtcher (Mac) oder dd (Terminal) auf USB-Stick flashen

3. NAS vom Stick booten → Arc Loader über http://<IP>:7681 aufrufen

4. Passendes Synology-Modell auswählen (Wiki-Helper nutzen!) → DSM 7.2.2 wählen → Auto Mode

5. Arc baut das Image automatisch, System bootet neu

6. DSM-Installation über http://<IP>:5000 starten

7. Bestehende Konfiguration übernehmen, Pakete updaten, fertig!

💬 Eure Meinung interessiert mich!

Betreibt ihr auch ein XPenology-Setup? Welches Modell habt ihr gewählt und welche Erfahrungen habt ihr mit dem Arc Loader gemacht? Schreibt es in die Kommentare!

Besonders interessiert mich: Wer hat den Arc Loader mit exotischerer Hardware (AMD Ryzen, Intel i-Serie, etc.) zum Laufen gebracht? Und welche Modell-Kombi hat sich bewährt?

Garmin schweigt, Strava spricht – wie ich mein eigenes Performance-Dashboard gebaut habe

Garmin kann alles – gibt aber nichts raus.

Garmin brachte vor ein paar Monaten mit Connect+ ein Performance-Dashboard raus. Ganz nett und macht  Spaß, aber kostet halt Geld. Da nun auch mein Sohn mit einer Garmi Forerunner 165 unterwegs ist, wollte ich ihm dein Dashboard zur Verfügung stellen. Einfach um die Daten auszuwerten.
Und da mein Verstand der Programmierung nicht ganz so zugeneigt ist, habe ich einmal ein Seöbstversuch mit der KI/AI Claude gewagt (da Sie ja aktuell in aller Munde ist).
Was dann passierte, war eine mehrstundige Entwicklungsreise mit Claude – inklusive echter Fehler, echter Debugging-Sessions und einem Ergebnis das ich so nicht erwartet hatte: ein vollstaendiges, mobil-optimiertes Performance-Dashboard mit PMC-Chart, Rennprognosen, PWA-Support und automatischer Device-Erkennung. Und einer Erkenntnis uber Garmin, die ich schon ahnte, aber so direkt noch nie formuliert hatte.

Garmin: Die beste Hardware im Spiel – und eine API-Blackbox

Fangen wir mit dem Elefanten im Raum an. Garmin macht schlicht die beste Fitness-Hardware die es gibt (nein ich werde nicht gesponsort oder ähnliches, aber ich habe halt schon Jahrelang Apple und auch Wahoo getestet und genutzt). Die Uhr trackt alles – Herzfrequenz, VO₂max, Training Readiness, Schaltqualität, Body Battery, Stresslevel. Die Sensoren sind präzise, die Akkulaufzeit ist unschlagbar, das Ökosystem auf Garmin Connect ist ausgereift. Wer ernsthaft trainiert, läuft oder radelt, kommt an Garmin kaum vorbei.

Das Problem: Garmin hält seine API-Türen konsequent geschlossen (UND JA DAS NERVT ECHT DERBE Wütend).

Die Garmin Health API und die Connect API existieren – aber sie sind ausschließlich für zertifizierte Unternehmenspartner und Gesundheitsplattformen zugänglich. Kein offener Developer-Zugang, kein simples OAuth wie bei anderen Plattformen. Wer da rein will, braucht eine formale Partnerschaft mit Garmin. Das ist nicht mal bürokratisch umständlich – es ist schlicht nicht vorgesehen.

⚠️ Kurz zusammengefasst: Garmin ist das Apple-Ökosystem unter den Fitness-Plattformen. Alles drin, nichts raus. Hervorragende Hardware, aber die Daten gehören Garmin – und die teilen sie nicht leichtfertig.

Strava: Die Datenkrake, die uns rettet Feiernde Hände

Garmin synchronisiert automatisch alle Aktivitäten zu Strava. Lauf beendet, Uhr abgenommen, zehn Sekunden später ist die Aktivität auf Strava. Das ist der Standardworkflow für die meisten Garmin-Nutzer – und genau dieser Umweg wird zur Lösung.

Strava ist im Grunde die Datendrehscheibe für alles was sich auf zwei Beinen oder Rädern bewegt. Jede App, jedes Gerät, jede Plattform synct zu Strava. Und im Gegensatz zu Garmin hat Strava eine vollständig offene, gut dokumentierte API mit echtem OAuth-Flow und Rate Limits die man als Entwickler versteht.

💡 Die Erkenntnis: Strava ist nicht die Datenanwendung – Strava ist die Datenkrake, die all unsere Aktivitäten von allen Geräten saugt und als strukturierte API wieder rausgibt. Garmin liefert die Qualitätsdaten, Strava liefert den Zugang.

Der Umweg ist also eigentlich gar keiner. Er ist der einzig gangbare Weg – und wie sich zeigen wird, auch der bessere.

Iteration 1: Der erste Prototyp – und das CORS-Problem

Der erste Ansatz war ein React-Artifact direkt im Chat. Strava API abfragen, Daten anzeigen, fertig. Klingt einfach. Das Problem kommt beim Token-Austausch. Stravas OAuth-Endpoint blockiert Browser-Requests aus Sicherheitsgruenden – CORS macht das zunichte. Der Access Token kann nicht direkt im Browser geholt werden. Ein serverseitiger Schritt ist zwingend.

Die Lösung in Version 1: ein curl-Befehl den man manuell im Terminal ausführet, den Token copy-pastet. Funktioniert – als User kein Problem. Als dauerhafte Lösung aber nicht tragbar.

Das Ergebnis war ein dunkles Dashboard mit Strava-Orange, Athletenprofil, den letzten 30 Aktivitäten und YTD-Statistiken. Nicht schlecht für einen ersten Wurf. Aber der curl-Workflow war nichts, was ich meinem Sohn zumuten wollte. 😄 Sah halt auch sch***e aus ⁠Zwinkern.

Iteration 2: PHP auf den Webspace – der richtige Ansatz

PHP löst das CORS-Problem elegant: Der Token-Austausch passiert serverseitig per cURL, der Browser bekommt den fertigen Token nie zu Gesicht. Dazu: automatisches Token-Refresh, Session-basierte Authentifizierung und paginierter Datenabruf für bis zu 12 Monate Aktivitätshistorie.

// Token läuft ab? Kein Problem – läuft automatisch im Hintergrund

if (time() > $_SESSION[‚expires_at‘]) {

// Neuen Token per refresh_token holen

// User merkt nichts davon

}

Die Strava API gibt maximal 200 Aktivitäten pro Request zurück. Ein Jahr Training kann locker 400-500 Einträge bedeuten – also paginiert man. Seite für Seite bis alle Daten da sind, dann alles lokal filtern.

Was in Version 2 dazukam:

  • PHP-OAuth ohne manuelles curl – Strava-Login direkt im Browser, kein Gebastel
  • 12 Monate Aktivitaetshistorie, vollständig paginiert
  • Chart.js: Wochenvolumen gestapelt (Laufen/Radfahren), Pace-Trend, Sport-Verteilung
  • GitHub-style Trainingskalender (Heatmap der letzten 26 Wochen)
  • Sortierbare Aktivitätstabelle mit Suche und Filtern

Das Sicherheitsproblem: Wer darf rein?

Drei Optionen wurden diskutiert: htaccess-Passwort, PHP-Passwortabfrage, oder die eleganteste Lösung: die Strava Athlete-ID als Whitelist.

Nach dem ersten Login sieht man die eigene numerische Strava-ID im Header. Diese wird einmalig in der Konfigurationsdatei eingetragen. Danach kommt jeder andere Account nach dem OAuth-Callback auf eine Fehlermeldung – ohne jemals Daten zu sehen.

💡 Schöner Nebeneffekt: PHP-Sessions sind per Browser vollständig isoliert. Jeder Nutzer sieht automatisch nur seine eigenen Daten – ohne aufwändige Benutzerverwaltung.

Das Athleten-Limit: Wenn Strava querläuft (Runde 1)

Dann wollte auch mein Sohn das Dashboard nutzen. Und Strava lieferte prompt:

Fehler 403: Limit der verbundenen Sportler überschritten

Neue, nicht-verifizierte Strava API-Apps dürfen nur eine begrenzte Anzahl an Athleten verbinden. Nicht weil irgendetwas falsch konfiguriert ist – sondern weil Strava im Sandbox-Modus ein hartes Limit setzt.

Die Lösung: Jeder bekommt seine eigene Strava API-App. Kostenlos, dauert zwei Minuten.

$APPS = [

‚ICH‘ => [

‚client_id‘ => ‚12345‘, // Meine API-App

‚client_secret‘ => ‚abc…‘,

],

’sohn‘ => [

‚client_id‘ => ‚67890‘, // Seine API-App

‚client_secret‘ => ‚xyz…‘,

],

];

Ruft jemand strava.php ohne Parameter auf, erscheint eine Profilauswahl. Mit ?app=ICH oder ?app=sohn geht es direkt ins persoenliche Dashboard. Sessions vollständig isoliert – kein Athleten-Limit mehr.

Iteration 3: Das grosse Feature-Update – wie Garmin Connect, aber meins

Performance Management Chart (PMC)

CTL (Fitness, 42-Tage-EMA), ATL (Fatigue, 7-Tage-EMA) und TSB (Form = CTL minus ATL) als überlagerte Linien. Basis ist die Suffer Score aus der Strava API. Der Form-Indikator zeigt: Peak Form, Frisch, Neutral, Müde oder Übertraining. Das kenn ich von Garmin – und ja, es trifft meistens.

Rennprognosen per Riegel-Formel

Aus den schnellsten fünf Läufen werden automatisch Zielzeiten für 5K, 10K, Halbmarathon und Marathon berechnet: T2 = T1 x (D2/D1)^1.06 – bekannt aus der Laufwissenschaft, erstaunlich zuverlässig.

Herzfrequenz-Zonen und dynamische Filter

Z1 bis Z5 automatisch aus der maximalen Herzfrequenz berechnet. Zeitraum frei wählbar: 1M, 3M, 6M, 12M, alles. Sport-Filter, Freitextsuche, sortierbare Aktivitätstabelle. Alles live, alles ohne Seiten-Reload.

Feature Technik Details
Performance Management Chart CTL, ATL, TSB als Linien Wie Garmin Connect – selbst gehostet
Rennprognosen Riegel-Formel automatisch 5K / 10K / HM / Marathon
Herzfrequenz-Zonen Z1–Z5 automatisch Basis: Max-HF aus eigenen Daten
Dynamische Filter Zeitraum + Sport + Suche Live ohne Seiten-Reload
Trainingskalender GitHub-style Heatmap 26 Wochen Ueberblick
Bestleistungen Pro Sportart Laengste, schnellste, hoechste
Aktivitaetstabelle Alle Spalten sortierbar Mit Paginierung

Iteration 4: Mobile First – weil 90% Handy

Das bisherige Layout war Desktop-first – suboptimal wenn das Dashboard zu 90% vom Smartphone aus genutzt wird. Also: kompletter Neuaufbau, mobile-first.

  • Bottom Navigation Bar – vier Tabs, immer unten fixiert, daumenfreundlich erreichbar
  • KPI-Karten horizontal swipebar – Snap-to-Card, kein Tabellen-Cramming auf 375px
  • Aktivitäten als Cards statt Tabelle – Tabellen auf Mobile sind einfach keine gute Idee
  • PWA-Support – startet ohne Safari-UI vom iPhone-Homescreen als Vollbild-App
  • Safe Area Support – Notch, Home Indicator, Dynamic Island: alles berücksichtigt

💡 Tipp: URL im Safari oeffnen, ‚Zum Home-Bildschirm‘ auswählen. Das Dashboard startet danach als Vollbild-App ohne Browser-Chrome. Fühlt sich nativ an.

Praxistest: Drei Fehler, drei Lernmomente

Bis hierher klingt alles glatt. War es nicht. Der Praxistest hat drei echte Probleme geliefert – die ich nicht verschweigen will, weil sie den interessantesten Teil der Geschichte ausmachen.

Fehler 1: Authorization Error beim Sohn

Nach dem Autorisieren bei Strava kam direkt beim Redirect zurück: Authorization Error. Ursache: In der Strava API-App war als Callback-Domain lajdych.com eingetragen, die Seite lief aber unter www.lajdych.com. Strava ist da gnadenlos exakt – ein fehlendes www reicht für einen 400er.

⚠️ Merke: Die Callback-Domain muss exakt mit der Domain übereinstimmen die im Browser aufgerufen wird. Kein https://, kein Pfad, nur die Domain – und genau so wie sie in der URL steht.

Fehler 2: Logout und Profilwechsel funktionierten nicht

Der Logout hat die Session gelöscht – aber dann zurück zu ?app=ICH geleitet. Damit wurde app_key sofort wieder in die Session geschrieben und man landete wieder auf der Login-Seite desselben Profils statt auf der Profilauswahl.

Der Fix: Logout leitet jetzt zu $baseUrl ohne jeden Parameter. Zusätzlich gibt es ?switch=1 als eigenen Endpunkt der nur den app_key löscht und zur Profilauswahl zurückschickt.

// Logout: KEIN ?app= in der Redirect-URL!

header(‚Location: ‚ . $baseUrl); exit;

// Profil wechseln

if (isset($_GET[’switch‘])) {

unset($_SESSION[‚app_key‘]);

header(‚Location: ‚ . $baseUrl); exit;

}

Fehler 3: HTTP 500 nach dem Update

Nach dem Einbauen der Device-Detection-Logik kam ein blanker HTTP 500. Kein Fehlertext im Browser, nur weisser Bildschirm. Ursache: beim Einfügen des neuen Code-Blocks hatte ich das schliessende <?php endif; ?> des Haupt-Dashboard-Blocks gelöscht. PHP bekam ein syntaktisch unvollständiges if/else und hat die Datei komplett verweigert.

Das ist die Art von Fehler, die halt manchmal trotzdem passiert er & proggen ist nicht meine passion Nicht amüsiert. Weil man auf den Inhalt schaut und nicht auf die Klammern. Display Errors einschalten war richtig, hat hier aber nichts angezeigt, weil der Parse Error vor dem Output passiert. Der Blick in die Server-Error-Logs hätte es sofort gezeigt. 😄

Iteration 5: Automatische Device-Erkennung

Das Dashboard erkennt jetzt automatisch ob es auf einem Handy oder am Desktop aufgerufen wird – und passt die Ansicht entsprechend an. Kein manueller Wechsel, keine separaten URLs.

$isMobile = (bool) preg_match(

‚/(android|iphone|ipad|ipod|mobile|blackberry|opera mini|windows phone)/i‘,

$_SERVER[‚HTTP_USER_AGENT‘] ?? “

);

iPhone, iPad, Android: Mobile-Ansicht mit Bottom-Nav und swipebaren KPI-Karten. Alles andere: Desktop-Ansicht mit Top-Tab-Navigation, 5-Spalten-KPI-Grid und breiteren Charts. Zusätzlich gibt es einen manuellen Override-Button im Header – wird in der Session gespeichert.

Das Athleten-Limit: Runde 2

Und dann kam es nochmal. Nachdem alles lief und ich mich mit meinem Account einloggen wollte:

Fehler 403: Limit der verbundenen Sportler überschritten

Diesmal nicht wegen meines Sohns – sondern weil durch die vielen Verbindungsversuche, Fehler und Neustarts während der Entwicklung das Kontingent der App aufgebraucht war. Strava zählt nicht gleichzeitig aktive Athleten, sondern alle die jemals verbunden waren – inklusive fehlgeschlagener Versuche.

Die Lösung: App löschen und neu anlegen. Frische App, frisches Kontingent. Für meinen Sohn dasselbe.

⚠️ Wichtig für alle die das nachbauen: Beim Testen häufen sich schnell verbrauchte Kontingente an. Sobald alles stabil läuft, eine frische API-App anlegen und die finalen Credentials eintragen. Verhindert genau diesen Frust.

Das Ergebnis: Eine Datei, ein Upload, fertig

Das Endergebnis ist eine einzige strava.php. Kein Node.js, kein npm, kein Build-Prozess, keine externen Abhängigkeiten außer PHP mit cURL. Einfach hochladen, API-Keys eintragen, fertig.

Was Technik Details
Multi-User Je eigene Strava API-App Vollständig isolierte Sessions
OAuth Automatisch + Token-Refresh Kein manuelles Token-Handling
Datenabruf 12 Monate, paginiert Bis zu mehrere Hundert Aktivitäten
PMC Chart CTL, ATL, TSB Mit Form-Indikator + Trainingstipp
Rennprognosen Riegel-Formel 5K / 10K / HM / Marathon
HF-Zonen Z1–Z5 Verteilung nach Trainingszeit
Heatmap 26 Wochen GitHub-style Trainingskalender
Filter Zeitraum + Sport + Suche Dynamisch, live, ohne Reload
Device-Erkennung PHP User-Agent + Session Auto Mobile/Desktop + manueller Override
Mobile Bottom Nav + PWA Safe Area, swipeable KPIs
Logout/Switch Session-basiert Sauberer Wechsel zur Profilauswahl

Und hier ein paar kleine Screenshots:

Alles in allem, eine tolle Erfahrung & eine wunderbare Kooperation zwischen Claude & mir

Apple Business ab 14. April: Was ändert sich für ABM-Admins?

Apple Business ab 14. April: Was ändert sich für ABM-Admins?

Apple löst den Apple Business Manager ab – das bedeutet neue ToS, neue Features und eine Aktion, die kein Admin verschlafen sollte.

✅ Das Wichtigste in 30 Sekunden

Ab dem 14. April 2026 heißt Apple Business Manager (ABM) jetzt Apple Business. Alle bisherigen ABM-Funktionen bleiben erhalten – aber es gibt einen kritischen Action Point: Die neuen Terms of Service müssen am Launch-Tag von einem Administrator akzeptiert werden. Passiert das nicht, gibt es Enrollment-Unterbrechungen und App-Verteilung läuft nicht mehr. Sofort im Kalender eintragen!

Was ist Apple Business – und was passiert mit ABM?

Apple hat Ende März 2026 angekündigt, drei bisher getrennte Plattformen unter einem Dach zusammenzuführen: Apple Business Manager, Apple Business Essentials und Apple Business Connect werden zum 14. April 2026 als eigenständige Dienste eingestellt und in die neue Plattform Apple Business überführt.

Für alle, die ABM heute produktiv für ADE-Enrollment, App-Verteilung und Managed Apple IDs nutzen: Auf den ersten Blick ändert sich wenig. Apple Business ist der direkte Nachfolger – mit denselben Kernfunktionen, aber erweitert um neue Bereiche.

Übersicht: Was wird zu Apple Business?

Bisheriger Dienst Status ab 14.4.2026 Nachfolger in Apple Business
Apple Business Manager (ABM) Eingestellt als eigenständiger Dienst Integriert in Apple Business (MDM-Bereich)
Apple Business Essentials Eingestellt, keine Gebühren mehr Integriert – jetzt kostenlos weltweit
Apple Business Connect Eingestellt, Daten automatisch migriert Brand-Management in Apple Business

Was bleibt – und was ist neu?

Bleibt erhalten (wie in ABM) Neu in Apple Business
Automated Device Enrollment (ADE) Integriertes MDM (keine externe Lösung nötig)
App- und Buch-Verteilung über VPP Geschäftl. E-Mail, Kalender & Verzeichnis mit eigener Domain
Managed Apple IDs verwalten Brand Management: Maps, Wallet, Siri, Tap to Pay
Geräte zuweisen & MDM-Server koppeln Standort-Einblicke & Analytics (Suchen, Klicks)
Identity Provider Integration (Entra ID, Google) Werbeanzeigen in Apple Maps (ab Sommer 2026, US/CA)

ℹ️ Hinweis für Intune & Workspace ONE Admins

Das integrierte MDM in Apple Business richtet sich primär an kleinere Unternehmen ohne dedizierte MDM-Lösung. Wer bereits Microsoft Intune, Jamf Pro oder Omnissa Workspace ONE einsetzt, ändert daran nichts. Apple Business dient weiterhin als Backend für ADE, VPP und Managed Apple IDs – genau wie ABM bisher. Eure MDM-Kopplung bleibt unberührt.

⚠️ Kritischer Action Point: Neue Terms of Service akzeptieren!

🚨 Achtung – handlungsbedarf am 14. April!

Die bestehenden ABM-Nutzungsbedingungen und die Volume Content Service Terms werden in neue Apple Business Terms of Service überführt. Diese stehen zum Launch-Zeitpunkt am 14. April 2026 zur Annahme bereit. Werden die neuen ToS NICHT von einem Administrator akzeptiert, kommt es zu:

• Unterbrechungen beim Geräteinrollment (ADE)

• Stopp der App-Verteilung über VPP

• Mögliche Blockade verwalteter Apple IDs

Sofortmaßnahme: Den 14. April im Kalender eintragen. Admin-Zugang zu business.apple.com bereithalten und die ToS am Launch-Tag als Erstes bestätigen.

Wer Urlaub hat, krank ist oder einfach das Wochenende verlängert: Sorgt dafür, dass ein zweiter Admin-Account existiert und jemand den Job übernehmen kann. Das ist kein Szenario, das man auf Montag verschieben möchte.

Neue Features im Detail – was bringt Apple Business mehr?

Integriertes MDM (kostenlos weltweit)

Apple Business Essentials war bisher nur in den USA verfügbar und kostenpflichtig. Ab dem 14. April ist das integrierte MDM weltweit und kostenlos. Für Enterprise-Umgebungen mit Intune oder Workspace ONE ist das kein Gamechanger – aber für kleine Unternehmen ohne eigene IT kann das interessant sein.

Business E-Mail, Kalender & Verzeichnis

Unternehmen können ab sofort geschäftliche E-Mail-, Kalender- und Verzeichnisdienste mit eigener Domain direkt über Apple Business konfigurieren. Die Companion App dafür erfordert iOS 26, iPadOS 26 oder macOS 26.

Brand Management & Apple Maps Ads

Was früher über Business Connect lief – Unternehmensdarstellung in Apple Maps, Wallet, Siri und Tap to Pay – ist jetzt integriert. Zusätzlich kommt ab Sommer 2026 die Möglichkeit, Werbeanzeigen in Apple Maps zu schalten. Das startet zunächst in den USA und Kanada.

Was muss ich als Admin konkret tun?

  • 14. April im Kalender markieren und als Admin in business.apple.com einloggen
  • Neue Apple Business Terms of Service am Launch-Tag akzeptieren
  • Sicherstellen, dass mindestens ein weiterer Admin-Account existiert
  • MDM-Kopplung (Intune / Workspace ONE) testen – sollte unverändert funktionieren
  • Falls ihr ABM noch nicht mit einem Identity Provider (Entra ID, Google) verbunden habt: jetzt guter Zeitpunkt

💬 Fazit

Apple Business ist eine Evolution, keine Revolution. Für ABM-Admins ändert sich im täglichen Betrieb wenig – die Kernfunktionen für ADE, VPP und Managed Apple IDs bleiben wie gehabt. Die neuen Features richten sich eher an kleinere Unternehmen oder an das Marketing-Team. Der einzige echte Handlungsbedarf: Die neuen Terms of Service am 14. April nicht verpassen. Das ist der Punkt, wo Ignoranz teuer wird.

Microsoft Intune Release 2603: DDM für Apple, Recovery Lock für macOS und Linux Support

Microsoft Intune Release 2603: DDM für Apple, Recovery Lock für macOS und Linux Support

Schon wieder März – und wieder eine Release, die zeigt, wo Microsofts Reise hingeht. Diesmal hat man sich besonders Zeit für Apple DDM genommen, und das ist bedeutsam. Als jemand, der schon länger im MDM-Umfeld unterwegs ist, sehe ich hier einen wichtigen Shift: Apple zieht mit Declarative Device Management aus dem klassischen MDM-Modus raus. Das ist nicht einfach nur „noch ein Feature“ – das ändert, wie wir iOS/iPadOS Apps deployen.

Gleichzeitig bekommt macOS endlich ordentliche Recovery Lock Features, Android Enterprise kriegt neuen OEM-Support, und Linux wird erwachsen. Lass mich die wichtigsten Punkte durchgehen.


Übersichtstabelle: Was ändert sich in 2603?

Feature Plattform Kategorie Status
Declarative Device Management (DDM) für Line-of-Business Apps iOS/iPadOS 18+ App Management ✅ Verfügbar
Recovery Lock mit Password Rotation macOS Device Configuration 🔄 Rollout (bis Ende April)
Inventus OEMConfig Integration Android Enterprise OEMConfig ✅ Verfügbar
Disable Cross Device Resume Policy Windows 10/11 Settings Catalog ✅ Windows Insiders
Remove Microsoft Copilot App Policy Windows 10/11 Settings Catalog ✅ Verfügbar
Apple Intelligence & AI Settings (DDM) iOS/iPadOS, macOS Settings Catalog ✅ Verfügbar
Remote Help Connectivity Endpoint Windows Device Management ✅ Verfügbar
RHEL 9 LTS & 10 LTS Support Linux Enrollment ✅ Verfügbar
Microsoft Identity Broker für Linux Linux Authentication ✅ Verfügbar

1. Declarative Device Management für Apple – Das große Ding

Was ist DDM und warum sollte dich das interessieren?

Seit iOS 18 und iPadOS 18 können wir Apple DDM nutzen, um Line-of-Business Apps zu verwalten. Das ist ein großer Unterschied zur klassischen MDM-Verwaltung:

Klassisches MDM:
– Reaktive Verwaltung (Befehl → Antwort)
– Höhere Latenz bei App-Installationen
– Limitierte Per-App-Optionen

Apple DDM:
Deklarativ (Zielzustand definieren, Apple macht den Rest)
– Echte Echtzeit-App-Status
– Associated Domains Support
– Bessere Delivery Efficiency

Praktisch im Intune Admin Center:

  1. DevicesApps → Deine iOS/iPadOS Line-of-Business App öffnen
  2. App Information → Management Type auf Declarative Device Management setzen
  3. Neue Per-App-Optionen konfigurieren (z.B. Associated Domains)
  4. Deployment starten

Was dich erwartet:

✅ Schnellere App-Bereitstellung
✅ Bessere App-Status-Transparenz
✅ Neue Security Features via Associated Domains
❌ Nur für iOS/iPadOS 18+ (Versionsprüfung nötig)

Meine Einschätzung: Das ist ein echter Game-Changer für Unternehmen mit großen iOS-Flotten. Wenn du noch auf iOS 17 bist, solltest du jetzt deinen Update-Plan prüfen.


2. Recovery Lock für macOS – Sicherheit auf neuer Ebene

Das Problem, das Recovery Lock löst:

Ein User mit lokalen Admin-Rechten kann sich in Recovery Mode booten, die Festplatte neuformatieren und dein MDM-Management umgehen. Damit ist Schluss.

Was ist Recovery Lock?

Ein Recovery OS Password, der verhindert:
– Booten in Recovery Mode
– macOS Neuinstallation ohne Admin-Genehmigung
– Umgehen der Remote Management

Zwei Wege zur Umsetzung:

Option 1: Settings Catalog Policy

Devices → Configuration profiles → Create profile
→ macOS → Settings Catalog
→ Recovery Lock
  • Feature aktivieren
  • Password Rotation Schedule setzen (z.B. alle 90 Tage)
  • Speichern

Option 2: Remote Device Action (Manuelle Rotation)

Devices → All devices
→ [Device auswählen]
→ ... → Remote tasks
→ Recovery Lock rotation → Starten

Wichtig: RBAC für Passwords

⚠️ Handlungsbedarf: Admins brauchen explizit die Berechtigung:

Remote tasks/View macOS recovery lock password

Das stellst du unter Roles & Admins → Custom Role → Permissions ein.

Verfügbarkeit:

🔄 Graduelle Rollout bis Ende April 2026 – nicht sofort in allen Tenants verfügbar.


3. Android Enterprise: Inventus OEMConfig

Neu: Inventus com.inventus.oemconfig.gen

Für Admin, die mit Inventus-Rugged-Devices arbeiten (stark in der Logistik/Warehouse), ist das relevant.

OEMConfig erlaubt es, OEM-spezifische Features direkt über Intune zu verwalten:

Devices → Configuration profiles → Create
→ Android Enterprise
→ OEMConfig
→ Inventus (com.inventus.oemconfig.gen)
→ OEM-spezifische Settings konfigurieren

Für wen relevant: Unternehmen mit Zebra/Honeywell/Inventus Devices im Warehouse/Retail.


4. Windows Settings Catalog – Zwei neue Policies mit Bedeutung

Policy 1: Disable Cross Device Resume

Scenario: Der User startet etwas auf seinem iPhone und will es auf dem PC fortsetzen. Security-Policy sagt: Nein.

Devices → Configuration profiles → Create
→ Windows 10 and later
→ Settings Catalog
→ Connectivity
→ Disable Cross Device Resume: Select "Disabled"

Effekt: Keine „Resume from your phone“ Prompts mehr.

Status: ⚠️ Nur für Windows Insiders (Preview-Feature)

Policy 2: Remove Microsoft Copilot App

Szenario: Copilot ist vorinstalliert, aber deine Security Policy sagt: Nicht auf unternehmenseigenen Devices.

Settings Catalog
→ Windows AI
→ Remove Microsoft Copilot App: Enable

Bedingungen (automatisch prüfbar):
– Beide Copilot Apps sind installiert
– User hat die App nicht selbst installiert
– App wurde in letzten 14 Tagen nicht geöffnet

Effekt: App wird deinstalliert (User kann sie später neu installieren).

Status: ✅ Sofort verfügbar


5. Apple Settings Catalog – DDM erweitert sich massiv

DDM x Apple Intelligence Settings (Neu!)

Mit iOS 18 / macOS Sonoma kommt Apple Intelligence. Intune kann jetzt granular kontrollieren:

iOS/iPadOS DDM Settings (neu):
– External Intelligence: Sign In, Workspace IDs
– Apple Intelligence: Report, Genmoji, Image Playground, Visual Intelligence Summary
– Mail: Smart Replies, Summary
– Notes: Transcription, Summary
– Safari: Summary
– Keyboard: Definition Lookup, Auto-Correction, Dictation, Predictive Text, etc.
– Siri: User Generated Content, While Locked, Profanity Filter

macOS DDM Settings (neu):
– File Provider: Remote Syncing, External Volume Syncing, Domain Auto-Enablement
– Rosetta Usage Awareness (für ARM-Transition)

Praktisch:

Devices → Configuration profiles → Create
→ iOS or macOS
→ Settings Catalog
→ Declarative Device Management
→ Intelligence Settings
→ z.B. "Allow Apple Intelligence Report" = Toggle

Security-Tipp: Wenn deine Compliance-Policy Says „Keine Cloud-Datenanalyse“, stellst du hier alle AI-Features auf Disabled.


6. Remote Help – Neue Connectivity-Anforderung ⚠️

Firewall-Update erforderlich!

Microsoft hat einen neuen Endpoint für Remote Help (Launch Remote Help in Admin Center) hinzugefügt:

*.trouter.communications.svc.cloud.microsoft

Handlungsbedarf:
1. ✅ Aktualisiere deine Firewall-Regeln
2. ✅ Prüfe Proxy-Konfiguration
3. ✅ Teste Remote Help mit Windows-Device nach Update

Neues Log-File:
NotificationInfra.log (Intune Management Extension)
– Trackt Real-Time-Communication-Notifications
– Hilfreich für Troubleshooting

Ort: C:\Program Files (x86)\Microsoft Intune Management Extension\Logs\


7. Linux Support – RHEL wird erwachsen

Support-Änderung:

Version Status Aktion
RHEL 8 LTS ❌ End of Support Bestehende Devices bleiben enrollt, aber kein Support mehr
RHEL 9 LTS ✅ Neu unterstützt Production-Ready
RHEL 10 LTS ✅ Neu unterstützt Production-Ready

Handlungsbedarf für dich:

  1. Identify RHEL 8 Devices:
Intune Admin Center
→ Devices → All devices
→ Filter: OS = Linux
→ Add Column: OS Version
  1. User Notification:
    – E-Mail an Admins mit RHEL 8-Devices
    – Upgrade-Plan für Q2/Q3 2026
  2. Enrollment Verification:
    – Neue Enrollments nur auf RHEL 9+ akzeptieren
    – Enrollment Restrictions prüfen

Microsoft Intune App für Linux – Identity Broker Integration

Die neue Version der Intune-App für Linux unterstützt jetzt Microsoft Identity Broker, was bedeutet:
– SSO zwischen Linux-Apps und Browser
– Bessere Token-Verwaltung
– Sicherere Authentication Flow


🚨 Kritische Handlungsbedarfe

Punkt Kritikalität Deadline Aktion
Firewall Update (Remote Help Endpoint) 🔴 Hoch Sofort *.trouter.communications.svc.cloud.microsoft allowlisten
RHEL 8 Geräte identifizieren 🟡 Mittel Bis Juni 2026 Inventory + Upgrade-Plan
Recovery Lock RBAC Setup 🟡 Mittel Bis Ende April Berechtigungen für Admin-Rollen anpassen
iOS 18 DDM Readiness Check 🟡 Mittel Vor Rollout Device-Kompatibilität prüfen (iOS 18+)
Windows Insider Copilot Policy Testen 🟢 Niedrig Optional In Test-Ring deployen

Meine persönliche Einschätzung

Diese Release 2603 ist solider mittlerer Release – nicht revolutionär, aber substanziell:

Positiv:
– Apple DDM für LOB Apps ist längst überfällig und wird Deployment-Performance spürbar verbessern
– Recovery Lock für macOS schliesst echte Security-Lücke
– Linux Support mit RHEL 9/10 macht Sinn (Zukunftsicherung)
– AI Settings Katalog zeigt, dass Microsoft ernst mit Apple Intelligence-Management meint

⚠️ Vorsichtig:
– Recovery Lock ist nur graduelle Rollout (bis Ende April) – nicht ideal für große Deployments
– Cross-Device Resume Policy ist noch Insider-only (zu nischig?)
– Copilot Removal braucht spezifische Bedingungen (14 Tage nicht geöffnet – kann frustrierend sein)

🔔 Wichtigste Action: Firewall-Update für Remote Help. Das übersehen viele und dann funktioniert Remote Help plötzlich nicht.


Quellen & Dokumentation