Posts by Tobias

    Ich habe gerade versucht 1.10 auf einem Webspace zu installieren mit Apache, php 8.1 und MySQL 8.0.35


    Beim Versuch die Tabellen anzulegen bekomme ich ein MySQL Privileg Problem.

    Das scheint lediglich an "SET innodb_strict_mode = OFF;" zu liegen. Wird das wirklich benötigt?


    Code
    Fatal error: Uncaught mysqli_sql_exception: Access denied; you need (at least one of) the SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s) for this operation


    Weiter unten in der struktur.sql haben einige Spalten vom Typ Text einen Defaultwert.
    Würde es Sinn machen die Spalten mit VCHAR(255) zu definieren?

    Code
    `dhlendung` text NOT NULL DEFAULT '.csv',

    Von uninvention höre ich zum ersten mal :)

    Wenn ich es richtig verstehe ist das lediglich ein Katalog mit fertigen VM Images die man dann auf KVM, VMWare, VirtualBox, AWS EC2 etc. deployen kann.
    Um schnell eine OpenXE Instanz zu deployen gibt es bereits mehrere Möglichkeiten:

    Für eine leere VM mit Ubuntu 22.04 bei Netcup, Hetzner Cloud, AWS etc. kannst du folgenden Einzeiler verwenden:


    Code: cloud init
    bash -c "$(wget -qLO - https://gitlab.com/-/snippets/3625248/raw/main/openxe-init.sh)"

    Hallo Moritz,


    in deiner Situation würde ich es testweise auf einer gemieteten VM testen, Aktuell gibt es bei Netcup ein Angebot für 2€ mit 60GB SSD : https://www.netcup.de/bestelle…korb_add.php?produkt=3423


    HaProxy, Nginx oder direkt auf dem Apache SSL Offloading Let´s Encrypt

    und dann dem offiziellen Installationsleitfaden folgen: https://github.com/OpenXE-org/OpenXE/blob/master/INSTALL.md

    Oder falls du Erfahrung mit Container hast kannst du auch das Image aus dem Thread verwenden: docker compose / kubernetes Installation

    Falls die Installation nicht public verfügbar sein soll kannst du mit den Zugriff einschränken und z.B. mit OpenVPN den Usern oder dem Firmennetzwerk verfügbar machen.

    Könnten eigentlich mal ein Cloud-Init Script erstellen für so eine Basis Installation :)

    Gibt es im Frontend die Möglichkeit Artikel z.B. mit einem CSV in die Stammdaten zu importieren?


    In der API sehe ich keine Möglichkeit neue Artikel anzulegen
    /api/docs.html#v1_artikel

    Übersehe ich etwas? :)

    Gibt es Schnittstelle für Open Masterdata und IDS 2.5?


    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    Alternativ kannst es als Container laufen lassen. Dann hast du alles normalisiert und Applikation und Laufzeitumgebung paketiert. Ich habe es in ein Docker Image gepackt in dem auch die Dokumentation exkludiert wurde.
    Wenn du das Update mit dem Zieluser ausführst solltest du die Berechtigungen nicht jedes mal neu setzen müssen.

    Wie machst du das Backup? Ich nutze Borg. Durch die Deduplizierung spielt die Größe dann keine Rolle mehr.

    Gibt es in OpenXE ein die Möglichkeit Datanorm anzubinden oder ist ein Modul dafür geplant? Bei Xentral gab es scheinbar mal ein Modul welches 2022 eingestellt wurde.

    Funktioniert noch nicht ganz.

    In $version_string steht z.B. "10.11.2-MariaDB-1:10.11.2+maria~ubu2204"


    substr($version_string,0,3); schneidet dann die ersten 3 Zeichen ab und es entsteht "10."

    $version_string = str_replace('.','',$version_string); entfernt dann noch den Punkt und es bleibt nur noch "10"

    Die erste Test Migration von 20.1 auf 1.9 hat ebenfalls funktioniert.
    Hatte bei MariaDB die Meldung "Row size too large".
    Konnte für das erste mit innodb_strict_mode umgangen werden. Die Tabelle muss ggf. konvertiert werden.

    Code
    SET innodb_strict_mode = 0;

    Ich habe in der dev Umgebung MariaDB 10.11.2


    OpenXE/systemhealth.php at d9ff872a983e684e4db658fc8bfe29790724533f · OpenXE-org/OpenXE
    OpenXE - Free Open Source ERP based on Xentral. Contribute to OpenXE-org/OpenXE development by creating an account on GitHub.
    github.com


    Code
    $mysqlVersion = $mysqlVersion[0] . '.' . $mysqlVersion[1];

    Kann es sein, dass die Zeile ein false positive erzeugt bei 10.11.2?



    DB-Version:[Blocked Image: https://openxe-dev.amperios-vp…ges/health-message@2x.png]MariaDB 10.1!
    DB-Version ab 20.2:[Blocked Image: https://openxe-dev.amperios-vp…ges/health-message@2x.png]Ab Xentral 20.2 benötigen Sie mind. MySQL 5.7 / MariaDb 10.2 (aktuell MariaDB 10.1). !

    Ich habe es ausprobiert. Funktioniert

    Schneller und kleiner ist ein Mythos :)


    [+] Building 112.4s (24/24) FINISHED alpine

    [+] Building 53.6s (6/6) FINISHED bios

    Code: docker images
    REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
    openxe        latest    3a2fbb4eb5f8   25 minutes ago   2.73GB
    bios/openxe   V.1.7     ff19c97955eb   2 months ago     756MB

    Cron würde ich als Sidecar oder von extern triggern. Mehrere Daemons in einem Container widerspricht dem Konzept von Docker. Das trifft auch auch den supervisord zu. Für was einen weiteren Prozess der keine Funktion hat außer den eigentlichen Prozess zu wrappen?


    SSL Proxy ist kein Problem. Getestet mit HaProxy und Kubernetes Nginx Ingress.
    Den einzigen Bug den ich bisher gesehen habe ist, dass beim Logout ein 302 Redirect passiert der zwar noch auf https geht aber plötzlich port 80 in der URL hat -> location: https://devhost:80/www/index.php

    Vailder Punkt :) Bin nicht mehr dazu gekommen den Merge Request zu erstellen.
    Ich hatte es aufgeteilt in ein base image und in eins mit der eigentlichen app.

    Hier zur Vollständigkeit:


    Code: base image
    ARG PHP_VERSION
    FROM php:${PHP_VERSION}-apache
    
    RUN apt update &&  apt-get install -y unzip wget zlib1g-dev libzip-dev libc-client2007e-dev libc-client-dev libkrb5-dev libxml2-dev libpng-dev libldap-dev && rm -r /var/lib/apt/lists/*
    RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && docker-php-ext-install zip mysqli imap soap gd ldap intl
    
    RUN curl -fsSL "https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz" -o ioncube.tar.gz && \    tar -xvvzf ioncube.tar.gz && \    mv ioncube/ioncube_loader_lin_8.1.so `php-config --extension-dir` && \    rm -Rf ioncube.tar.gz ioncube && \    docker-php-ext-enable ioncube_loader_lin_8.1.so
    
    RUN printf 'ServerTokens Prod\nServerSignature Off\nTraceEnable Off\n' > /etc/apache2/conf-enabled/security.conf && \    printf 'expose_php = off' > /usr/local/etc/php/conf.d/secure.ini
    Docker: app
    FROM bios/openxe-base
    
    ARG TAG
    
    RUN cd /var/www && \    curl -L -o /var/www/openxe.zip https://github.com/OpenXE-org/OpenXE/archive/refs/tags/${TAG}.zip && \    unzip openxe.zip -x "OpenXE-*/userdata/wiki/XentralHandbuch/*" && \    rm -f openxe.zip && \    rm -rf /var/www/html && \    mv OpenXE-* html && \    chown -R www-data:www-data html
    
    RUN curl -s https://raw.githubusercontent.com/OpenXE-org/OpenXE/ce11caac120a515d9c792839a690f353762b1643/www/setup/setup.php > www/setup/setup.php

    Pack die Alpine Version mal mit rein oder stelle gleich einen Merge Request dann haben wir eine einheitliche Basis

    Das Dockerfile liegt hier: https://github.com/tsgoff/docker-openxe/blob/main/Dockerfile

    Also Basis verwende ich ein zweites Dockerfile bios/openxe-base mit php:8.1-apache in dem die Dependencies installiert werden damit der Build für OpenXE nicht so lange dauert.

    Mir fehlt noch eine Lösung wie man am besten mit dem Config Ordner umgeht. Wenn man ihn direkt mountet ist der bei einer Installation leer und das Template fehlt. Da müsste man noch ein entrypoint script mit der Logik hinterlegen für neue bzw. bestehende Installationen. Wenn ich Zeit habe und mir was passendes einfällt erstelle ich einen PR.