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
    45 Aufrufe
    Niemand hat geantwortet
  • Nodebb - iframely

    NodeBB
    5
    0 Stimmen
    5 Beiträge
    153 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 - Git Prozess

    NodeBB
    2
    0 Stimmen
    2 Beiträge
    52 Aufrufe
    FrankMF

    Heute gab es ein Update von 2.4.5 -> 2.5.0

    Das oben geschriebene funktioniert nicht 😞

    git fetch git reset --hard origin/v2.x ./nodebb upgrade

    Ausschnitt der Konsole

    ~/nodebb$ git fetch remote: Enumerating objects: 244, done. remote: Counting objects: 100% (239/239), done. remote: Compressing objects: 100% (100/100), done. remote: Total 244 (delta 160), reused 212 (delta 138), pack-reused 5 Receiving objects: 100% (244/244), 55.57 KiB | 7.94 MiB/s, done. Resolving deltas: 100% (160/160), completed with 62 local objects. From https://github.com/NodeBB/NodeBB dd3e1a2861..01d276cbee v2.x -> origin/v2.x * [new branch] async-zxcvbn -> origin/async-zxcvbn 9260b4ef19..d06938d877 bootstrap5 -> origin/bootstrap5 884d40756a..8fe41d92a2 develop -> origin/develop a088eb19af..1076285dc9 master -> origin/master + b7d916c321...c85ac68373 renovate/ace-builds-1.x -> origin/renovate/ace-builds-1.x (forced update) * [new tag] v2.5.0 -> v2.5.0 :~/nodebb$ git reset --hard origin/v2.x HEAD is now at 01d276cbee chore: incrementing version number - v2.5.0 :~/nodebb$ ./nodebb upgrade Updating NodeBB...
  • NodeBB - Upgrade v2.0.1 !!!

    NodeBB
    4
    0 Stimmen
    4 Beiträge
    148 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)

  • LMDE Beta

    Linux
    1
    0 Stimmen
    1 Beiträge
    121 Aufrufe
    Niemand hat geantwortet
  • Docker - Portainer

    Linux
    3
    0 Stimmen
    3 Beiträge
    606 Aufrufe
    FrankMF

    Dann grabe ich das mal wieder aus 😉

    Bedingt durch den Wegfall meines Proxmox, musste ich mir Gedanken darüber machen, wie ein paar Dienste auch weiterhin laufen sollen. Um mal die zwei wichtigsten zu nennen.

    checkmk DokuWiki

    Diese sollen später, wenn der zweite NanoPi R5S aus China da ist, dort laufen. Da der aber mit der Schneckenpost kommt, kann man ja in der Zwischenzeit mal wieder mit Docker spielen.

    Ich erinnerte mich daran, das checkmk eine sehr gute Anleitung hat, so das ich das mal wieder ausprobierte. Klappte einwandfrei. Dann erinnerte mich an Portainer und dachte mir, das probiere ich mal wieder aus 🙂

    1d2dc9b3-ad71-45c5-b552-72c88a1bf773-grafik.png

    Ich hatte übrigens die Endpoints gesucht und nicht gefunden, die heißen jetzt Environments. Auf dem Bild ist noch keiner eingerichtet.

    4bdbf196-1b36-4e65-94d0-0e56daa473bf-grafik.png

    Irgendwie ist das wirklich richtig gute Software. Ich mag den Portainer und auch als selbst ausgebildeter ITler 😉 kommt man damit sehr schnell ganz gut zurecht.

    Ja, man kann die ganzen Docker Befehle auch über die Konsole eingeben, was ich normalerweise auch mit ganz vielen Dingen mache, aber das macht hier einfach Spaß. Man hat auch schnell einen guten Überblick was wo läuft usw.

    Wer so was sucht, einfach mal ausprobieren. Klare Empfehlung von mir.

  • 0 Stimmen
    4 Beiträge
    529 Aufrufe
    FrankMF

    Das Setup heute mal getestet um zu sehen, ob das auch so funktioniert.

    LAN an meine Fritzbox (DHCP) an eth1.100 mein Notebook an eth1.200 meine PS4

    Und dann mal gemütlich eine Runde MW gezockt. Läuft alles einwandfrei 🙂

  • IPv6 und Subnetze

    Linux
    1
    0 Stimmen
    1 Beiträge
    197 Aufrufe
    Niemand hat geantwortet