• Aktuell
    • Tags
    • Beliebt
    • Benutzer
    • Gruppen
    • Suche
    • Registrieren
    • Anmelden

    Church Tools - Auto Updater

    Tipps & Tricks
    16
    45
    10.6k
    Lade mehr Beiträge
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
    • dennis-eisenD
      dennis-eisen
      zuletzt editiert von dennis-eisen

      ChurchTools AutoUpdater

      Das hier geht an alle, die ChurchTools selbst hosten...

      Allgemein

      Michael Lux (@milux) und Ich hatten keine Lust mehr ChurchTools ständig von Hand per FTP zu aktualisieren, deshalb haben wir einen "kleinen" Auto Updater für ChurchTools 3.x entwickelt.
      Die Benutzung unseres Updaters ist denkbar einfach und sollte auch ohne Programmier-Kenntnisse nicht überfordern.

      View project on GitHub

      Funktionen

      Folgender Funktionsumfang ist in unserem Skript momentan enthalten:

      • Schutz des Skripts mit per Query-String übergebenem Passwort.
      • Verifikation, ob ein Update verfügbar ist.
      • Herunterladen der ZIP-Datei vom ChurchTools SeaFile Server
      • Entpacken der ZIP-Datei und Ersetzung der index.php und des system-Verzeichnisses (Einspielen des Updates)

      Bei Fragen stehen wir gerne zur Verfügung! 🙂

      Installation

      Vor dem erstmaligen Aufrufen der update.php müsst Ihr einen Hash für euer gewähltes Passwort erstellen.
      Dafür zuerst durch den Aufruf von https://churchtools_domain.xyz/createHash.php?EUER_PASSWORT einen Passwort-Hash erzeugen!
      Danach müsst ihr den dort erstellten Hash in der update.php bei define('HASH', 'PUT IN YOUR OWN HASH HERE'); eintragen.
      Wenn ihr jetzt noch bei define('SEAFILE_DIR', '/d/xyz1234567/'); den Pfad auf die Stelle anpasst, bei der ihr die ChruchTools-Updates herunter ladet, ist das Skript einsatzbereit!
      (Ihr bekommt bei Updates per E-Mail einen Link zu einer SeaFile-Seite, die i.d.R. so aussieht: https://seafile.churchtools.de/d/xyz1234567/, kopiert davon einfach den hinteren Teil!)

      Nun das Update-Skript im Root-Verzeichnis der ChurchTools Installation (neben index.php, system, files, etc.) ablegen und per Cronejob einmal am Tag (z.B. bei uns 4:00 Uhr) so aufrufen:
      https://churchtools_domain.xyz/update.php?EUER_PASSWORT

      Die meisten Hosting-Provider bieten Cronjobs für ihre Kunden an.
      Wenn ihr keine Cronjobs anlegen könnt, könnt ihr auch einen kostenlosen externen Dienst wie https://www.cron-job.org/ dafür verwenden.

      ChurchTools Version: 3.x latest (Auto-Updater)
      Hosting: All-Inkl (self-hosted)

      ? 1 Antwort Letzte Antwort Antworten Zitieren 5
      • ?
        Ein ehemaliger Benutzer @dennis-eisen
        zuletzt editiert von

        Dieser Beitrag wurde gelöscht!
        1 Antwort Letzte Antwort Antworten Zitieren 0
        • dennis-eisenD
          dennis-eisen
          zuletzt editiert von dennis-eisen

          @nico Hallo Nico, was genau willst du uns damit sagen? Weitere Informationen wären für eine Hilfestellung unabdingbar.

          ChurchTools Version: 3.x latest (Auto-Updater)
          Hosting: All-Inkl (self-hosted)

          ? 1 Antwort Letzte Antwort Antworten Zitieren 0
          • ?
            Ein ehemaliger Benutzer @dennis-eisen
            zuletzt editiert von

            Im Installationstext verwendet Ihr die upload.php; angelegt habt Ihr lt. GitHub aber die update.php

            dennis-eisenD 1 Antwort Letzte Antwort Antworten Zitieren 1
            • dennis-eisenD
              dennis-eisen @Ein ehemaliger Benutzer
              zuletzt editiert von

              @nico Danke für den Hinweis, wurde geändert.

              ChurchTools Version: 3.x latest (Auto-Updater)
              Hosting: All-Inkl (self-hosted)

              1 Antwort Letzte Antwort Antworten Zitieren 0
              • D
                daniel_
                zuletzt editiert von

                sehr schick. @dennis-eisen wir sind auch bei all-INKL. Ich habe aber den "system"-ordner als PHP-User laufen. Würde der Updater trotzdem funktionieren oder muss ich vorher wieder auf FTP-User umstellen? Wenn ich das "system" im FTP User belasse, bekomme ich immer Fehlermeldungen ohne Ende

                CT 3.x Hosting bei CT

                dennis-eisenD miluxM 2 Antworten Letzte Antwort Antworten Zitieren 0
                • M
                  merhard
                  zuletzt editiert von

                  Wäre es nicht sinnvoll, wenn Churchtools das gleich in ihr System mit integriert?

                  1 Antwort Letzte Antwort Antworten Zitieren 4
                  • dennis-eisenD
                    dennis-eisen @daniel_
                    zuletzt editiert von dennis-eisen

                    @daniel_h Also unser Skript funktioniert auch wunderbar, wenn der system Ordner dem PHP-User zugeordnet ist. Ich finde es allerdings interessant, den bei uns sind alle Ordner dem FTP-User zugeordnet und es gibt keine Probleme:
                    Kannst du mir bitte die Fehlermeldungen wenn du auf FTP-User umstellst und den Inhalt deiner .htaccess als private Nachricht schicken?

                    @merhard Das wäre natürlich wunderbar, aber ohne jemanden auf den Schlips treten zu wolle, dass dauert wohl noch ein wenig.
                    Das wäre dann aber eher ein Beitrag für die Kategorie Feature-Wünsche... Wenn du einen erstellen solltest, würdest du dafür definitiv einen Upvote von mir bekommen!

                    ChurchTools Version: 3.x latest (Auto-Updater)
                    Hosting: All-Inkl (self-hosted)

                    1 Antwort Letzte Antwort Antworten Zitieren 0
                    • jmrauenJ
                      jmrauen ChurchToolsMitarbeiter
                      zuletzt editiert von

                      Sieht super aus, unter welche Lizenz stellt Ihr das, dürften wir das direkt in CT einbauen?

                      miluxM 1 Antwort Letzte Antwort Antworten Zitieren 0
                      • miluxM
                        milux @daniel_
                        zuletzt editiert von milux

                        @daniel_h sagte in Church Tools - Auto Updater:
                        > sehr schick. @dennis-eisen wir sind auch bei all-INKL. Ich habe aber den "system"-ordner als PHP-User laufen. Würde der Updater trotzdem funktionieren oder muss ich vorher wieder auf FTP-User umstellen? Wenn ich das "system" im FTP User belasse, bekomme ich immer Fehlermeldungen ohne Ende

                        Da unser Skript rein PHP-basiert ist, müssen die Zugriffsrechte alle auf dem PHP-Nutzer liegen.
                        Das ist eine Grundvoraussetzung, damit das Skript funktioniert!
                        Allerdings gibt es auch eine Möglichkeit, dieses Problem mit den unterschiedlichen Usern komplett aus der Welt zu schaffen. Bei uns machen wir das seit jeher so, deswegen die verwundete Reaktion von Dennis, der dieses Problem aus der "Steinzeit" gar nicht mehr kennt.
                        Wenn du statt Apache-Modul FPM verwendest, um die PHP-Skripte aufrufen zu lassen, läuft ALLES über den "FTP-User". Das kann man inzwischen sogar direkt im KAS einstellen, unter (Sub)Domain > Bearbeiten (Schaltfläche rechts in der Zeile der betreffenden (Sub)Domain) > PHP Version > auswählen "X.Y (CGI/FPM)".
                        Dann einfach alle Rechte rekursiv auf den "FTP-User" übertragen, und nie wieder Kopfschmerzen mit Rechten. 😉

                        Auto-Updater (Co-)Developer, ctldap Developer
                        ChurchTools Version: 3.x latest (Auto-Updater)
                        Hosting: PHP 8.1 (via FPM, Apache 2.4 mit nginx Reverse Proxy)

                        1 Antwort Letzte Antwort Antworten Zitieren 1
                        • miluxM
                          milux @jmrauen
                          zuletzt editiert von

                          @jmrauen
                          Wir planen, das Skript unter MIT-Lizenz zu stellen, also sehr permissiv, sodass ihr es auch vermarkten könnt. 😉

                          AAABER: Wie genau würdest du dieses Skript denn einbauen wollen?
                          Der gruselige von Besuchern getriggerte Pseudo-Cronjob ist dafür i.m.h.o absolut nicht geeignet...

                          Auto-Updater (Co-)Developer, ctldap Developer
                          ChurchTools Version: 3.x latest (Auto-Updater)
                          Hosting: PHP 8.1 (via FPM, Apache 2.4 mit nginx Reverse Proxy)

                          1 Antwort Letzte Antwort Antworten Zitieren 2
                          • MichaelGM
                            MichaelG
                            zuletzt editiert von

                            Und er sollte auch auf manuell gestellt werden können, da wir viel über die API machen und beim Update auf 3.1 z.B. sich ein paar Sachen geändert hatten, die dann Teile unserer HP nicht mehr richtig funktionieren haben lassen.

                            Installation bei CT -> immer neueste Version

                            miluxM 1 Antwort Letzte Antwort Antworten Zitieren 0
                            • miluxM
                              milux @MichaelG
                              zuletzt editiert von

                              @MichaelG Bin ich offen gesagt dagegen, weil es gibt einfach Leute, die das einspielen von (v.a. sicherheitskritischen) Updates gerne bis zum Sankt-Nimmerleins-Tag verschleppen.
                              Vielleicht wäre es ein guter Mittelweg, dem Admin im Falle eines Updates eine Mail zu schicken, und nach einer Übergangszeit von z.B. einer Woche ohne Rückmeldung das Update automatisch einzuspielen.

                              Ich finde es auch generell sehr unsauber, dass ohne Rückwärtskompatibilität innerhalb einer Major-Version die API-Semantik geändert wird, sowas sollte nicht passieren! @jmrauen, damit meine ich euch. 😉

                              Auto-Updater (Co-)Developer, ctldap Developer
                              ChurchTools Version: 3.x latest (Auto-Updater)
                              Hosting: PHP 8.1 (via FPM, Apache 2.4 mit nginx Reverse Proxy)

                              1 Antwort Letzte Antwort Antworten Zitieren 0
                              • jmrauenJ
                                jmrauen ChurchToolsMitarbeiter
                                zuletzt editiert von

                                Habe nochmal darüber nachgedacht: Die Kontrolle sollte beim Kunden bleiben, wir würden nicht bei denen automatisch ohne dass sie es wünschen Updates einspielen.
                                Da Ihr es so gut gelöst habt, würde ich dann von festen Integration in ChurchTools absehen. Wer es haben möchte, kann sich das dann ja einfach selbst einrichten.

                                MichaelGM 1 Antwort Letzte Antwort Antworten Zitieren 0
                                • MichaelGM
                                  MichaelG @jmrauen
                                  zuletzt editiert von

                                  @jmrauen Also mit einer Funktion das selbst zu Triggern fände ich das schon gut. Wie z.B. bei Wordpress. Da klick ich einmal auf und muss nicht mit FTP Client und Drag and Drop arbeiten

                                  Installation bei CT -> immer neueste Version

                                  1 Antwort Letzte Antwort Antworten Zitieren 3
                                  • dennis-eisenD
                                    dennis-eisen
                                    zuletzt editiert von

                                    Wir haben eine neue Version unseres Auto Updaters veröffentlicht:
                                    https://github.com/dennis-eisen/CT_AutoUpdater

                                    Diese erkennt jetzt auch inkonsequente Versionnummern (z.B. 3.11b).
                                    Außerdem erkennen wir die Notwendigkeit eines Updates nicht mehr an der hinterlegten Versionsnummer in constants.php sondern am Filedate der constants.php. Somit sind wir nicht mehr auf eine konsequente Anpassung der Versionsnummer von Seitens der ChurchTools Entwickler angewiesen.

                                    @jmrauen Warum ist das aktuelle Update - 3.11b - nicht in der constants.php zu finden. Laut dieser ist immer noch die Version 3.11 installiert?

                                    ChurchTools Version: 3.x latest (Auto-Updater)
                                    Hosting: All-Inkl (self-hosted)

                                    1 Antwort Letzte Antwort Antworten Zitieren 0
                                    • jmrauenJ
                                      jmrauen ChurchToolsMitarbeiter
                                      zuletzt editiert von

                                      Guter Hinweis, werden wir nächstes Mal berücksichtigen. Bisher gab es kein Auto-Updater:)

                                      1 Antwort Letzte Antwort Antworten Zitieren 0
                                      • T
                                        tomzi
                                        zuletzt editiert von

                                        Hi,

                                        Ich finde dieses Tool wirklich klasse, ich wollte nur fragen, ob ihr es noch ein bischen erweitern könntet:

                                        -> automatischen DB Dump von churchtools anlegen (@jmrauen gibt es da eine API in CT wie man den dump über dieses php skript anstossen könnte? Den dump braucht man, falls was beim update schief läuft.
                                        -> alle heruntergeladenen zip + dumpfiles sollen archiviert werden am server.

                                        manualUpdate.php
                                        updateNotifier.php
                                        -> es wäre auch cool zusätzlich zwei andere Tools für nicht so abenteuer freundliche autoupdate zu haben, wo man nur notifieziert wird als CT Admin (nicht das email dass an die bei CT registrierte person geht), falls ein update verfügbar ist. Dann rufe ich die url zu manaulUpdate.php auf, dort finde ich infos wie,

                                        • welches update is verfügbar
                                        • link zu den release notes
                                        • 'Perform update' button -> dann wie gehabt das autoupdate ausführen

                                        restorePreviousRelease.php

                                        • Über diesen link, könnte man ein beliebige vorher gespeicherte Version (CT_Version + dump) wieder herstellen.

                                        Was denkt ihr?

                                        dennis-eisenD 1 Antwort Letzte Antwort Antworten Zitieren 1
                                        • dennis-eisenD
                                          dennis-eisen @tomzi
                                          zuletzt editiert von

                                          @tomzi Deinen Vorschlag zu den DB-Dumps finde ich gut. Diesen werde ich auch im eigenen Interesse zeitnah einpflegen (sollte keine große Schwierigkeit darstellen).

                                          Deinen zweiten Vorschlag zu den manuellen Updates finde ich an sich auch gut, leider fehlt mir für diese Umsetzung die Motivation. Von unserer Seite aus benötigen wir diese Funktionalität nicht und daher werde ich dies wohl auch nicht umsetzen.

                                          ChurchTools Version: 3.x latest (Auto-Updater)
                                          Hosting: All-Inkl (self-hosted)

                                          1 Antwort Letzte Antwort Antworten Zitieren 0
                                          • M
                                            merhard
                                            zuletzt editiert von

                                            Kann es sein, dass der Auto Updater nicht mehr funktioniert?
                                            Ich hab auch einen Fehler, an dem es vermutlich liegt. es gibt garkeine ".zip" Datei mehr in dem Verzeichnis aus dem er das update laden will. Das ist jetzt eine .tar.gz

                                            1 Antwort Letzte Antwort Antworten Zitieren 0
                                            • Erster Beitrag
                                              Letzter Beitrag