• Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Church Tools - Auto Updater

    Tipps & Tricks
    16
    45
    10.6k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • dennis-eisenD
      dennis-eisen
      last edited by 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 Reply Last reply Reply Quote 5
      • ?
        A Former User @dennis-eisen
        last edited by

        This post is deleted!
        1 Reply Last reply Reply Quote 0
        • dennis-eisenD
          dennis-eisen
          last edited by 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 Reply Last reply Reply Quote 0
          • ?
            A Former User @dennis-eisen
            last edited by

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

            dennis-eisenD 1 Reply Last reply Reply Quote 1
            • dennis-eisenD
              dennis-eisen @A Former User
              last edited by

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

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

              1 Reply Last reply Reply Quote 0
              • D
                daniel_
                last edited by

                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 Replies Last reply Reply Quote 0
                • M
                  merhard
                  last edited by

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

                  1 Reply Last reply Reply Quote 4
                  • dennis-eisenD
                    dennis-eisen @daniel_
                    last edited by 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 Reply Last reply Reply Quote 0
                    • jmrauenJ
                      jmrauen ChurchToolsMitarbeiter
                      last edited by

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

                      miluxM 1 Reply Last reply Reply Quote 0
                      • miluxM
                        milux @daniel_
                        last edited by 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 Reply Last reply Reply Quote 1
                        • miluxM
                          milux @jmrauen
                          last edited by

                          @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 Reply Last reply Reply Quote 2
                          • MichaelGM
                            MichaelG
                            last edited by

                            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 Reply Last reply Reply Quote 0
                            • miluxM
                              milux @MichaelG
                              last edited by

                              @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 Reply Last reply Reply Quote 0
                              • jmrauenJ
                                jmrauen ChurchToolsMitarbeiter
                                last edited by

                                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 Reply Last reply Reply Quote 0
                                • MichaelGM
                                  MichaelG @jmrauen
                                  last edited by

                                  @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 Reply Last reply Reply Quote 3
                                  • dennis-eisenD
                                    dennis-eisen
                                    last edited by

                                    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 Reply Last reply Reply Quote 0
                                    • jmrauenJ
                                      jmrauen ChurchToolsMitarbeiter
                                      last edited by

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

                                      1 Reply Last reply Reply Quote 0
                                      • T
                                        tomzi
                                        last edited by

                                        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 Reply Last reply Reply Quote 1
                                        • dennis-eisenD
                                          dennis-eisen @tomzi
                                          last edited by

                                          @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 Reply Last reply Reply Quote 0
                                          • M
                                            merhard
                                            last edited by

                                            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 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post