Studios in MotionProjektkartei

Freeda-Ablösung der Flotte

Aktiv

Alle 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', Trigger customers_news_publish_direkt, Code-Fallbacks auf direkt (Commit e454995).
  • News-Prebuild flottenweit nur noch aus dem SIM-Feed (09.09.): Vorlage scripts/prebuild-news.mjs in Template v1 und v4, marked für Markdown, Gate simContentKey; 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 auf direkt gestellt (Widerspruch in den Notizen, prüfen).
  • Der Freeda-Import der Angebote (freeda_setup_import.py, Company-UUID aus freeda_companies.json, 113 Companies Stand 20.07.) bleibt als Onboarding-Weg, auch per Assistent (freeda_import) und POST /api/content/freeda-import.

Offen

  • ich Master-Templates v2 und v3 komplett Freeda-frei nach dem SimGym-Rezept (Config-Umbenennung inkl. deploy.yml, marked in v2 und v3, Komponenten-Renames); Backport aus dem Tschann-Repo in den v2-Master, dabei company.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_name bei Energy pflegen.
  • René alte Freeda-Duplikate im Freeda-Backend aufräumen (siehe ki-kennzeichnung).
  • René Impuls bleibt auf main bewusst 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.yml auf 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, dann prebuild-news.mjs und simContentKey, dann news_publish='direkt', preprod prüfen, main. Abnahme: jede alte /news/-URL liefert 200 und api.freeda.cloud fehlt im gebauten dist/.
  • Zwei Schalter gehören zusammen: customers.news_publish und simContentKey im Website-Repo.
  • Unser Feed liefert nur Markdown, die Artikelseiten lesen text.html, ohne marked steht nur der Teaser.
  • 2026-09-09: René: „macht gar nichts mehr über Freeda“, daher alle Kunden direkt.
  • Das hartkodierte Schema in src/pages/fitness.astro trug in jedem Template-v2-Repo falsche Öffnungszeiten, bei neuen Klonen immer prüfen.

Verlauf

  1. Fitness Point Plön auf Master-Stand, Freeda-frei, live auf preprod.
  2. Functional Fitness Box Witten als Neubau statt Freeda-Seite.
  3. Google-Bewertungen als Portal-Feed (Hub v0.265.0, Freeda-Ablösung Star Rating für Tschann).
  4. Content-Service komplett ohne Freeda (e454995); News-Prebuild flottenweit SIM-only (Template v1 9ee62c7).
  5. MyTime auf preprod Freeda-frei; Freeda-Kursplan-Import (1938c5a).
  6. Energy komplett Freeda-frei (devel a12d475, preprod 82fac2b), Tschann-Repo als v2-Durchlauf.
  7. SimGym/fitmax Repo komplett Freeda-frei (c292bfe, preprod c832eff).
  8. Fuchspack Freeda-frei (Website ea1fc00); Publish-Fix 66c1f99.
  9. Team-Endpunkt für die Websites (Hub v0.127.0).
  10. Öffnungszeiten aus der Zentrale in 5 Repos (energy 667be17, browns 9b8a359, impuls 78fcdc8, osteoathletik c9a99db, Plön).
  11. 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_publish in content.db (Trigger customers_news_publish_direkt); simContentKey in freeda.config.json oder studio-config.json bzw. site.config.json im 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; Lookup freeda_companies.json und freeda_companies.sql im 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.