WebApp mit Ionos

Hallo zusammen!

Hat jemand Erfahrung oder es sogar geschafft, die Xojo Test WebApp mit ionos.de zu starten? Ich habe momentan den Tarif WebHosting Essential bei ionos.de und da steht eigentlich dabei, dass WebApps funktionieren würden.

Ich habe die Xojo Test WebApp (binär) hochgeladen, mich über SSH mit dem Server verbunden, aber wenn ich den Befehl ./XojoTest eingebe, bekomme ich diese Fehlermeldung:

-bash: Keine Berechtigung.

Ich habe mich an diese Schritte gehalten: http://documentation.xojo.com/topics/application_deployment/web/deploying_web_apps_on_linux.html
Allerdings weiß ich nicht was Schritt 5 “Verify execute flag” bedeutet.

Vielleicht hatte das Problem ja schon mal jemand hier. Danke auf jeden Fall!

Execute Flag heisst, dass das Programm genug Rechte haben muss, dass es ausführbar ist … ich glaube nicht, dass ionos das zulässt. Mit Apps meinen die sicher PHP Zeugs oder python usw. also irgendetwas das sie “überwachen” also “sandboxen” können. Zudem startet die Xojo App, wenn Du über Web 2.0 sprichst einen eigenen WebServer … alleine das dürfte denen nicht schmecken. Am besten einen kleinen Server bei digitalocean.com oder upcloud.com aufmachen usw.

Web Hosting ist eher was für Web Seiten mit php, aber auch asp .net.
die Datenbanken sind von ionos verwaltet aber man kann die online editieren.

um eine echte exe auszuführen braucht man einen virtuellen privaten Server (vps), (oder einen echten ist aber einiges teurer…)
da kann man sich dann per rdp verbinden und sich austoben als wäre es sein eigener PC.


kostet so 10 € für Windows, 5€ für Linux im Monat. extra positionen wie backups erstellen gehen dann ins Geld oder HttpS Zertifikate, Domain Namen etc.
Für das HttpS Zertifikat muß man einen Mail Service Account haben mit dieser Domain!
Linux mit 512 MB Ram funktioniert nicht auch wenn die mit 1€ locken …

Eine Xojo stand alone Web App ist quasi das Projekt was man erstellt hat mit eingebauten Web Server (Software) der dann
einen Port auf macht wo man sich per Internet verbinden kann.
1und1 hat vieles nach ionos verlagert. VPS bei Strato hatte ich auch.
Windows Server 2019 fand ich gut, dort konnte man sehr einfach die WebApp als Dienst registrieren
und als Windows 10 Benutzer klappt remote dektop ganz gut.

Für eigene spielereien ist es besser einen Raspberry Pi 4 oder Mac mini zu Hause zu nutzen bzw.
was Strom sparendes.

Klasse, danke für alle Antworten! Mit upcloud.com kann ich die Test-App hochladen, aber wenn ich sie ausführen will, kommt die Fehlermeldung

/XojoTest: error while loading shared libraries: libunwind.so.8: cannot open shared object file: No such file or directory

Ist das ein Problem des Servers bzw. der Server-Einstellungen oder eher ein Problem der Test-App, die von Xojo bereitgestellt wurde?

OK, das Problem mit der Fehlermeldung konnte ich lösen. Es kommt jetzt die Meldung

Application is ready

Das interpretiere ich mal so, als ob jetzt alles läuft. Nun die wichtigste Frage: wie kann ich die WebApp jetzt im Browser aufrufen? Ich habe die IP Adresse eingegeben, gefolgt on “:” und der Port-Nummer. Geht aber leider nicht. :grimacing:

muß man dort den Port evtl nach außen frei geben? Firewall?
Kann man dort sehen das der Task läuft?

Ich nutze selber upcloud. Also Du hast ja Deine App mit irgendeinem Port kompiliert. Nehmen wir mal an, es ist Port 9001, dann kannst Du die App öffnen mit deinedomaen.de:9001. Also dann wenn sie gestartet ist. Ich bin übrigens dabei ein Tutorial zu schreiben, dauert aber noch ein wenig ;-).

