[{"data":1,"prerenderedAt":2356},["ShallowReactive",2],{"navigation_docs_de":3,"-de-self-hosting-updates":427,"-de-self-hosting-updates-surround":2351},[4,31,117,188,238,271,310,369,378],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":30},"Erste Schritte","i-hugeicons-rocket-01","\u002Fde\u002Fgetting-started","de\u002F01.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"Was ist DDM?","\u002Fde\u002Fgetting-started\u002Fwhat-is-ddm","de\u002F01.getting-started\u002F01.what-is-ddm","i-hugeicons-information-circle",{"title":16,"path":17,"stem":18,"icon":19},"Konto und Anmeldung","\u002Fde\u002Fgetting-started\u002Fsign-in","de\u002F01.getting-started\u002F02.sign-in","i-hugeicons-key-01",{"title":21,"path":22,"stem":23,"icon":24},"KI in DDM","\u002Fde\u002Fgetting-started\u002Fai-in-ddm","de\u002F01.getting-started\u002F03.ai-in-ddm","i-hugeicons-ai-magic",{"title":26,"path":27,"stem":28,"icon":29},"Systemstatus","\u002Fde\u002Fgetting-started\u002Fsystem-status","de\u002F01.getting-started\u002F04.system-status","i-hugeicons-activity-03",false,{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":30},"CMS","i-hugeicons-dashboard-square-01","\u002Fde\u002Fcms","de\u002F02.cms",[37,42,47,52,57,62,67,72,77,82,87,92,97,102,107,112],{"title":38,"path":39,"stem":40,"icon":41},"Das CMS im Überblick","\u002Fde\u002Fcms\u002Foverview","de\u002F02.cms\u002F01.overview","i-hugeicons-compass-01",{"title":43,"path":44,"stem":45,"icon":46},"Dokumente hochladen","\u002Fde\u002Fcms\u002Fupload","de\u002F02.cms\u002F02.upload","i-hugeicons-upload-01",{"title":48,"path":49,"stem":50,"icon":51},"Kategorien","\u002Fde\u002Fcms\u002Fcategories","de\u002F02.cms\u002F03.categories","i-hugeicons-folder-tree",{"title":53,"path":54,"stem":55,"icon":56},"Dokumente bearbeiten","\u002Fde\u002Fcms\u002Fdocuments","de\u002F02.cms\u002F04.documents","i-hugeicons-file-edit",{"title":58,"path":59,"stem":60,"icon":61},"Suchen und filtern","\u002Fde\u002Fcms\u002Fsearch-and-filters","de\u002F02.cms\u002F05.search-and-filters","i-hugeicons-search-01",{"title":63,"path":64,"stem":65,"icon":66},"Gruppen und Rechte","\u002Fde\u002Fcms\u002Fgroups-and-permissions","de\u002F02.cms\u002F06.groups-and-permissions","i-hugeicons-user-multiple",{"title":68,"path":69,"stem":70,"icon":71},"Benutzer","\u002Fde\u002Fcms\u002Fusers","de\u002F02.cms\u002F07.users","i-hugeicons-user-add-01",{"title":73,"path":74,"stem":75,"icon":76},"Freigaben","\u002Fde\u002Fcms\u002Fapprovals","de\u002F02.cms\u002F08.approvals","i-hugeicons-checkmark-badge-01",{"title":78,"path":79,"stem":80,"icon":81},"Märkte und Übersetzungen","\u002Fde\u002Fcms\u002Fmarkets-and-translations","de\u002F02.cms\u002F09.markets-and-translations","i-hugeicons-globe-02",{"title":83,"path":84,"stem":85,"icon":86},"Notizvorlagen","\u002Fde\u002Fcms\u002Fnote-templates","de\u002F02.cms\u002F10.note-templates","i-hugeicons-layout-01",{"title":88,"path":89,"stem":90,"icon":91},"Nutzung und Audit-Log","\u002Fde\u002Fcms\u002Fusage-and-audit","de\u002F02.cms\u002F11.usage-and-audit","i-hugeicons-chart-column",{"title":93,"path":94,"stem":95,"icon":96},"KI-Assistent","\u002Fde\u002Fcms\u002Fassistant","de\u002F02.cms\u002F12.assistant","i-hugeicons-sparkles",{"title":98,"path":99,"stem":100,"icon":101},"Einstellungen","\u002Fde\u002Fcms\u002Fsettings","de\u002F02.cms\u002F13.settings","i-hugeicons-settings-02",{"title":103,"path":104,"stem":105,"icon":106},"Tarife","\u002Fde\u002Fcms\u002Fplans","de\u002F02.cms\u002F14.plans","i-hugeicons-package",{"title":108,"path":109,"stem":110,"icon":111},"Feature-Wünsche","\u002Fde\u002Fcms\u002Ffeature-requests","de\u002F02.cms\u002F15.feature-requests","i-hugeicons-idea-01",{"title":113,"path":114,"stem":115,"icon":116},"Fehler melden","\u002Fde\u002Fcms\u002Fbug-reports","de\u002F02.cms\u002F16.bug-reports","i-hugeicons-bug-01",{"title":118,"icon":119,"path":120,"stem":121,"children":122,"page":30},"App","i-hugeicons-smart-phone-01","\u002Fde\u002Fapp","de\u002F03.app",[123,128,133,138,143,147,152,157,162,167,170,173,176,179,184],{"title":124,"path":125,"stem":126,"icon":127},"Anmelden und zurechtfinden","\u002Fde\u002Fapp\u002Foverview","de\u002F03.app\u002F01.overview","i-hugeicons-login-03",{"title":129,"path":130,"stem":131,"icon":132},"Tabs und geteilte Ansicht","\u002Fde\u002Fapp\u002Ftabs","de\u002F03.app\u002F02.tabs","i-hugeicons-layout-2-column",{"title":134,"path":135,"stem":136,"icon":137},"Dokumente finden und lesen","\u002Fde\u002Fapp\u002Fdocuments","de\u002F03.app\u002F03.documents","i-hugeicons-file-01",{"title":139,"path":140,"stem":141,"icon":142},"Favoriten","\u002Fde\u002Fapp\u002Ffavorites","de\u002F03.app\u002F04.favorites","i-hugeicons-favourite",{"title":144,"path":145,"stem":146,"icon":61},"Suchen","\u002Fde\u002Fapp\u002Fsearch","de\u002F03.app\u002F05.search",{"title":148,"path":149,"stem":150,"icon":151},"Notizen","\u002Fde\u002Fapp\u002Fnotes","de\u002F03.app\u002F06.notes","i-hugeicons-note-edit",{"title":153,"path":154,"stem":155,"icon":156},"Kalender und Termine","\u002Fde\u002Fapp\u002Fcalendar","de\u002F03.app\u002F07.calendar","i-hugeicons-calendar-03",{"title":158,"path":159,"stem":160,"icon":161},"An Kunden senden","\u002Fde\u002Fapp\u002Foutbox","de\u002F03.app\u002F08.outbox","i-hugeicons-sent",{"title":163,"path":164,"stem":165,"icon":166},"Offline arbeiten","\u002Fde\u002Fapp\u002Foffline","de\u002F03.app\u002F09.offline","i-hugeicons-wifi-off-01",{"title":93,"path":168,"stem":169,"icon":96},"\u002Fde\u002Fapp\u002Fassistant","de\u002F03.app\u002F10.assistant",{"title":98,"path":171,"stem":172,"icon":101},"\u002Fde\u002Fapp\u002Fsettings","de\u002F03.app\u002F11.settings",{"title":108,"path":174,"stem":175,"icon":111},"\u002Fde\u002Fapp\u002Ffeature-requests","de\u002F03.app\u002F12.feature-requests",{"title":113,"path":177,"stem":178,"icon":116},"\u002Fde\u002Fapp\u002Fbug-reports","de\u002F03.app\u002F13.bug-reports",{"title":180,"path":181,"stem":182,"icon":183},"Desktop-App","\u002Fde\u002Fapp\u002Fdesktop-app","de\u002F03.app\u002F14.desktop-app","i-hugeicons-computer",{"title":185,"path":186,"stem":187,"icon":119},"Mobile App","\u002Fde\u002Fapp\u002Fmobile-app","de\u002F03.app\u002F15.mobile-app",{"title":189,"icon":190,"path":191,"stem":192,"children":193,"page":30},"Anmeldung & Verzeichnisse","i-hugeicons-security-check","\u002Fde\u002Fsign-in-and-directories","de\u002F04.sign-in-and-directories",[194,198,202,207,212,217,222,226,230,234],{"title":195,"path":196,"stem":197,"icon":19},"Anmeldeverfahren","\u002Fde\u002Fsign-in-and-directories\u002Fsign-in-methods","de\u002F04.sign-in-and-directories\u002F01.sign-in-methods",{"title":199,"path":200,"stem":201,"icon":190},"Single Sign-on","\u002Fde\u002Fsign-in-and-directories\u002Fsingle-sign-on","de\u002F04.sign-in-and-directories\u002F02.single-sign-on",{"title":203,"path":204,"stem":205,"icon":206},"Verzeichnisdienste (LDAP)","\u002Fde\u002Fsign-in-and-directories\u002Fdirectory-services","de\u002F04.sign-in-and-directories\u002F03.directory-services","i-hugeicons-hierarchy",{"title":208,"path":209,"stem":210,"icon":211},"Abgleich und Anmeldung","\u002Fde\u002Fsign-in-and-directories\u002Fdirectory-sync","de\u002F04.sign-in-and-directories\u002F04.directory-sync","i-hugeicons-refresh",{"title":213,"path":214,"stem":215,"icon":216},"Microsoft Entra ID","\u002Fde\u002Fsign-in-and-directories\u002Fmicrosoft-entra-id","de\u002F04.sign-in-and-directories\u002F05.microsoft-entra-id","i-hugeicons-building-03",{"title":218,"path":219,"stem":220,"icon":221},"Okta","\u002Fde\u002Fsign-in-and-directories\u002Fokta","de\u002F04.sign-in-and-directories\u002F06.okta","i-hugeicons-finger-print",{"title":223,"path":224,"stem":225,"icon":81},"Google Workspace","\u002Fde\u002Fsign-in-and-directories\u002Fgoogle-workspace","de\u002F04.sign-in-and-directories\u002F07.google-workspace",{"title":227,"path":228,"stem":229,"icon":119},"Zwei-Faktor-Authentifizierung","\u002Fde\u002Fsign-in-and-directories\u002Ftwo-factor-authentication","de\u002F04.sign-in-and-directories\u002F08.two-factor-authentication",{"title":231,"path":232,"stem":233,"icon":221},"Passkeys","\u002Fde\u002Fsign-in-and-directories\u002Fpasskeys","de\u002F04.sign-in-and-directories\u002F09.passkeys",{"title":235,"path":236,"stem":237,"icon":156},"Kalender-Freigabe","\u002Fde\u002Fsign-in-and-directories\u002Fcalendar-access","de\u002F04.sign-in-and-directories\u002F10.calendar-access",{"title":239,"icon":240,"path":241,"stem":242,"children":243,"page":30},"MCP-Server","i-hugeicons-ai-network","\u002Fde\u002Fmcp-server","de\u002F05.mcp-server",[244,248,253,257,262,266],{"title":245,"path":246,"stem":247,"icon":240},"Überblick","\u002Fde\u002Fmcp-server\u002Foverview","de\u002F05.mcp-server\u002F01.overview",{"title":249,"path":250,"stem":251,"icon":252},"Einrichten","\u002Fde\u002Fmcp-server\u002Fsetup","de\u002F05.mcp-server\u002F02.setup","i-hugeicons-plug-socket",{"title":254,"path":255,"stem":256,"icon":111},"Was Sie damit tun können","\u002Fde\u002Fmcp-server\u002Fuse-cases","de\u002F05.mcp-server\u002F03.use-cases",{"title":258,"path":259,"stem":260,"icon":261},"Werkzeuge","\u002Fde\u002Fmcp-server\u002Ftools","de\u002F05.mcp-server\u002F04.tools","i-hugeicons-wrench-01",{"title":263,"path":264,"stem":265,"icon":76},"Änderungen freigeben","\u002Fde\u002Fmcp-server\u002Fapproving-changes","de\u002F05.mcp-server\u002F05.approving-changes",{"title":267,"path":268,"stem":269,"icon":270},"Verwaltung & Sicherheit","\u002Fde\u002Fmcp-server\u002Fadmin-and-security","de\u002F05.mcp-server\u002F06.admin-and-security","i-hugeicons-shield-key",{"title":272,"icon":273,"path":274,"stem":275,"children":276,"page":30},"Externe Quellen","i-hugeicons-database-sync","\u002Fde\u002Fexternal-sources","de\u002F06.external-sources",[277,280,285,290,295,300,305],{"title":245,"path":278,"stem":279,"icon":273},"\u002Fde\u002Fexternal-sources\u002Foverview","de\u002F06.external-sources\u002F01.overview",{"title":281,"path":282,"stem":283,"icon":284},"SharePoint","\u002Fde\u002Fexternal-sources\u002Fsharepoint","de\u002F06.external-sources\u002F02.sharepoint","i-hugeicons-microsoft",{"title":286,"path":287,"stem":288,"icon":289},"OneDrive","\u002Fde\u002Fexternal-sources\u002Fonedrive","de\u002F06.external-sources\u002F03.onedrive","i-hugeicons-folder-cloud",{"title":291,"path":292,"stem":293,"icon":294},"Google Drive","\u002Fde\u002Fexternal-sources\u002Fgoogle-drive","de\u002F06.external-sources\u002F04.google-drive","i-hugeicons-google-drive",{"title":296,"path":297,"stem":298,"icon":299},"FTP \u002F SFTP","\u002Fde\u002Fexternal-sources\u002Fftp-sftp","de\u002F06.external-sources\u002F05.ftp-sftp","i-hugeicons-server-stack-01",{"title":301,"path":302,"stem":303,"icon":304},"REST-Schnittstelle","\u002Fde\u002Fexternal-sources\u002Frest","de\u002F06.external-sources\u002F06.rest","i-hugeicons-api",{"title":306,"path":307,"stem":308,"icon":309},"SOAP-Schnittstelle","\u002Fde\u002Fexternal-sources\u002Fsoap","de\u002F06.external-sources\u002F07.soap","i-hugeicons-source-code",{"title":311,"icon":304,"path":312,"stem":313,"children":314,"page":30},"Integrations-API","\u002Fde\u002Fintegration-api","de\u002F07.integration-api",[315,318,322,327,332,337,341,346,350,354,359,364],{"title":245,"path":316,"stem":317,"icon":14},"\u002Fde\u002Fintegration-api\u002Foverview","de\u002F07.integration-api\u002F01.overview",{"title":319,"path":320,"stem":321,"icon":19},"Authentifizierung","\u002Fde\u002Fintegration-api\u002Fauthentication","de\u002F07.integration-api\u002F02.authentication",{"title":323,"path":324,"stem":325,"icon":326},"Konventionen","\u002Fde\u002Fintegration-api\u002Fconventions","de\u002F07.integration-api\u002F03.conventions","i-hugeicons-book-open-01",{"title":328,"path":329,"stem":330,"icon":331},"Dokumente einspielen","\u002Fde\u002Fintegration-api\u002Fpushing-documents","de\u002F07.integration-api\u002F04.pushing-documents","i-hugeicons-upload-02",{"title":333,"path":334,"stem":335,"icon":336},"Inhalte abrufen","\u002Fde\u002Fintegration-api\u002Fconsuming-content","de\u002F07.integration-api\u002F05.consuming-content","i-hugeicons-download-02",{"title":338,"path":339,"stem":340,"icon":137},"Referenz: Dokumente","\u002Fde\u002Fintegration-api\u002Freference-documents","de\u002F07.integration-api\u002F06.reference-documents",{"title":342,"path":343,"stem":344,"icon":345},"Referenz: Kategorien, Schlagwörter, Märkte","\u002Fde\u002Fintegration-api\u002Freference-categories-tags","de\u002F07.integration-api\u002F07.reference-categories-tags","i-hugeicons-folder-01",{"title":347,"path":348,"stem":349,"icon":211},"Referenz: Abgleich-Manifest","\u002Fde\u002Fintegration-api\u002Freference-sync","de\u002F07.integration-api\u002F08.reference-sync",{"title":351,"path":352,"stem":353,"icon":309},"OpenAPI","\u002Fde\u002Fintegration-api\u002Fopenapi","de\u002F07.integration-api\u002F09.openapi",{"title":355,"path":356,"stem":357,"icon":358},"Änderungsprotokoll","\u002Fde\u002Fintegration-api\u002Fchangelog","de\u002F07.integration-api\u002F10.changelog","i-hugeicons-time-schedule",{"title":360,"path":361,"stem":362,"icon":363},"Referenz: Gruppen, Märkte, Zugriff","\u002Fde\u002Fintegration-api\u002Freference-groups-access","de\u002F07.integration-api\u002F11.reference-groups-access","i-hugeicons-user-lock-01",{"title":365,"path":366,"stem":367,"icon":368},"Umstieg von CMWS","\u002Fde\u002Fintegration-api\u002Fcmws","de\u002F07.integration-api\u002F12.cmws","i-hugeicons-arrow-reload-horizontal",{"title":370,"icon":371,"path":372,"stem":373,"children":374,"page":30},"Neuigkeiten","i-hugeicons-gift","\u002Fde\u002Fwhats-new","de\u002F08.whats-new",[375],{"title":355,"path":376,"stem":377,"icon":358},"\u002Fde\u002Fwhats-new\u002Fchangelog","de\u002F08.whats-new\u002F01.changelog",{"title":379,"icon":299,"path":380,"stem":381,"children":382,"page":30},"Selbst betreiben","\u002Fde\u002Fself-hosting","de\u002F09.self-hosting",[383,386,390,395,399,404,408,413,418,422],{"title":245,"path":384,"stem":385,"icon":14},"\u002Fde\u002Fself-hosting\u002Foverview","de\u002F09.self-hosting\u002F01.overview",{"title":387,"path":388,"stem":389,"icon":106},"Docker Compose","\u002Fde\u002Fself-hosting\u002Fdocker-compose","de\u002F09.self-hosting\u002F02.docker-compose",{"title":391,"path":392,"stem":393,"icon":394},"Kubernetes","\u002Fde\u002Fself-hosting\u002Fkubernetes","de\u002F09.self-hosting\u002F03.kubernetes","i-hugeicons-cloud",{"title":396,"path":397,"stem":398,"icon":101},"Konfiguration","\u002Fde\u002Fself-hosting\u002Fconfiguration","de\u002F09.self-hosting\u002F04.configuration",{"title":400,"path":401,"stem":402,"icon":403},"Lizenz","\u002Fde\u002Fself-hosting\u002Flicence","de\u002F09.self-hosting\u002F05.licence","i-hugeicons-license",{"title":405,"path":406,"stem":407,"icon":211},"Updates","\u002Fde\u002Fself-hosting\u002Fupdates","de\u002F09.self-hosting\u002F06.updates",{"title":409,"path":410,"stem":411,"icon":412},"Postgres","\u002Fde\u002Fself-hosting\u002Fpostgres","de\u002F09.self-hosting\u002F07.postgres","i-hugeicons-database",{"title":414,"path":415,"stem":416,"icon":417},"Sicherung","\u002Fde\u002Fself-hosting\u002Fbackups","de\u002F09.self-hosting\u002F08.backups","i-hugeicons-database-restore",{"title":419,"path":420,"stem":421,"icon":261},"Fehlerbehebung","\u002Fde\u002Fself-hosting\u002Ftroubleshooting","de\u002F09.self-hosting\u002F09.troubleshooting",{"title":423,"path":424,"stem":425,"icon":426},"Firewall","\u002Fde\u002Fself-hosting\u002Ffirewall","de\u002F09.self-hosting\u002F10.firewall","i-hugeicons-firewall",{"id":428,"title":405,"body":429,"description":2344,"extension":2345,"links":2346,"meta":2347,"navigation":2348,"path":406,"seo":2349,"stem":407,"__hash__":2350},"docs_de\u002Fde\u002F09.self-hosting\u002F06.updates.md",{"type":430,"value":431,"toc":2332},"minimark",[432,451,456,459,520,526,530,541,579,596,599,603,616,659,673,677,685,689,717,790,794,797,853,860,863,867,881,1086,1092,1095,1121,1124,1171,1307,2298,2304,2308,2328],[433,434,435,436,439,440,442,443,446,447,450],"p",{},"Gibt es eine neue Version, sehen Administratoren unter ",[437,438,98],"strong",{}," neben ",[437,441,400],{}," den Hinweis ",[437,444,445],{},"Update"," und bekommen eine E-Mail mit dem, was sie bringt. Was jede Version gebracht hat, steht im ",[448,449,355],"a",{"href":376},".",[452,453,455],"h2",{"id":454},"welche-version-läuft","Welche Version läuft",[433,457,458],{},"Die Images gibt es unter mehreren Namen:",[460,461,462,475],"table",{},[463,464,465],"thead",{},[466,467,468,472],"tr",{},[469,470,471],"th",{},"Tag",[469,473,474],{},"Bedeutung",[476,477,478,490,500,510],"tbody",{},[466,479,480,487],{},[481,482,483],"td",{},[484,485,486],"code",{},"0.26.1",[481,488,489],{},"Genau diese Version.",[466,491,492,497],{},[481,493,494],{},[484,495,496],{},"0.26",[481,498,499],{},"Die neueste Fehlerbehebung von 0.26 – ohne neue Funktionen.",[466,501,502,507],{},[481,503,504],{},[484,505,506],{},"stable",[481,508,509],{},"Die Version, die wir für Installationen freigegeben haben. Sie folgt den Releases mit etwas Abstand.",[466,511,512,517],{},[481,513,514],{},[484,515,516],{},"latest",[481,518,519],{},"Das neueste Release, sobald es da ist.",[433,521,522,523,525],{},"Für eine Installation, die sich selbst aktualisiert, ist ",[484,524,506],{}," richtig (mit Watchtower oder Keel) oder ein Versionsbereich (mit Flux); für eine, die Sie von Hand aktualisieren, eine feste Version.",[452,527,529],{"id":528},"von-hand","Von Hand",[433,531,532,533,536,537,540],{},"Mit Docker Compose setzen Sie ",[484,534,535],{},"DDM_VERSION"," in ",[484,538,539],{},".env"," und starten neu:",[542,543,548],"pre",{"className":544,"code":545,"language":546,"meta":547,"style":547},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","docker compose pull\ndocker compose up -d\n","bash","",[484,549,550,566],{"__ignoreMap":547},[551,552,555,559,563],"span",{"class":553,"line":554},"line",1,[551,556,558],{"class":557},"sBMFI","docker",[551,560,562],{"class":561},"sfazB"," compose",[551,564,565],{"class":561}," pull\n",[551,567,569,571,573,576],{"class":553,"line":568},2,[551,570,558],{"class":557},[551,572,562],{"class":561},[551,574,575],{"class":561}," up",[551,577,578],{"class":561}," -d\n",[433,580,581,582,585,586,589,590,592,593,595],{},"Mit Kubernetes ändern Sie die Version in ",[484,583,584],{},"ddm.yaml"," und wenden die Datei wieder an (",[484,587,588],{},"kubectl -n ddm apply -f ddm.yaml","). Hat sich ",[484,591,584],{}," auf der Seite ",[448,594,391],{"href":392}," seit Ihrer Version geändert, übernehmen Sie das dabei.",[433,597,598],{},"Das CMS sichert die Datenbank und spielt die Migrationen ein, bevor es Anfragen annimmt. Mit Docker Compose starten Render-Worker und Leser-App erst danach.",[452,600,602],{"id":601},"neue-installationsdateien","Neue Installationsdateien",[433,604,605,608,609,611,612,615],{},[484,606,607],{},"compose.yaml"," und ",[484,610,584],{}," tragen ihre Version (",[484,613,614],{},"DDM_DEPLOY_VERSION","). Meist läuft eine neue DDM-Version mit den Dateien, die Sie haben. Für die beiden Fälle, in denen nicht, gilt:",[617,618,619,633],"ul",{},[620,621,622,625,626,628,629,632],"li",{},[437,623,624],{},"Fehlerbehebungen (0.26.1 → 0.26.2) brauchen nie neue Dateien."," Folgt Ihre Installation ",[484,627,496],{}," oder mit Flux ",[484,630,631],{},"0.26.x",", passen ihre Dateien immer.",[620,634,635,638,639,642,643,645,646,648,649,651,652,608,655,658],{},[437,636,637],{},"Eine neue Version (0.26 → 0.27) kann neue Dateien brauchen."," Dann steht unter ",[437,640,641],{},"Einstellungen › Lizenz"," und in der E-Mail zur neuen Version: „braucht neue Installationsdateien\". Übernehmen Sie in dem Fall vor dem Update ",[484,644,607],{}," oder ",[484,647,584],{}," aus diesem Handbuch – Ihre Einstellungen in ",[484,650,539],{}," beziehungsweise ",[484,653,654],{},"config.env",[484,656,657],{},"secrets.env"," behalten Sie – und aktualisieren Sie dann.",[433,660,661,662,664,665,439,667,442,669,672],{},"Läuft eine Installation mit Dateien, die älter sind, als ihre Version braucht – etwa weil sie mit ",[484,663,506],{}," von selbst aktualisiert hat –, sehen ihre Administratoren unter ",[437,666,98],{},[437,668,400],{},[437,670,671],{},"Prüfen"," und dort, was zu tun ist; das CMS schreibt es auch in sein Log.",[452,674,676],{"id":675},"unterstützte-versionen","Unterstützte Versionen",[433,678,679,680,439,682,684],{},"Wir unterstützen die Versionen ab einer, die wir Ihrer Installation mit jeder Lizenzerneuerung nennen. Läuft sie mit einer älteren, sehen die Administratoren ",[437,681,671],{},[437,683,400],{}," und bekommen einmal eine E-Mail. Die Installation läuft weiter – aber Fehlerbehebungen, auch für die Sicherheit, gibt es nur für neuere Versionen.",[452,686,688],{"id":687},"automatisch-mit-docker-compose","Automatisch mit Docker Compose",[433,690,691,692,536,695,697,698,704,705,708,709,712,713,716],{},"Setzen Sie ",[484,693,694],{},"DDM_VERSION=stable",[484,696,539],{},". ",[448,699,703],{"href":700,"rel":701},"https:\u002F\u002Fcontainrrr.dev\u002Fwatchtower\u002F",[702],"nofollow","Watchtower"," mit ",[484,706,707],{},"--label-enable"," aktualisiert dann die Dienste mit dem Label ",[484,710,711],{},"com.centurylinklabs.watchtower.enable"," – CMS, Render-Worker und Leser-App, ",[437,714,715],{},"nicht Postgres"," –, sobald wir eine Version freigeben:",[542,718,720],{"className":544,"code":719,"language":546,"meta":547,"style":547},"docker run -d --name watchtower --restart unless-stopped \\\n  -v \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock \\\n  -v ~\u002F.docker\u002Fconfig.json:\u002Fconfig.json:ro \\\n  containrrr\u002Fwatchtower --label-enable --schedule \"0 0 3 * * *\"\n",[484,721,722,748,758,768],{"__ignoreMap":547},[551,723,724,726,729,732,735,738,741,744],{"class":553,"line":554},[551,725,558],{"class":557},[551,727,728],{"class":561}," run",[551,730,731],{"class":561}," -d",[551,733,734],{"class":561}," --name",[551,736,737],{"class":561}," watchtower",[551,739,740],{"class":561}," --restart",[551,742,743],{"class":561}," unless-stopped",[551,745,747],{"class":746},"sTEyZ"," \\\n",[551,749,750,753,756],{"class":553,"line":568},[551,751,752],{"class":561},"  -v",[551,754,755],{"class":561}," \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock",[551,757,747],{"class":746},[551,759,761,763,766],{"class":553,"line":760},3,[551,762,752],{"class":561},[551,764,765],{"class":561}," ~\u002F.docker\u002Fconfig.json:\u002Fconfig.json:ro",[551,767,747],{"class":746},[551,769,771,774,777,780,784,787],{"class":553,"line":770},4,[551,772,773],{"class":561},"  containrrr\u002Fwatchtower",[551,775,776],{"class":561}," --label-enable",[551,778,779],{"class":561}," --schedule",[551,781,783],{"class":782},"sMK4o"," \"",[551,785,786],{"class":561},"0 0 3 * * *",[551,788,789],{"class":782},"\"\n",[452,791,793],{"id":792},"automatisch-mit-kubernetes","Automatisch mit Kubernetes",[433,795,796],{},"Zwei Werkzeuge kommen in Frage. Sie arbeiten verschieden:",[460,798,799,811],{},[463,800,801],{},[466,802,803,805,808],{},[469,804],{},[469,806,807],{},"Keel",[469,809,810],{},"Flux",[476,812,813,829,842],{},[466,814,815,818,824],{},[481,816,817],{},"Folgt",[481,819,820,821,823],{},"dem Tag ",[484,822,506],{}," – jeder Version, die wir freigeben",[481,825,826,827],{},"einem Versionsbereich, zum Beispiel jeder ",[484,828,631],{},[466,830,831,834,837],{},[481,832,833],{},"Ändert",[481,835,836],{},"die Deployments im Cluster direkt",[481,838,839,841],{},[484,840,584],{}," in Ihrem Git-Repository; Flux spielt sie dann ein",[466,843,844,847,850],{},[481,845,846],{},"Passt, wenn",[481,848,849],{},"Sie den Cluster von Hand pflegen",[481,851,852],{},"Sie den Cluster ohnehin mit Flux aus Git betreiben",[433,854,855,856,859],{},"Postgres aktualisiert keines der beiden: Sein Tag ",[484,857,858],{},"18"," ändert sich nur mit einer neuen Hauptversion, die eine Umstellung der Daten braucht.",[433,861,862],{},"Während eines Updates startet das CMS neu und spielt die Migrationen ein; DDM ist dann ein, zwei Minuten nicht erreichbar.",[864,865,807],"h3",{"id":866},"keel",[433,868,869,873,874,876,877,880],{},[448,870,807],{"href":871,"rel":872},"https:\u002F\u002Fkeel.sh",[702]," prüft in festen Abständen, ob es unter dem Tag ",[484,875,506],{}," ein neues Image gibt, und startet die App damit neu. Es nutzt dafür das Registry-Secret ",[484,878,879],{},"ddm-registry"," der Deployments.",[882,883,884,943,997],"ol",{},[620,885,886,889],{},[437,887,888],{},"Keel installieren:",[542,890,892],{"className":544,"code":891,"language":546,"meta":547,"style":547},"helm repo add keel https:\u002F\u002Fcharts.keel.sh\nhelm repo update\nhelm upgrade --install keel keel\u002Fkeel --namespace keel --create-namespace\n",[484,893,894,911,920],{"__ignoreMap":547},[551,895,896,899,902,905,908],{"class":553,"line":554},[551,897,898],{"class":557},"helm",[551,900,901],{"class":561}," repo",[551,903,904],{"class":561}," add",[551,906,907],{"class":561}," keel",[551,909,910],{"class":561}," https:\u002F\u002Fcharts.keel.sh\n",[551,912,913,915,917],{"class":553,"line":568},[551,914,898],{"class":557},[551,916,901],{"class":561},[551,918,919],{"class":561}," update\n",[551,921,922,924,927,930,932,935,938,940],{"class":553,"line":760},[551,923,898],{"class":557},[551,925,926],{"class":561}," upgrade",[551,928,929],{"class":561}," --install",[551,931,907],{"class":561},[551,933,934],{"class":561}," keel\u002Fkeel",[551,936,937],{"class":561}," --namespace",[551,939,907],{"class":561},[551,941,942],{"class":561}," --create-namespace\n",[620,944,945,950,951,953,954,957,958,608,961,964,965,967,968,971,972],{},[437,946,947,949],{},[484,948,506],{}," eintragen:"," In ",[484,952,584],{}," bei ",[484,955,956],{},"cms",", ",[484,959,960],{},"render-worker",[484,962,963],{},"client"," statt der Version den Tag ",[484,966,506],{}," – ",[484,969,970],{},"…\u002Fcms:stable"," und so weiter – und anwenden:",[542,973,975],{"className":544,"code":974,"language":546,"meta":547,"style":547},"kubectl -n ddm apply -f ddm.yaml\n",[484,976,977],{"__ignoreMap":547},[551,978,979,982,985,988,991,994],{"class":553,"line":554},[551,980,981],{"class":557},"kubectl",[551,983,984],{"class":561}," -n",[551,986,987],{"class":561}," ddm",[551,989,990],{"class":561}," apply",[551,992,993],{"class":561}," -f",[551,995,996],{"class":561}," ddm.yaml\n",[620,998,999,1002,1073,1076,704,1079,1082,1083,1085],{},[437,1000,1001],{},"Die drei Apps an Keel geben:",[542,1003,1005],{"className":544,"code":1004,"language":546,"meta":547,"style":547},"kubectl -n ddm annotate deployment cms render-worker client --overwrite \\\n  keel.sh\u002Fpolicy=force \\\n  keel.sh\u002Fmatch-tag=true \\\n  keel.sh\u002Ftrigger=poll \\\n  keel.sh\u002FpollSchedule=\"@every 6h\"\n",[484,1006,1007,1035,1042,1052,1059],{"__ignoreMap":547},[551,1008,1009,1011,1013,1015,1018,1021,1024,1027,1030,1033],{"class":553,"line":554},[551,1010,981],{"class":557},[551,1012,984],{"class":561},[551,1014,987],{"class":561},[551,1016,1017],{"class":561}," annotate",[551,1019,1020],{"class":561}," deployment",[551,1022,1023],{"class":561}," cms",[551,1025,1026],{"class":561}," render-worker",[551,1028,1029],{"class":561}," client",[551,1031,1032],{"class":561}," --overwrite",[551,1034,747],{"class":746},[551,1036,1037,1040],{"class":553,"line":568},[551,1038,1039],{"class":561},"  keel.sh\u002Fpolicy=force",[551,1041,747],{"class":746},[551,1043,1044,1047,1050],{"class":553,"line":760},[551,1045,1046],{"class":561},"  keel.sh\u002Fmatch-tag=",[551,1048,1049],{"class":782},"true",[551,1051,747],{"class":746},[551,1053,1054,1057],{"class":553,"line":770},[551,1055,1056],{"class":561},"  keel.sh\u002Ftrigger=poll",[551,1058,747],{"class":746},[551,1060,1062,1065,1068,1071],{"class":553,"line":1061},5,[551,1063,1064],{"class":561},"  keel.sh\u002FpollSchedule=",[551,1066,1067],{"class":782},"\"",[551,1069,1070],{"class":561},"@every 6h",[551,1072,789],{"class":782},[1074,1075],"br",{},[484,1077,1078],{},"force",[484,1080,1081],{},"match-tag"," heißt: derselbe Tag, neues Image – genau das, was beim Freigeben einer Version unter ",[484,1084,506],{}," passiert. Alle sechs Stunden schaut Keel nach.",[433,1087,1088,1089,450],{},"Ab dann aktualisiert sich die Installation selbst. Ob Keel etwas gefunden hat, zeigt ",[484,1090,1091],{},"kubectl -n keel logs deploy\u002Fkeel",[864,1093,810],{"id":1094},"flux",[433,1096,1097,1098,1103,1104,1106,1107,1109,1110,1113,1114,1116,1117,1120],{},"Die ",[448,1099,1102],{"href":1100,"rel":1101},"https:\u002F\u002Ffluxcd.io\u002Fflux\u002Fguides\u002Fimage-update\u002F",[702],"Image-Automatisierung von Flux"," liest die Versionen in unserer Registry, schreibt die neueste passende in ",[484,1105,584],{}," in Ihrem Git-Repository und spielt sie von dort ein. Sie folgt einem Versionsbereich, nicht dem Tag ",[484,1108,506],{}," – am sichersten den ",[437,1111,1112],{},"Fehlerbehebungen Ihrer Version"," (",[484,1115,631],{},"); die nächste Version (",[484,1118,1119],{},"0.27",") stellen Sie dann von Hand um.",[433,1122,1123],{},"Vorausgesetzt ist ein Cluster, den Flux aus einem Git-Repository betreibt, mit den beiden Image-Controllern – bei einem neuen Cluster:",[542,1125,1127],{"className":544,"code":1126,"language":546,"meta":547,"style":547},"flux bootstrap gitlab --owner=\u003CGruppe> --repository=\u003CRepository> --path=clusters\u002Fproduction \\\n  --components-extra=image-reflector-controller,image-automation-controller\n",[484,1128,1129,1166],{"__ignoreMap":547},[551,1130,1131,1133,1136,1139,1142,1145,1148,1151,1154,1156,1159,1161,1164],{"class":553,"line":554},[551,1132,1094],{"class":557},[551,1134,1135],{"class":561}," bootstrap",[551,1137,1138],{"class":561}," gitlab",[551,1140,1141],{"class":561}," --owner=",[551,1143,1144],{"class":782},"\u003C",[551,1146,1147],{"class":561},"Gruppe",[551,1149,1150],{"class":782},">",[551,1152,1153],{"class":561}," --repository=",[551,1155,1144],{"class":782},[551,1157,1158],{"class":561},"Repository",[551,1160,1150],{"class":782},[551,1162,1163],{"class":561}," --path=clusters\u002Fproduction",[551,1165,747],{"class":746},[551,1167,1168],{"class":553,"line":568},[551,1169,1170],{"class":561},"  --components-extra=image-reflector-controller,image-automation-controller\n",[882,1172,1173,1193,1270,1288],{},[620,1174,1175,1180,1181,1184,1185,1188,1189,1192],{},[437,1176,1177,1179],{},[484,1178,584],{}," ins Repository legen",", zum Beispiel unter ",[484,1182,1183],{},"clusters\u002Fproduction\u002Fddm\u002F",", mit einer genauen Version (",[484,1186,1187],{},"…\u002Fcms:0.26.1","). Die Vermerke, wo Flux eine neue Version einträgt – ",[484,1190,1191],{},"# {\"$imagepolicy\": …}"," hinter den drei Image-Zeilen –, stehen schon darin.",[620,1194,1195,1198,1199,1202,1203],{},[437,1196,1197],{},"Flux die Registry lesen lassen"," – mit demselben Deploy-Token, als Secret im Namespace ",[484,1200,1201],{},"flux-system",":",[542,1204,1206],{"className":544,"code":1205,"language":546,"meta":547,"style":547},"kubectl -n flux-system create secret docker-registry ddm-registry \\\n  --docker-server=registry.gitlab.com \\\n  --docker-username=\u003CName des Tokens> --docker-password=\u003CToken>\n",[484,1207,1208,1231,1238],{"__ignoreMap":547},[551,1209,1210,1212,1214,1217,1220,1223,1226,1229],{"class":553,"line":554},[551,1211,981],{"class":557},[551,1213,984],{"class":561},[551,1215,1216],{"class":561}," flux-system",[551,1218,1219],{"class":561}," create",[551,1221,1222],{"class":561}," secret",[551,1224,1225],{"class":561}," docker-registry",[551,1227,1228],{"class":561}," ddm-registry",[551,1230,747],{"class":746},[551,1232,1233,1236],{"class":553,"line":568},[551,1234,1235],{"class":561},"  --docker-server=registry.gitlab.com",[551,1237,747],{"class":746},[551,1239,1240,1243,1245,1248,1251,1254,1257,1259,1262,1264,1267],{"class":553,"line":760},[551,1241,1242],{"class":561},"  --docker-username=",[551,1244,1144],{"class":782},[551,1246,1247],{"class":561},"Name",[551,1249,1250],{"class":561}," des",[551,1252,1253],{"class":561}," Token",[551,1255,1256],{"class":746},"s",[551,1258,1150],{"class":782},[551,1260,1261],{"class":561}," --docker-password=",[551,1263,1144],{"class":782},[551,1265,1266],{"class":561},"Token",[551,1268,1269],{"class":782},">\n",[620,1271,1272,1275,1276,1279,1280,1283,1284,1287],{},[437,1273,1274],{},"Was Flux beobachtet und wohin es schreibt:"," ",[484,1277,1278],{},"ddm-updates.yaml",", unten, ins selbe Verzeichnis. Setzen Sie darin ",[484,1281,1282],{},"range"," (dreimal), ",[484,1285,1286],{},"path"," und die E-Mail-Adresse der Commits.",[620,1289,1290,1293,1294,1296,1297,1299,1300,1303,1304,1306],{},[437,1291,1292],{},"Committen und pushen."," Flux prüft stündlich; jede neue ",[484,1295,631],{}," landet als Commit in Ihrem Repository und im Cluster. Für die nächste Version setzen Sie ",[484,1298,1282],{}," auf ",[484,1301,1302],{},"0.27.x"," (dreimal) und die drei Versionen in ",[484,1305,584],{}," von Hand.",[542,1308,1312],{"className":1309,"code":1310,"filename":1278,"language":1311,"meta":547,"style":547},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Updates by Flux's image automation, for an installation Flux runs from a\n# Git repository (user guide, „Updates\"): beside `ddm.yaml`, in the folder\n# Flux applies. It reads our registry every hour and writes the newest\n# version in `range` into `ddm.yaml` — behind the `$imagepolicy` comments —\n# commits and pushes it.\n#\n# Set before committing:\n#   - `range`, three times: your version's fixes, e.g. `0.26.x`;\n#   - `path`: the folder `ddm.yaml` is in, from the repository's root;\n#   - the commit's `email`, and `branch` if yours is not `main`.\n# It reads the registry with the Secret `ddm-registry` in `flux-system` —\n# the deploy token, as in the `ddm` namespace.\n# cms: where its versions are, and which one applies.\napiVersion: image.toolkit.fluxcd.io\u002Fv1beta2\nkind: ImageRepository\nmetadata: { name: ddm-cms, namespace: flux-system }\nspec:\n  image: registry.gitlab.com\u002Fiq-me\u002Fnew-ddm-images\u002Fcms\n  interval: 1h\n  secretRef: { name: ddm-registry }\n---\napiVersion: image.toolkit.fluxcd.io\u002Fv1beta2\nkind: ImagePolicy\nmetadata: { name: ddm-cms, namespace: flux-system }\nspec:\n  imageRepositoryRef: { name: ddm-cms }\n  filterTags: { pattern: '^\\d+\\.\\d+\\.\\d+$' }\n  policy: { semver: { range: '0.26.x' } }\n---\n# render-worker: where its versions are, and which one applies.\napiVersion: image.toolkit.fluxcd.io\u002Fv1beta2\nkind: ImageRepository\nmetadata: { name: ddm-render-worker, namespace: flux-system }\nspec:\n  image: registry.gitlab.com\u002Fiq-me\u002Fnew-ddm-images\u002Frender-worker\n  interval: 1h\n  secretRef: { name: ddm-registry }\n---\napiVersion: image.toolkit.fluxcd.io\u002Fv1beta2\nkind: ImagePolicy\nmetadata: { name: ddm-render-worker, namespace: flux-system }\nspec:\n  imageRepositoryRef: { name: ddm-render-worker }\n  filterTags: { pattern: '^\\d+\\.\\d+\\.\\d+$' }\n  policy: { semver: { range: '0.26.x' } }\n---\n# client: where its versions are, and which one applies.\napiVersion: image.toolkit.fluxcd.io\u002Fv1beta2\nkind: ImageRepository\nmetadata: { name: ddm-client, namespace: flux-system }\nspec:\n  image: registry.gitlab.com\u002Fiq-me\u002Fnew-ddm-images\u002Fclient\n  interval: 1h\n  secretRef: { name: ddm-registry }\n---\napiVersion: image.toolkit.fluxcd.io\u002Fv1beta2\nkind: ImagePolicy\nmetadata: { name: ddm-client, namespace: flux-system }\nspec:\n  imageRepositoryRef: { name: ddm-client }\n  filterTags: { pattern: '^\\d+\\.\\d+\\.\\d+$' }\n  policy: { semver: { range: '0.26.x' } }\n---\n# Writes the new versions into ddm.yaml and pushes them.\napiVersion: image.toolkit.fluxcd.io\u002Fv1beta2\nkind: ImageUpdateAutomation\nmetadata: { name: ddm, namespace: flux-system }\nspec:\n  interval: 1h\n  sourceRef: { kind: GitRepository, name: flux-system }\n  git:\n    checkout: { ref: { branch: main } }\n    commit:\n      author: { name: Flux, email: flux@example.com }\n      messageTemplate: Update DDM\n    push: { branch: main }\n  update: { path: .\u002Fclusters\u002Fproduction\u002Fddm, strategy: Setters }\n","yaml",[484,1313,1314,1320,1325,1330,1335,1340,1346,1352,1358,1364,1370,1376,1382,1388,1400,1411,1443,1452,1463,1474,1492,1498,1507,1517,1542,1549,1567,1593,1626,1631,1637,1646,1655,1681,1688,1698,1707,1724,1729,1738,1747,1772,1779,1796,1817,1846,1851,1857,1866,1875,1901,1908,1918,1927,1944,1949,1958,1967,1992,1999,2016,2037,2066,2071,2077,2086,2096,2121,2128,2137,2165,2173,2202,2210,2239,2250,2268],{"__ignoreMap":547},[551,1315,1316],{"class":553,"line":554},[551,1317,1319],{"class":1318},"sHwdD","# Updates by Flux's image automation, for an installation Flux runs from a\n",[551,1321,1322],{"class":553,"line":568},[551,1323,1324],{"class":1318},"# Git repository (user guide, „Updates\"): beside `ddm.yaml`, in the folder\n",[551,1326,1327],{"class":553,"line":760},[551,1328,1329],{"class":1318},"# Flux applies. It reads our registry every hour and writes the newest\n",[551,1331,1332],{"class":553,"line":770},[551,1333,1334],{"class":1318},"# version in `range` into `ddm.yaml` — behind the `$imagepolicy` comments —\n",[551,1336,1337],{"class":553,"line":1061},[551,1338,1339],{"class":1318},"# commits and pushes it.\n",[551,1341,1343],{"class":553,"line":1342},6,[551,1344,1345],{"class":1318},"#\n",[551,1347,1349],{"class":553,"line":1348},7,[551,1350,1351],{"class":1318},"# Set before committing:\n",[551,1353,1355],{"class":553,"line":1354},8,[551,1356,1357],{"class":1318},"#   - `range`, three times: your version's fixes, e.g. `0.26.x`;\n",[551,1359,1361],{"class":553,"line":1360},9,[551,1362,1363],{"class":1318},"#   - `path`: the folder `ddm.yaml` is in, from the repository's root;\n",[551,1365,1367],{"class":553,"line":1366},10,[551,1368,1369],{"class":1318},"#   - the commit's `email`, and `branch` if yours is not `main`.\n",[551,1371,1373],{"class":553,"line":1372},11,[551,1374,1375],{"class":1318},"# It reads the registry with the Secret `ddm-registry` in `flux-system` —\n",[551,1377,1379],{"class":553,"line":1378},12,[551,1380,1381],{"class":1318},"# the deploy token, as in the `ddm` namespace.\n",[551,1383,1385],{"class":553,"line":1384},13,[551,1386,1387],{"class":1318},"# cms: where its versions are, and which one applies.\n",[551,1389,1391,1395,1397],{"class":553,"line":1390},14,[551,1392,1394],{"class":1393},"swJcz","apiVersion",[551,1396,1202],{"class":782},[551,1398,1399],{"class":561}," image.toolkit.fluxcd.io\u002Fv1beta2\n",[551,1401,1403,1406,1408],{"class":553,"line":1402},15,[551,1404,1405],{"class":1393},"kind",[551,1407,1202],{"class":782},[551,1409,1410],{"class":561}," ImageRepository\n",[551,1412,1414,1417,1419,1422,1425,1427,1430,1433,1436,1438,1440],{"class":553,"line":1413},16,[551,1415,1416],{"class":1393},"metadata",[551,1418,1202],{"class":782},[551,1420,1421],{"class":782}," {",[551,1423,1424],{"class":1393}," name",[551,1426,1202],{"class":782},[551,1428,1429],{"class":561}," ddm-cms",[551,1431,1432],{"class":782},",",[551,1434,1435],{"class":1393}," namespace",[551,1437,1202],{"class":782},[551,1439,1216],{"class":561},[551,1441,1442],{"class":782}," }\n",[551,1444,1446,1449],{"class":553,"line":1445},17,[551,1447,1448],{"class":1393},"spec",[551,1450,1451],{"class":782},":\n",[551,1453,1455,1458,1460],{"class":553,"line":1454},18,[551,1456,1457],{"class":1393},"  image",[551,1459,1202],{"class":782},[551,1461,1462],{"class":561}," registry.gitlab.com\u002Fiq-me\u002Fnew-ddm-images\u002Fcms\n",[551,1464,1466,1469,1471],{"class":553,"line":1465},19,[551,1467,1468],{"class":1393},"  interval",[551,1470,1202],{"class":782},[551,1472,1473],{"class":561}," 1h\n",[551,1475,1477,1480,1482,1484,1486,1488,1490],{"class":553,"line":1476},20,[551,1478,1479],{"class":1393},"  secretRef",[551,1481,1202],{"class":782},[551,1483,1421],{"class":782},[551,1485,1424],{"class":1393},[551,1487,1202],{"class":782},[551,1489,1228],{"class":561},[551,1491,1442],{"class":782},[551,1493,1495],{"class":553,"line":1494},21,[551,1496,1497],{"class":557},"---\n",[551,1499,1501,1503,1505],{"class":553,"line":1500},22,[551,1502,1394],{"class":1393},[551,1504,1202],{"class":782},[551,1506,1399],{"class":561},[551,1508,1510,1512,1514],{"class":553,"line":1509},23,[551,1511,1405],{"class":1393},[551,1513,1202],{"class":782},[551,1515,1516],{"class":561}," ImagePolicy\n",[551,1518,1520,1522,1524,1526,1528,1530,1532,1534,1536,1538,1540],{"class":553,"line":1519},24,[551,1521,1416],{"class":1393},[551,1523,1202],{"class":782},[551,1525,1421],{"class":782},[551,1527,1424],{"class":1393},[551,1529,1202],{"class":782},[551,1531,1429],{"class":561},[551,1533,1432],{"class":782},[551,1535,1435],{"class":1393},[551,1537,1202],{"class":782},[551,1539,1216],{"class":561},[551,1541,1442],{"class":782},[551,1543,1545,1547],{"class":553,"line":1544},25,[551,1546,1448],{"class":1393},[551,1548,1451],{"class":782},[551,1550,1552,1555,1557,1559,1561,1563,1565],{"class":553,"line":1551},26,[551,1553,1554],{"class":1393},"  imageRepositoryRef",[551,1556,1202],{"class":782},[551,1558,1421],{"class":782},[551,1560,1424],{"class":1393},[551,1562,1202],{"class":782},[551,1564,1429],{"class":561},[551,1566,1442],{"class":782},[551,1568,1570,1573,1575,1577,1580,1582,1585,1588,1591],{"class":553,"line":1569},27,[551,1571,1572],{"class":1393},"  filterTags",[551,1574,1202],{"class":782},[551,1576,1421],{"class":782},[551,1578,1579],{"class":1393}," pattern",[551,1581,1202],{"class":782},[551,1583,1584],{"class":782}," '",[551,1586,1587],{"class":561},"^\\d+\\.\\d+\\.\\d+$",[551,1589,1590],{"class":782},"'",[551,1592,1442],{"class":782},[551,1594,1596,1599,1601,1603,1606,1608,1610,1613,1615,1617,1619,1621,1624],{"class":553,"line":1595},28,[551,1597,1598],{"class":1393},"  policy",[551,1600,1202],{"class":782},[551,1602,1421],{"class":782},[551,1604,1605],{"class":1393}," semver",[551,1607,1202],{"class":782},[551,1609,1421],{"class":782},[551,1611,1612],{"class":1393}," range",[551,1614,1202],{"class":782},[551,1616,1584],{"class":782},[551,1618,631],{"class":561},[551,1620,1590],{"class":782},[551,1622,1623],{"class":782}," }",[551,1625,1442],{"class":782},[551,1627,1629],{"class":553,"line":1628},29,[551,1630,1497],{"class":557},[551,1632,1634],{"class":553,"line":1633},30,[551,1635,1636],{"class":1318},"# render-worker: where its versions are, and which one applies.\n",[551,1638,1640,1642,1644],{"class":553,"line":1639},31,[551,1641,1394],{"class":1393},[551,1643,1202],{"class":782},[551,1645,1399],{"class":561},[551,1647,1649,1651,1653],{"class":553,"line":1648},32,[551,1650,1405],{"class":1393},[551,1652,1202],{"class":782},[551,1654,1410],{"class":561},[551,1656,1658,1660,1662,1664,1666,1668,1671,1673,1675,1677,1679],{"class":553,"line":1657},33,[551,1659,1416],{"class":1393},[551,1661,1202],{"class":782},[551,1663,1421],{"class":782},[551,1665,1424],{"class":1393},[551,1667,1202],{"class":782},[551,1669,1670],{"class":561}," ddm-render-worker",[551,1672,1432],{"class":782},[551,1674,1435],{"class":1393},[551,1676,1202],{"class":782},[551,1678,1216],{"class":561},[551,1680,1442],{"class":782},[551,1682,1684,1686],{"class":553,"line":1683},34,[551,1685,1448],{"class":1393},[551,1687,1451],{"class":782},[551,1689,1691,1693,1695],{"class":553,"line":1690},35,[551,1692,1457],{"class":1393},[551,1694,1202],{"class":782},[551,1696,1697],{"class":561}," registry.gitlab.com\u002Fiq-me\u002Fnew-ddm-images\u002Frender-worker\n",[551,1699,1701,1703,1705],{"class":553,"line":1700},36,[551,1702,1468],{"class":1393},[551,1704,1202],{"class":782},[551,1706,1473],{"class":561},[551,1708,1710,1712,1714,1716,1718,1720,1722],{"class":553,"line":1709},37,[551,1711,1479],{"class":1393},[551,1713,1202],{"class":782},[551,1715,1421],{"class":782},[551,1717,1424],{"class":1393},[551,1719,1202],{"class":782},[551,1721,1228],{"class":561},[551,1723,1442],{"class":782},[551,1725,1727],{"class":553,"line":1726},38,[551,1728,1497],{"class":557},[551,1730,1732,1734,1736],{"class":553,"line":1731},39,[551,1733,1394],{"class":1393},[551,1735,1202],{"class":782},[551,1737,1399],{"class":561},[551,1739,1741,1743,1745],{"class":553,"line":1740},40,[551,1742,1405],{"class":1393},[551,1744,1202],{"class":782},[551,1746,1516],{"class":561},[551,1748,1750,1752,1754,1756,1758,1760,1762,1764,1766,1768,1770],{"class":553,"line":1749},41,[551,1751,1416],{"class":1393},[551,1753,1202],{"class":782},[551,1755,1421],{"class":782},[551,1757,1424],{"class":1393},[551,1759,1202],{"class":782},[551,1761,1670],{"class":561},[551,1763,1432],{"class":782},[551,1765,1435],{"class":1393},[551,1767,1202],{"class":782},[551,1769,1216],{"class":561},[551,1771,1442],{"class":782},[551,1773,1775,1777],{"class":553,"line":1774},42,[551,1776,1448],{"class":1393},[551,1778,1451],{"class":782},[551,1780,1782,1784,1786,1788,1790,1792,1794],{"class":553,"line":1781},43,[551,1783,1554],{"class":1393},[551,1785,1202],{"class":782},[551,1787,1421],{"class":782},[551,1789,1424],{"class":1393},[551,1791,1202],{"class":782},[551,1793,1670],{"class":561},[551,1795,1442],{"class":782},[551,1797,1799,1801,1803,1805,1807,1809,1811,1813,1815],{"class":553,"line":1798},44,[551,1800,1572],{"class":1393},[551,1802,1202],{"class":782},[551,1804,1421],{"class":782},[551,1806,1579],{"class":1393},[551,1808,1202],{"class":782},[551,1810,1584],{"class":782},[551,1812,1587],{"class":561},[551,1814,1590],{"class":782},[551,1816,1442],{"class":782},[551,1818,1820,1822,1824,1826,1828,1830,1832,1834,1836,1838,1840,1842,1844],{"class":553,"line":1819},45,[551,1821,1598],{"class":1393},[551,1823,1202],{"class":782},[551,1825,1421],{"class":782},[551,1827,1605],{"class":1393},[551,1829,1202],{"class":782},[551,1831,1421],{"class":782},[551,1833,1612],{"class":1393},[551,1835,1202],{"class":782},[551,1837,1584],{"class":782},[551,1839,631],{"class":561},[551,1841,1590],{"class":782},[551,1843,1623],{"class":782},[551,1845,1442],{"class":782},[551,1847,1849],{"class":553,"line":1848},46,[551,1850,1497],{"class":557},[551,1852,1854],{"class":553,"line":1853},47,[551,1855,1856],{"class":1318},"# client: where its versions are, and which one applies.\n",[551,1858,1860,1862,1864],{"class":553,"line":1859},48,[551,1861,1394],{"class":1393},[551,1863,1202],{"class":782},[551,1865,1399],{"class":561},[551,1867,1869,1871,1873],{"class":553,"line":1868},49,[551,1870,1405],{"class":1393},[551,1872,1202],{"class":782},[551,1874,1410],{"class":561},[551,1876,1878,1880,1882,1884,1886,1888,1891,1893,1895,1897,1899],{"class":553,"line":1877},50,[551,1879,1416],{"class":1393},[551,1881,1202],{"class":782},[551,1883,1421],{"class":782},[551,1885,1424],{"class":1393},[551,1887,1202],{"class":782},[551,1889,1890],{"class":561}," ddm-client",[551,1892,1432],{"class":782},[551,1894,1435],{"class":1393},[551,1896,1202],{"class":782},[551,1898,1216],{"class":561},[551,1900,1442],{"class":782},[551,1902,1904,1906],{"class":553,"line":1903},51,[551,1905,1448],{"class":1393},[551,1907,1451],{"class":782},[551,1909,1911,1913,1915],{"class":553,"line":1910},52,[551,1912,1457],{"class":1393},[551,1914,1202],{"class":782},[551,1916,1917],{"class":561}," registry.gitlab.com\u002Fiq-me\u002Fnew-ddm-images\u002Fclient\n",[551,1919,1921,1923,1925],{"class":553,"line":1920},53,[551,1922,1468],{"class":1393},[551,1924,1202],{"class":782},[551,1926,1473],{"class":561},[551,1928,1930,1932,1934,1936,1938,1940,1942],{"class":553,"line":1929},54,[551,1931,1479],{"class":1393},[551,1933,1202],{"class":782},[551,1935,1421],{"class":782},[551,1937,1424],{"class":1393},[551,1939,1202],{"class":782},[551,1941,1228],{"class":561},[551,1943,1442],{"class":782},[551,1945,1947],{"class":553,"line":1946},55,[551,1948,1497],{"class":557},[551,1950,1952,1954,1956],{"class":553,"line":1951},56,[551,1953,1394],{"class":1393},[551,1955,1202],{"class":782},[551,1957,1399],{"class":561},[551,1959,1961,1963,1965],{"class":553,"line":1960},57,[551,1962,1405],{"class":1393},[551,1964,1202],{"class":782},[551,1966,1516],{"class":561},[551,1968,1970,1972,1974,1976,1978,1980,1982,1984,1986,1988,1990],{"class":553,"line":1969},58,[551,1971,1416],{"class":1393},[551,1973,1202],{"class":782},[551,1975,1421],{"class":782},[551,1977,1424],{"class":1393},[551,1979,1202],{"class":782},[551,1981,1890],{"class":561},[551,1983,1432],{"class":782},[551,1985,1435],{"class":1393},[551,1987,1202],{"class":782},[551,1989,1216],{"class":561},[551,1991,1442],{"class":782},[551,1993,1995,1997],{"class":553,"line":1994},59,[551,1996,1448],{"class":1393},[551,1998,1451],{"class":782},[551,2000,2002,2004,2006,2008,2010,2012,2014],{"class":553,"line":2001},60,[551,2003,1554],{"class":1393},[551,2005,1202],{"class":782},[551,2007,1421],{"class":782},[551,2009,1424],{"class":1393},[551,2011,1202],{"class":782},[551,2013,1890],{"class":561},[551,2015,1442],{"class":782},[551,2017,2019,2021,2023,2025,2027,2029,2031,2033,2035],{"class":553,"line":2018},61,[551,2020,1572],{"class":1393},[551,2022,1202],{"class":782},[551,2024,1421],{"class":782},[551,2026,1579],{"class":1393},[551,2028,1202],{"class":782},[551,2030,1584],{"class":782},[551,2032,1587],{"class":561},[551,2034,1590],{"class":782},[551,2036,1442],{"class":782},[551,2038,2040,2042,2044,2046,2048,2050,2052,2054,2056,2058,2060,2062,2064],{"class":553,"line":2039},62,[551,2041,1598],{"class":1393},[551,2043,1202],{"class":782},[551,2045,1421],{"class":782},[551,2047,1605],{"class":1393},[551,2049,1202],{"class":782},[551,2051,1421],{"class":782},[551,2053,1612],{"class":1393},[551,2055,1202],{"class":782},[551,2057,1584],{"class":782},[551,2059,631],{"class":561},[551,2061,1590],{"class":782},[551,2063,1623],{"class":782},[551,2065,1442],{"class":782},[551,2067,2069],{"class":553,"line":2068},63,[551,2070,1497],{"class":557},[551,2072,2074],{"class":553,"line":2073},64,[551,2075,2076],{"class":1318},"# Writes the new versions into ddm.yaml and pushes them.\n",[551,2078,2080,2082,2084],{"class":553,"line":2079},65,[551,2081,1394],{"class":1393},[551,2083,1202],{"class":782},[551,2085,1399],{"class":561},[551,2087,2089,2091,2093],{"class":553,"line":2088},66,[551,2090,1405],{"class":1393},[551,2092,1202],{"class":782},[551,2094,2095],{"class":561}," ImageUpdateAutomation\n",[551,2097,2099,2101,2103,2105,2107,2109,2111,2113,2115,2117,2119],{"class":553,"line":2098},67,[551,2100,1416],{"class":1393},[551,2102,1202],{"class":782},[551,2104,1421],{"class":782},[551,2106,1424],{"class":1393},[551,2108,1202],{"class":782},[551,2110,987],{"class":561},[551,2112,1432],{"class":782},[551,2114,1435],{"class":1393},[551,2116,1202],{"class":782},[551,2118,1216],{"class":561},[551,2120,1442],{"class":782},[551,2122,2124,2126],{"class":553,"line":2123},68,[551,2125,1448],{"class":1393},[551,2127,1451],{"class":782},[551,2129,2131,2133,2135],{"class":553,"line":2130},69,[551,2132,1468],{"class":1393},[551,2134,1202],{"class":782},[551,2136,1473],{"class":561},[551,2138,2140,2143,2145,2147,2150,2152,2155,2157,2159,2161,2163],{"class":553,"line":2139},70,[551,2141,2142],{"class":1393},"  sourceRef",[551,2144,1202],{"class":782},[551,2146,1421],{"class":782},[551,2148,2149],{"class":1393}," kind",[551,2151,1202],{"class":782},[551,2153,2154],{"class":561}," GitRepository",[551,2156,1432],{"class":782},[551,2158,1424],{"class":1393},[551,2160,1202],{"class":782},[551,2162,1216],{"class":561},[551,2164,1442],{"class":782},[551,2166,2168,2171],{"class":553,"line":2167},71,[551,2169,2170],{"class":1393},"  git",[551,2172,1451],{"class":782},[551,2174,2176,2179,2181,2183,2186,2188,2190,2193,2195,2198,2200],{"class":553,"line":2175},72,[551,2177,2178],{"class":1393},"    checkout",[551,2180,1202],{"class":782},[551,2182,1421],{"class":782},[551,2184,2185],{"class":1393}," ref",[551,2187,1202],{"class":782},[551,2189,1421],{"class":782},[551,2191,2192],{"class":1393}," branch",[551,2194,1202],{"class":782},[551,2196,2197],{"class":561}," main",[551,2199,1623],{"class":782},[551,2201,1442],{"class":782},[551,2203,2205,2208],{"class":553,"line":2204},73,[551,2206,2207],{"class":1393},"    commit",[551,2209,1451],{"class":782},[551,2211,2213,2216,2218,2220,2222,2224,2227,2229,2232,2234,2237],{"class":553,"line":2212},74,[551,2214,2215],{"class":1393},"      author",[551,2217,1202],{"class":782},[551,2219,1421],{"class":782},[551,2221,1424],{"class":1393},[551,2223,1202],{"class":782},[551,2225,2226],{"class":561}," Flux",[551,2228,1432],{"class":782},[551,2230,2231],{"class":1393}," email",[551,2233,1202],{"class":782},[551,2235,2236],{"class":561}," flux@example.com",[551,2238,1442],{"class":782},[551,2240,2242,2245,2247],{"class":553,"line":2241},75,[551,2243,2244],{"class":1393},"      messageTemplate",[551,2246,1202],{"class":782},[551,2248,2249],{"class":561}," Update DDM\n",[551,2251,2253,2256,2258,2260,2262,2264,2266],{"class":553,"line":2252},76,[551,2254,2255],{"class":1393},"    push",[551,2257,1202],{"class":782},[551,2259,1421],{"class":782},[551,2261,2192],{"class":1393},[551,2263,1202],{"class":782},[551,2265,2197],{"class":561},[551,2267,1442],{"class":782},[551,2269,2271,2274,2276,2278,2281,2283,2286,2288,2291,2293,2296],{"class":553,"line":2270},77,[551,2272,2273],{"class":1393},"  update",[551,2275,1202],{"class":782},[551,2277,1421],{"class":782},[551,2279,2280],{"class":1393}," path",[551,2282,1202],{"class":782},[551,2284,2285],{"class":561}," .\u002Fclusters\u002Fproduction\u002Fddm",[551,2287,1432],{"class":782},[551,2289,2290],{"class":1393}," strategy",[551,2292,1202],{"class":782},[551,2294,2295],{"class":561}," Setters",[551,2297,1442],{"class":782},[433,2299,2300,2301,450],{},"Ob Flux etwas gefunden hat, zeigt ",[484,2302,2303],{},"flux get images all",[452,2305,2307],{"id":2306},"was-sie-nicht-tun-sollten","Was Sie nicht tun sollten",[617,2309,2310,2320],{},[620,2311,2312,2315,2316,2319],{},[437,2313,2314],{},"Keine Version zurück."," Eine neue Version ändert die Datenbank; eine ältere versteht sie danach nicht mehr. Läuft nach einem Update etwas nicht, ",[448,2317,2318],{"href":415},"stellen Sie die Sicherung"," von vor dem Update wieder her und schreiben Sie uns.",[620,2321,2322,2325,2326,450],{},[437,2323,2324],{},"Postgres nicht automatisch aktualisieren."," Eine neue Hauptversion (18 → 19) braucht eine Umstellung der Daten – siehe ",[448,2327,409],{"href":410},[2329,2330,2331],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":547,"searchDepth":568,"depth":568,"links":2333},[2334,2335,2336,2337,2338,2339,2343],{"id":454,"depth":568,"text":455},{"id":528,"depth":568,"text":529},{"id":601,"depth":568,"text":602},{"id":675,"depth":568,"text":676},{"id":687,"depth":568,"text":688},{"id":792,"depth":568,"text":793,"children":2340},[2341,2342],{"id":866,"depth":760,"text":807},{"id":1094,"depth":760,"text":810},{"id":2306,"depth":568,"text":2307},"Eine Installation auf eine neue Version bringen – von Hand oder automatisch.","md",null,{},{"icon":211},{"title":405,"description":2344},"C0XvUXcIvtBbdr08cwiUzepJ_31Iq2qhd8TX1KJ0It0",[2352,2354],{"title":400,"path":401,"stem":402,"description":2353,"icon":403,"children":-1},"Wie die Lizenz einer Installation erneuert wird, was sie erlaubt und was passiert, wenn sie abläuft.",{"title":409,"path":410,"stem":411,"description":2355,"icon":412,"children":-1},"Welche Postgres-Version DDM braucht, wie Fehlerbehebungen ankommen und wie Sie auf eine neue Hauptversion umziehen.",1793617731468]