Skip to content

NodeBB - Automatisch starten

NodeBB
  • Im Beitrag https://frank-mankel.org/topic/3/node-js-auf-dem-raspberry3-b-installieren habe ich berichtet, wie man node.js installiert. Darin liegt die ausführbare Datei node in /opt/node/bin. Das behalten wir jetzt erst mal so im Hinterkopf.

    Unter Debian arbeitet man mit systemd, ein System und Service Manager. Dieser Dienst sorgt dafür, das Dienste automatisch, z.B. beim Neustart des Servers gestartet werden. Dazu findet man im Ordner /etc/systemd/system eine ganze Reihe von Diensten. z.B.: sshd.service

    Gut, hier geht es aber um NodeBB. Von NodeBB gibt es eine Anleitung zum Thema, die findet man hier. Aber, wir verfeinern das Ganze hier noch ein wenig 😉

    nodebb.service

    [Unit]
    Description=NodeBB
    Documentation=https://docs.nodebb.org
    After=system.slice multi-user.target mongod.service
    
    [Service]
    Type=forking
    User=user
    
    StandardOutput=syslog
    StandardError=syslog
    SyslogIdentifier=nodebb
    
    WorkingDirectory=/home/user/nodebb
    PIDFile=/home/user/nodebb/pidfile
    ExecStart=/usr/bin/env node loader.js
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

    Den User ersetzt ihr mit dem Namen Euren User's der NodeBB startet. Die NodeBB Installation liegt unter folgendem Pfad

    /home/user/nodebb/
    

    Den Dienst aktivieren

    sudo systemctl enable nodebb.service
    

    und starten

    sudo systemctl start nodebb.service
    

    Nun sollte der Dienst normalerweise beim Booten NodeBB starten, macht er aber bei mir um's verrecken nicht. Also Logfiles durchsuchen.

    Das sieht dort so aus

    May  3 21:15:07 one systemd[1]: Starting NodeBB...
    May  3 21:15:07 one nodebb[1366]: /usr/bin/env: ‘node’: No such file or directory
    May  3 21:15:07 one systemd[1]: nodebb.service: Control process exited, code=exited status=127
    May  3 21:15:07 one systemd[1]: Failed to start NodeBB.
    May  3 21:15:07 one systemd[1]: nodebb.service: Unit entered failed state.
    May  3 21:15:07 one systemd[1]: nodebb.service: Failed with result 'exit-code'.
    May  3 21:15:07 one systemd[1]: nodebb.service: Service hold-off time over, scheduling restart.
    May  3 21:15:07 one systemd[1]: Stopped NodeBB.
    

    Und nun kommen wir wieder auf den Anfang des Beitrages zu sprechen. Node ist die Anwendung node.js, die die Applikation NodeBB startet.

    Aus nodebb.service

    /usr/bin/env node loader.js
    

    node.js lädt die Datei loader.js, die im NodeBB Ordner liegt. So weit alles gut, aber bei unserer Installation, siehe den verlinkten Beitrag am Anfang, liegt die ausführbare Datei node in /opt/node/bin

    Ok, nun kann ich mir das Problem erklären, der User Root hat keinen Zugriff auf die Datei node. Und jetzt das Rätsel für mich, mein User für NodeBB hat Zugriff, mein User Root nicht. Stundenlang alles probiert. .profile editiert usw. Nichts brachte Erfolg. Ok, dann halt dirty 😞

    Ich habe dann die Datei nach /bin kopiert.

    cp /opt/node/bin/node /bin
    

    Danach hatte der User Root Zugriff auf die Datei und der nodebb.service funktioniert einwandfrei.

    Wer den Fehler kennt und eine Lösung für mich hat, immer her damit.

  • NodeBB - v3.7.0

    NodeBB
    1
    0 Stimmen
    1 Beiträge
    47 Aufrufe
    Niemand hat geantwortet
  • Nextcloud - Update auf 28.0.2

    Nextcloud
    2
    0 Stimmen
    2 Beiträge
    116 Aufrufe
    FrankMF

    Für den, der sich alle Änderungen ansehen möchten -> https://github.com/nextcloud/server/releases

  • 0 Stimmen
    1 Beiträge
    117 Aufrufe
    Niemand hat geantwortet
  • NodeBB - v3.0.0-rc.1

    NodeBB
    1
    0 Stimmen
    1 Beiträge
    57 Aufrufe
    Niemand hat geantwortet
  • NanoPi5 - eMMC

    Verschoben NanoPi R5S
    1
    0 Stimmen
    1 Beiträge
    154 Aufrufe
    Niemand hat geantwortet
  • Nodebb - iframely

    NodeBB
    5
    0 Stimmen
    5 Beiträge
    155 Aufrufe
    FrankMF

    In der Anleitung von iframely werden zwei Tools angesprochen, um den Dienst dauerhaft am Laufen zu halten.

    forever pm2

    Ich habe beide ausprobiert, pm2 recht intensiv. Bin aber zu der Überzeugung gekommen, das es für mich nicht sinnvoll ist eines dieser Tools zu nutzen. Meine NodeJS Fähigkeiten sind sehr überschaubar, so das ich mich mit keinem der Tools richtig wohl gefühlt habe. Also machen wir es so, wie es in Debian 11 eingebaut ist - mit systemd

    Hier das File wie ich den Dienst starte.

    [Unit] Description=Iframely Documentation=https://iframely.com/docs/host After=system.slice multi-user.target [Service] Type=simple User=<USER> StandardOutput=syslog StandardError=syslog SyslogIdentifier=iframely WorkingDirectory=/home/<USER>/iframely PIDFile=/home/<USER>/iframely/pidfile ExecStart=/usr/bin/node cluster Restart=always [Install] WantedBy=multi-user.target
  • NodeBB - Upgrade v2.0.1 !!!

    NodeBB
    4
    0 Stimmen
    4 Beiträge
    149 Aufrufe
    FrankMF

    Wer manuell fixen will, hier sind die Änderungen drin die man braucht, damit alles wieder läuft.

    Link Preview Image Login problem 2.0.1

    Created a pr for embed plugin as well https://github.com/TheWorms/nodebb-plugin-embed/pull/1

    favicon

    NodeBB Community (community.nodebb.org)

  • Upgrade auf NodeBB 1.11.0

    NodeBB
    1
    0 Stimmen
    1 Beiträge
    364 Aufrufe
    Niemand hat geantwortet