Da das natürlich auf die Dauer etwas unschön ist. Einfach einen nginx installieren. Dann Deine Seite so konfigurieren (ist dann quasi ein Reverse Proxy):

   root /var/www/html/pfadZuDeinerApp;

        server_name deinedomaene.de www.deinedomaene.de;

         location / {
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $http_host;
                proxy_pass http://127.0.0.1:9001;
         }

Der Nginx nimmt also Deine Domäne (oder IP) entgegen und leitet sie an die Xojo App an den richtigen weiter. Selbst wenn deine Firewall also diesen Port sperren würde, wäre es irrelevant, da nur ein internes Weiterleiten.

Es ist die Xojo Test App, die man https://documentation.xojo.com/topics/application_deployment/web/deployment_overview.html downloaden kann. Ich nehme mal an, dass die mit Port 8080 kompiliert ist, weiß es aber nicht genau. In den Firewall-Settings ist der Port nur für Outgoing Traffic, nicht aber für Incoming, freigeschaltet. Könnte das das Problem sein? Und kann ich der Test-App einen anderen Port zuweisen, zum Beispiel mit ./XojoTest --port=9191 oder kommt es da nur darauf an mit welchem Port sie kompiliert wurde?

Tut mir leid für all die Fragen, aber ich versuche gerade herauszufinden ob es sich lohnen würde, eine Web-Lizenz zu kaufen. Und das will ich halt nicht, bis ich weiß ob ich das alles hinkriege.

1 Like

Keine Ursache, ich glaube das ist die Natur eines Forums ;-). Du, ich weiß gar nicht ob man ohne “richtige” Lizenz überhaupt für einen Server kompilieren kann? Würde ich mal nicht vermuten … Aber die App sagt ja dass Sie läuft, wenn Du Sie startest … hmm… da bin ich überfragt, vielleicht blockieren sie nur die Ausführung des Webservers ohne Lizenz …

Du kannst unter “Shared” den Port vor dem Kompilieren festlegen.

Meine Erfahrung: man kann schon sehr viel mit Xojo Web machen. Geht es pixelgenau usw? Nein. Mit reinem PHP oder Python, JS, CSS kannst Du natürlich den letzten Pixel selber bestimmen, aber dafür musst Du halt auch mit Frameworks, immer noch sehr, sehr viel selber machen. Kurzum: mit Xojo Web muss man (wie auch auf jeder anderen Plattform mit Xojo) ein paar Kompromisse eingehen, aber grundsätzlich ist das Produkt auf einem guten Weg.

Ansonsten: upcloud sperrt out-of-the-box keine Ports, es sei denn Du hast eine Firewall installiert, dann müsstest Du deren Status kontrollieren, zb, via sudo ufw status. Wenn denn ufw die installierte FW ist :wink: .

Das geht nicht, aber Xojo bietet eine kompilierte Test App an, mit der man testen kann ob es mit den Server-Einstellungen funktioniert. Das ist die, die ich oben verlinkt habe. Allerdings weiß ich nicht mit welchen Ports diese kompiliert wurde, das steht nicht dabei.

Mit der Testversion von Xojo Web habe ich mich ein bisschen beschäftigt, das Programmieren ist nicht das Problem. Eher ob ich es hinkriege, das ordentlich zu hosten. Scheinbar nicht :smirk:

Ja, unter “Firewall” steht bei upcloud nichts, alle Verbindungen werden akzeptiert. Und aktiv habe ich keine Firewall installiert auf dem Server.

1 Like

doch, doch, das geht. das mit der Test App habe ich vergessen, ich schaue mal.

Keine Lust mir da einen Wolf zu suchen ;-). Ich habe Dir mal eine App gebastelt:

Die hört auf dem Port 9001. Viel Erfolg!

Danke! Klappt leider auch nicht. Auch hier kommt die Meldung “Application is ready” wenn ich sie starte, aber wenn ich versuche im Browser die IP und den Port einzugeben, funktioniert es nicht.

Das ist schon mal sehr gut, dass die App läuft, damit bist Du nämlich aus Xojo Sicht fertig. Warum die Verbindung nicht klappt kann jetzt viel Ursachen haben. z.B. wer der Besitzer der Dateien ist, Du kannst mal ein

chown -R deinuser:deinuser -R /var/www/html/deinOrdner/

