Freeda-Ablösung der Flotte
AktivAlle Kunden-Websites und der Content-Service ohne Freeda: News, Kursplan, Formulare, Feiertage und Öffnungszeiten kommen aus dem Hub; News ist flottenweit erledigt, Reste je Repo
- Bereich
- Betrieb
- Start
- 12.07.2026
- Zuletzt
- 03.10.2026
- Am Zug
- ich
Nächster Schritt, ich
Master-Templates v2 und v3 und die restlichen Kundenrepos Freeda-frei machen (Kursplan, Feiertage, Formulare je Repo), Freeda-Push-Code ganz entfernen
Worum es geht
Freeda war ein externes Headless-CMS und Baukasten, über den früher die Kunden-Websites liefen (News, Kursplan, Formulare, Feiertage, Studio-Infos). Ziel ist, dass alles aus unserem Hub kommt und kein Kundenrepo mehr api.freeda.cloud aufruft. Der Content-Service hat Freeda nur als Ausliefer-CMS genutzt und ist seit 09.09.2026 komplett frei davon.
Stand
- Content-Service komplett ohne Freeda (09.09.): alle 25 Kunden
news_publish='direkt', Triggercustomers_news_publish_direkt, Code-Fallbacks aufdirekt(Commit e454995). - News-Prebuild flottenweit nur noch aus dem SIM-Feed (09.09.): Vorlage
scripts/prebuild-news.mjsin Template v1 und v4,markedfür Markdown, GatesimContentKey; umgestellt aktivita, fit501, inform, proaktiv, ploen, injoy (nur lokal), aktiv-gym, Template v3. - Fertig und Freeda-frei: studios-in-motion, fuchspack (11.08.), SimGym/fitmax (12.08., preprod), energy-warstein (14.08., News live, Feiertage und 4 Formulare auf preprod), mytime-fitness (29.08. preprod), Fitness Point Plön (03.10. Master-Stand), Tschann (v2 durchgespielt 14.08.), Functional Fitness Box Witten (27.09. Neubau statt Freeda-Seite).
- Hub-Bausteine als Ersatz: Team-Endpunkt (v0.127.0), Standardformulare mit Pflicht-Checkboxen (v0.180.0), Kundenstimmen (v0.157.0), Kooperationspartner (v0.201.0), Google-Bewertungen-Feed (v0.265.0), Datei-Upload im Lead-Formular (v0.332.0), Freeda-Kursplan-Import (tools, 29.08.), Öffnungszeiten aus der Zentrale (02.08.).
- Kunden, deren Websites noch selbst auf Freeda laufen (city-fitness, fitnesspark-bebra, k5-feelnessloft-bielefeld, life-x, uniqbag, proaktiv-fuerstenau war Sonderfall): dort bleibt
news_publish='freeda'laut Notiz Stand 14.08. richtig, später am 09.09. alle aufdirektgestellt (Widerspruch in den Notizen, prüfen). - Der Freeda-Import der Angebote (
freeda_setup_import.py, Company-UUID ausfreeda_companies.json, 113 Companies Stand 20.07.) bleibt als Onboarding-Weg, auch per Assistent (freeda_import) undPOST /api/content/freeda-import.
Offen
- ich Master-Templates v2 und v3 komplett Freeda-frei nach dem SimGym-Rezept (Config-Umbenennung inkl.
deploy.yml,markedin v2 und v3, Komponenten-Renames); Backport aus dem Tschann-Repo in den v2-Master, dabeicompany.url-Bug. - ich restliche Kunden Kursplan, Feiertage und Formulare je Repo ablösen: balance-kassel, osteoathletik, secdata (Nuxt-Sonderfall), aktiv-gym, fit501, inform, injoy, ploen, proaktiv.
- ich Freeda-Push-Code ganz entfernen.
- René preprod nach main für mytime-fitness (Feiertage-Bundesland fehlt in der Akte) und energy-warstein Schritt 2; Formular-Empfänger und
mappings.marken_namebei Energy pflegen. - René alte Freeda-Duplikate im Freeda-Backend aufräumen (siehe ki-kennzeichnung).
- René Impuls bleibt auf
mainbewusst bei Freeda, solange die Live-Domain TYPO3 fährt; SimGym und Browns warten auf SSL, Doc-Root und Domain-Umzug. - ich Cron-Jobs der Öffnungszeiten werden erst mit
deploy.ymlauf main scharf, beim nächsten Gang mitnehmen.
Entscheidungen und Regeln
- 2026-07-17: Begriffsklärung: Content-Service ist unser Agent, Freeda nur das externe CMS.
- 2026-08-02: Öffnungszeiten kommen aus der Zentrale statt aus Freeda (René).
- 2026-08-11: Reihenfolge beim Umstellen einer Live-Seite: erst
import_freeda_bestand.py --kunde <key>(Probelauf, dann--schreiben), Slugs auf die Live-URLs ziehen, dannprebuild-news.mjsundsimContentKey, dannnews_publish='direkt', preprod prüfen, main. Abnahme: jede alte/news/-URL liefert 200 undapi.freeda.cloudfehlt im gebautendist/. - Zwei Schalter gehören zusammen:
customers.news_publishundsimContentKeyim Website-Repo. - Unser Feed liefert nur Markdown, die Artikelseiten lesen
text.html, ohnemarkedsteht nur der Teaser. - 2026-09-09: René: „macht gar nichts mehr über Freeda“, daher alle Kunden
direkt. - Das hartkodierte Schema in
src/pages/fitness.astrotrug in jedem Template-v2-Repo falsche Öffnungszeiten, bei neuen Klonen immer prüfen.
Verlauf
- Fitness Point Plön auf Master-Stand, Freeda-frei, live auf preprod.
- Functional Fitness Box Witten als Neubau statt Freeda-Seite.
- Google-Bewertungen als Portal-Feed (Hub v0.265.0, Freeda-Ablösung Star Rating für Tschann).
- Content-Service komplett ohne Freeda (e454995); News-Prebuild flottenweit SIM-only (Template v1 9ee62c7).
- MyTime auf preprod Freeda-frei; Freeda-Kursplan-Import (1938c5a).
- Energy komplett Freeda-frei (devel a12d475, preprod 82fac2b), Tschann-Repo als v2-Durchlauf.
- SimGym/fitmax Repo komplett Freeda-frei (c292bfe, preprod c832eff).
- Fuchspack Freeda-frei (Website ea1fc00); Publish-Fix 66c1f99.
- Team-Endpunkt für die Websites (Hub v0.127.0).
- Öffnungszeiten aus der Zentrale in 5 Repos (energy 667be17, browns 9b8a359, impuls 78fcdc8, osteoathletik c9a99db, Plön).
- Konsolidierung des Content-Service, erste Freeda-Sonderwege.
Wo liegt was
- Leitseite: Wiki
40-Projekte/Freeda-Abloesung Flotte.md(Statustabelle je Kunde und Rezept). - Schalter
customers.news_publishincontent.db(Triggercustomers_news_publish_direkt);simContentKeyinfreeda.config.jsonoderstudio-config.jsonbzw.site.config.jsonim Website-Repo. - Feeds:
GET /public/news/<kunde>am Content-Service; Öffnungszeiten, Feiertage (mappings.feiertage), Team, Kundenstimmen aus dem Hub-Portal-Feed. - Skripte im Content-Service-Volume:
scripts/import_freeda_bestand.py,scripts/freeda_setup_import.py,scripts/publish_approved_drafts.py; Lookupfreeda_companies.jsonundfreeda_companies.sqlim Volume-Root. - Standardformulare:
SimStandardformular.astro(Muster Template v1), Formulare im Hub; Freeda-Rest nur noch bei Altseiten. - Backups:
content.db.bak-vor-freeda-aus-20260909,content.db.bak-vor-energy-direkt-20260814,content.db.bak-vor-simgym-direkt-20260812.