Node.js (nodejs), Froxlor, Domains und Kunden, kann das funktionieren?

  • Hallo zusammen,


    da ich zu dem Thema keine passenden Antworten gefunden habe, entschloss ich mich dazu, mich hier zu registrieren und einmal selbst nachzufragen.


    Ich benutze Froxlor sehr gerne um damit Kunden, Domains, FTP und Datenbanken zu verwalten. Übersichtlich und einfach sowohl für mich als auch die Kunden selbst. Jetzt möchte ich aber gerne bei einem Projekt mit Node.js arbeiten. Wie das ganze installiert wird, lässt sich ja recht schnell (und einfach) herausfinden. Jetzt frage ich mich allerdings, wie es dann weiter geht. Wie kann ich definieren, dass ein Kunde oder ein Verzeichnis diesen Node-Server hat? Die Daten müssen ja auch via FTP hochgeladen werden.. Wie kann ich eine Domain auf genau den richtigen Port zeigen lassen, dass das ganze auch via http erreichbar ist? Beeinflusst das die anderen PHP-Projekte irgendwie?


    Geht das denn überhaupt?


    Oder kann ich dann Froxlor komplett vergessen und muss alles in einer Kommandozeile administrieren?


    Falls jemand damit (speziell in dieser Kombination) Erfahrung gesammelt hat wäre ich über ein paar Infos sehr dankbar.


    Hilft hoffentlich auch Anderen, die gerne den Einstieg in Node-Js wagen möchten, sich aber nicht trauen.



    Grüße,


    Christian

  • Hi,


    einen Node.js-Server kannst Du mit Froxlor so nicht verwalten. Zum starten/stoppen des Node-Prozesses bräuchtest Du am besten ein entsprechendes Webinterface, wobei mir da leider keines bekannt ist (auf die Schnelle nur GitHub - FGRibreau/forever-webui: A simple web UI for efficient NodeJS processes administration gefunden, weiß aber nicht ob man mehrere Benutzer/Berechtigungen verwalten kann).
    Wenn Du in Froxlor dafür sorgst, dass der Kundenordner nicht über den Webserver erreicht werden kann könntest Du aber zumindest den Node-Ordner in das Kundenverzeichnis legen, dann hat dieser schonmal FTP-Zugriff. Soweit ich das in Erinnerung habe kann man in Froxlor eigene VHost-Einstellungen pro Domain hinterlegen, dann könntest Du mittels mod_proxy die Domain auf den entsprechende Port weiterleiten. Das beeinflusst dann auch keine anderen Kunden.


    Vielleicht hilft Dir das ja schon einmal weiter.

  • Wie kann ich definieren, dass ein Kunde oder ein Verzeichnis diesen Node-Server hat? Die Daten müssen ja auch via FTP hochgeladen werden.. Wie kann ich eine Domain auf genau den richtigen Port zeigen lassen, dass das ganze auch via http erreichbar ist?



    Das Starten und Stoppen der Scripte ist mit Froxlor selber nicht möglich, man kann aber den Kunden SSH zugriff gewähren in dem man in der Tabelle FTP Users in das Feld shell eine Shell angibt. damit die Scripte auch weiterlaufen wenn die Konsole zu ist müsste außerdem noch Screen installiert sein. Die Installation über NPM funktioniert damit auch solange es nur lokal ist ansonsten sind Root Rechte nötig.


    Die Dateien können im Kunden Verzeichnis sein und für den Port muss in Froxlor für jede Domain ein Vhost eintrag gemacht werden.

  • Hallo ihr beiden,


    vielen Dank für eure Antworten, das sind doch mal richtig gute Ansätze, in der Theorie :)


    Ich werde nun mal die Praxis testen, bin sehr gespannt.



    Grüße,


    Christian


  • [...] man kann aber den Kunden SSH zugriff gewähren in dem man in der Tabelle FTP Users in das Feld shell eine Shell angibt. [...]


    Ich habe zwar den entsprechenden Eintrag in der Tabelle gefunden ("bin/false"), aber mich zu doof angestellt, das zu richten. Habe nun also doch unter root das ganze node und seine Abhängigkeiten installiert.



    Die Dateien können im Kunden Verzeichnis sein und für den Port muss in Froxlor für jede Domain ein Vhost eintrag gemacht werden.


    Das mit den Dateien funktioniert, bei den Vhost-Einträgen habe ich mir schwer getan. Das von Ringelnatz angesprochene mod_proxy habe ich installiert, glaube aber es wurde über die apache config nicht richtig angezogen. Da muss ich mir nochmal mehr Zeit für nehmen. Für die Entwicklung reicht vorerst auch die Domain mit Port dahinter.


    Ich kann nun natürlich mit all meinen Domains auf diesem Server über den Port auf das Projekt zugreifen, das sollte vielleicht nicht so sein.


    Danke vor allem auch für den Hinweis auf "Screen", das wird dann wohl noch wichtig werden.


    Also, es läuft nicht ganz so, wie ich es mir vorgestellt habe, aber es läuft. Und ich denke auch, wenn ich das noch ein paar Mal mache, dann wird es auch einfacher für mich.


    Danke nochmal.

  • Ich habe zwar den entsprechenden Eintrag in der Tabelle gefunden ("bin/false"), aber mich zu doof angestellt, das zu richten. Habe nun also doch unter root das ganze node und seine Abhängigkeiten installiert.


    Statt /bin/false z.b /bin/bash eintragen hier ist auch ein Eintrag dazu aus dem Froxlor Forum ssh-Nutzung mit den virtuellen Usern - German / Deutsch - Froxlor Forum. Das ist auch wichtig das es geht weil das NodeJS Script mit den Rechten läuft mit dem es gestartet worden ist



    Das mit den Dateien funktioniert, bei den Vhost-Einträgen habe ich mir schwer getan. Das von Ringelnatz angesprochene mod_proxy habe ich installiert, glaube aber es wurde über die apache config nicht richtig angezogen. Da muss ich mir nochmal mehr Zeit für nehmen. Für die Entwicklung reicht vorerst auch die Domain mit Port dahinter.


    Kann dir dabei leider nicht viel helfen weil ich nur Froxlor mit Nginx und NodeJS verwendet hatte, evtl nicht aktivert (a2enmod -l gibt alle aktive module von Apache aus).


    Danke vor allem auch für den Hinweis auf "Screen", das wird dann wohl noch wichtig werden.



    Screen – netcup Wiki

  • Ich kann nun natürlich mit all meinen Domains auf diesem Server über den Port auf das Projekt zugreifen, das sollte vielleicht nicht so sein.

    Das wird grundsätzlich immer gehen, nachdem die Lösung mit mod_proxy funktioniert kannst Du aber natürlich den Port nach außen per Firewall dicht machen.

    Das von Ringelnatz angesprochene mod_proxy habe ich installiert, glaube aber es wurde über die apache config nicht richtig angezogen.

    Wo genau liegt das Problem?