versuchen. Ich vermute aber mal eher, dass Du gar keinen Web Server installiert hast. Und der Server selber nicht erlaubt, dass die IP an den Xojo Server gehen soll usw. 2 Möglichkeiten: Du wartest auf meine Dokumentation, solle bis Montag fertig sein, wahrscheinlich früher.

Oder aber Du schickst mir eine PM mit Deinen Zugangsdaten (unter der Annahme, dass das eine frische Testinstanz ist, ohne sensible Daten). Auf Produktivsysteme gehe ich nur mit Beauftragung und nicht auf Kulanz :wink: . Das bekommen wir jedenfalls schon hin. Spoiler: ich habe das so automatisiert, dass ich nur in der IDE auf für Linux kompilieren klicke und der Rest geht automatisch und sogar schneller, mit der kleinsten UpCLoud Instanz, als wenn ich für Xojo Cloud kompiliere.

Die Xojo Test App läuft läuft standardmäßig auf Port 8080. Du kannst aber auch den Port selber festlegen. Mit ./XojoTest --port=80 sollte es dann ausreichen wenn du im Browser die IP/Domain des Webservers eingibst.

UpCloud kenne ich zwar nicht, aber wenn unter Firewall nichts drin steht, heißt das i.d.R bei einer Firewall das erstmal alles blockiert wird. Erst durch erstellen von Firewallregeln, können dann die Ports freigegeben werden.

Ich benutzte für meine Tests das kostenlose Paket von Kamp. Reicht evtl. auch für deine Zwecke. Hier musst du aber auf jeden Fall in der Firewall die Ports freigeben.

@Christoph_Emrich
Anbei die versprochene Anleitung. Hat ein Mitstreiter in den USA getestet und bei ihm klappte es, habe extra die “abenteuerliche” Test App benutzt (gutes Marketing geht anders :slight_smile: ). Viel Erfolg!

1 Like

Hammer! Es klappt wunderbar, vielen vielen Dank! Hätte nicht gedacht, dass das so kompliziert ist…

https://youtu.be/jNAxOZkWZwc (NSFW)

1 Like

Woonderboooor! :slight_smile: . Freut mich! Ja, als ich mit dem Artikel anfing, hatte ich das auch einfacher in Erinnerung :wink: - im Prinzip ist es aber wirklich einfach, wenn man es ein paar Mal gemacht hat. Und zu Deiner eigentlichen Frage, bzgl. der Wartbarkeit und ob Du das selber warten kannst: Also für den Hobby-Bereich reicht das so, und man muss eigentlich gar nichts machen. (ab und zu ein apt update und upgrade, damit die Sicherheitspatches drin sind und gut ist).

Was noch wichtig ist (das nur vorab), irgendwann mache ich da auch einen Artikel: wenn Du Deine App updated via SFTP, musst Du natürlich den Service vorher erst einmal stoppen, dann uploaden und dann wieder starten. Aber das habe ich auch “automatisiert”. Gibt da bald noch einen Artikel dazu … die Daten werden zwar kopiert, aber die App läuft ansonsten im Speicher noch in der alten Version.

Wenn man aber sensible Kundendaten in der App pflegt, dann müsste man sich noch etwas tiefer reinknien und noch etwas mehr Sicherheit einbauen. Z.B. den remote Access auf die eigene IP beschränken, und/oder VPN usw. Da rate ich dann aber wirklich zu Xojo Cloud. Aber die ist für den Privatbereich und kleine Projekte zu teuer, vor allem solange die Herrschaften es nicht hinbekommen, dass sie mehrere Zertifikate für mehrere unterschiedliche Domänen anbieten können

Auch, wenn es recht teuer, es bewährt sich bei Upcloud ein Backup zu buchen, dann bist Du notfalls Ruckzuck auf dem alten Stand. Das ist noch so eine Sache die bei der Xojo Cloud leider fehlt, die machen zwar Backups, aber du kannst nicht einfach Snapshots erstellen… also da bietet upload für schmale 5 USD im Monat schon vergleichsweise recht viel. Dann viel Spaß und Erfolg mit Xojo Web!

@Christoph_Emrich
Hatte noch etwas vergessen, nur damit auch nach 89 Tagen noch alles “wonderbor” bleibt ;-).

1 Like