Server administrieren - wo fange ich an?

  • Hat es irgendeinen Vor- oder Nachteil wenn ich Wiki.js in /home/user/wiki oder in /var/wiki installiere?

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • Hat es irgendeinen Vor- oder Nachteil wenn ich Wiki.js in /home/user/wiki oder in /var/wiki installiere?

    in /var hats gar nix verloren, vergleiche letzten absatz in https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch05.html


    würde /home oder /opt empfehlen. dass man einen eigenen (system) user dafür verwendet ist obligatorisch.


    edit: bist du deppat, manche software sollte man wirklich als docker installieren und nicht der legacy installationsanleitung folgen. https://docs.requarks.io/install/linux


    edit2: und in der systemd unit erwähnen sie man möge einen eigen user verwenden, erklären das wie aber mit keinem wort. wieder mal typisch für entwickler die zu blöd sind ordentliche doku zu schreiben, packen ihre shyze dann halt einfach in docker. sorry für den rant.

  • in /var hats gar nix verloren, vergleiche letzten absatz in https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch05.html


    würde /home oder /opt empfehlen. dass man einen eigenen (system) user dafür verwendet ist obligatorisch.

    Ich hatte gelesen das der ein oder andere es in /var installiert hatte, darum hab ich gefragt.

    edit: bist du deppat, manche software sollte man wirklich als docker installieren und nicht der legacy installationsanleitung folgen. https://docs.requarks.io/install/linux

    Was für einen Vorteil bringt mir die docker Installation? Ich habe docker noch nie verwendet, und mir wurde auch eher davon abgeraten... Zumindest vorerst.

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • Hat es irgendeinen Vor- oder Nachteil wenn ich Wiki.js in /home/user/wiki oder in /var/wiki installiere?

    Wenn du der einzige Nutzer bist, der eine Anwendung warten muss, ist es "relativ" wurscht, wohin du sie installierst. /usr/share oder /opt oder /home/USER sind da alle unproblematisch. Aber auch /var wird dir keine Probleme bereiten, Du könntest sogar ein Verzeichnis /bud erstellen und es dort reinpacken. ;)

    Nur solche Plätze wie /proc, /run, /sys, /boot o.ä. solltest du meiden.

    https://linuxhandbook.com/linux-directory-structure/

    Letztlich ist diese Ordnung aber in den meisten Fällen kein "Muss". Gerade bei binaries ist es manchmal eher ein Ratespiel, ob die nun in /bin, /sbin, /usr/bin /usr/sbin oder sonstwo landen. (Ähnlich bei libs) ^^

    Im Zweifel einfach nach /opt ;)

    Was für einen Vorteil bringt mir die docker Installation? Ich habe docker noch nie verwendet, und mir wurde auch eher davon abgeraten... Zumindest vorerst.

    Bei manchen Anwendungen, insbesondere wenn sie aus vielen Einzelkomponenten bestehen, ist es u. U. unkomplizierter, wenn man ein vorkonfiguriertes Container-Ensemble mittels docker-compose installiert.

    Ein paar wenige Befehle und ein komplexes System läuft. :)

    Beispiele, bei denen ich docker verwende, sind z.B. mailcow oder bigbluebutton,

    Wie es sich bei wiki.js verhält, kann ich nicht einschätzen. Habe ich noch nie genutzt.


    docker ist nicht per se besser oder schlechter als die direkte Installation auf dem Host. Das sollte man von Fall zu Fall abwägen.

    "rule of thumb" : docker lohnt sich eher, wenn die Anwendung sehr viele verschiedene Einzelbausteine enthält, die man ansonsten alle einzeln installieren und auch warten müsste. (Das oft gelesene Argument, mit docker wären Anwendungen leichter und schneller auf andere Server übertragbar, stimmt so auch nicht generell)

    In der Regel setze ich persönlich zwar meist auf eine direkte Installation auf dem Host, aber das ist auch ein bisschen Geschmackssache. ;) (Ich mag u.a. den Overhead von docker nicht. Aber vielleicht teste ich demnächst mal podman an)

  • Oder gibt es irgendeine dubiose Funktion in chown, die einen "." erlaubt? Wäre mir zumindest jetzt neu.

    Die andere Syntax habe ich durchaus schon mal gesehen, ist aber lange her und ich weiß auch nicht, ob die noch funktioniert. ;)


    https://unix.stackexchange.com/q/245210/72768


    EDIT: Ups, wurde schon geklärt. Ich hätte die nächste Seite lesen sollen :pinch:

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

    Einmal editiert, zuletzt von KB19 ()

  • Was für einen Vorteil bringt mir die docker Installation? Ich habe docker noch nie verwendet, und mir wurde auch eher davon abgeraten... Zumindest vorerst.

    sorry, mein edit war ironisch.


    docker vermeidet halt jedwelchige abhängigkeiten und versteckt die komplexität der integration. so ähnlich wie wenn Du mit Deinem gesamten haus auf urlaub fahren würdest.

    ich nehm halt nur meinen kaffeekocher mit, der muss dann halt in die dortige küche passen. :)


    ich bevorzuge installationen am host und so viel über die systempacketverwaltung wie möglich. da bekommt man die security updates (der abhängigkeiten) nämlich frei haus. und, größter vorteil, man lernt dabei was.


    ich installiere (wenn kein .deb vorliegt oder es kein repo gibt) generell nach /opt und lass den kram mit einem eigenen system user (uid < 1000 normalerweise, die entsprechende option von adduser macht das aber eh richtig) laufen.

  • Wikijs basiert ja auf NodeJS. Bis vor kurzem war es nicht möglich Wikijs mit NodeJS >=18 zu starten (das haben sie mit dem letzten Update korrigiert). Wenn man vorher ein Debian 12 hatte, konnte man das also nicht mit dem NodejS aus den normalen Debian Repos zum Laufen bekommen (NodeJS 18). Gerade bei solchen Situationen kann es schnell zu einer ziemlichen Bastelei werden, wennn man auf einem Server dann eine andere NodeJS Versionen installieren muss. Hier ist es dann z.B. deutlich angenehmer, wenn man einfach den Container startet, der die entsprechenden Abhängigkeiten selbst mitbringt und den Host an sich "sauber" hält. Gerade Wikijs ist eigentlich ein schönes Beispiel für eine sinnvolle Docker Installation, zumal sich hier die Konfiguration auch wunderbar mit ENV Variablen setzen lässt.

  • Aber auch /var wird dir keine Probleme bereiten, Du könntest sogar ein Verzeichnis /bud erstellen und es dort reinpacken.

    auf manchen systemen gibt es partitionen. da ist im root eventuell nicht genug platz und /var hat vielleicht ein noexec flag.

    oder das installationsscript besteht auf einem falschen pfad und mag aber keinen symlink, dann darf man plötzlich mit bind mounts herumhampeln.


    am besten man machts gleich von anfang an richtig und gewöhnt es sich auch so an.


    Gerade bei binaries ist es manchmal eher ein Ratespiel, ob die nun in /bin, /sbin, /usr/bin /usr/sbin oder sonstwo landen.

    nein, das ist klar geregelt in der FHS und sogar in dem von Dir genannten link erklärt. mal abgesehen vom /usr-merge bzw machts der jetzt einfacher.

  • ziemlichen Bastelei werden, wennn man auf einem Server dann eine andere NodeJS Versionen installieren muss.

    node.js hat sogar ein eigenes repo. das ist weit entfernt von bastelei. https://github.com/nodesource/…installation-instructions


    PostgreSQL gibts fertig in den debian repos.


    also kein grund für das ungetüm docker.


    für Bud gibts dadurch ein paar lernziele ;)

    wo installiert man 3rd party software

    wie erstellt man dafür einen eigenen user

    wie bindet man ein 3rd party repo ein

    wie legt man in postgresql einen user und eine datenbank an

    wie erstellt man eine systemd unit

  • nein

    doch :S  ^^

    oh,

    hast Du ein beispiel für mich bitte?

    Gerne:


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • wo installiert man 3rd party software

    Ich habe Wiki.js jetzt unter /home/bud/wikijs installiert, wobei es in /var/www/wikijs ja auch in Ordnung gewesen wäre, richtig?

    wie erstellt man dafür einen eigenen user

    Einen User erstellen ist kein Problem. Mir macht eher noch das Rechte-Verhältnis bzw. die Rechte-Konfiguration Probleme. Nicht das Durchführen, sondern das verstehen.

    wie bindet man ein 3rd party repo ein

    Ich bin mir nicht ganz sicher, was du damit meinst...

    wie legt man in postgresql einen user und eine datenbank an

    Bereits gemacht, mehrfach...

    wie erstellt man eine systemd unit

    Auch hier habe ich bereits wiki.service erstellt, und sogar schon die erste Problembehebung hinter mir.



    Aktuell läuft Wiki.js unter IP:3000. Ist es ausreichend, wenn ich den Document Root von Apache2 einfach auf /home/bud/wikijs ändere, und dann ganz normal certbot installiere sowie die IP als A-Record festlege? Port 443 natürlich noch freigeben - kann ich den 80ger dann einfach schließen? Und den 3000 auch?

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

    Einmal editiert, zuletzt von Bud ()

  • wobei es in /var/www/wikijs ja auch in Ordnung gewesen wäre, richtig?

    nein! programme haben in /var nichts verloren. inhalte ja. die hat dein wiki.js aber in der postgresql. und in /var/www gehören ausserdem nur inhalte die ein klassischer web-server ausliefern kann.

    Mir macht eher noch das Rechte-Verhältnis bzw. die Rechte-Konfiguration Probleme. Nicht das Durchführen, sondern das verstehen.

    zb alles in /opt/wikijs gehört nur dem user wikijs. der nodejs prozess läuft unter dem user wikijs. fertig.

    Ich bin mir nicht ganz sicher, was du damit meinst...

    wäre nur angedacht gewesen wenn Du nodejs nicht aus dem debian repo installierst. dafür gibts aber aktuell keine notwendigkeit.

    Aktuell läuft Wiki.js unter IP:3000. Ist es ausreichend, wenn ich den Document Root von Apache2 einfach auf /home/bud/wikijs ändere,

    falsch. Du brauchst einen proxy der von 80 bzw 443 auf localhost:3000 „übersetzt“. das kann man mit apache machen, eleganter aber mit nginx. diese proxy virtual hosts haben bei mir immer ein gemeinsames „leeres“ document root.


    das installationsverzeichnis von wiki.js solltest Du nie freigeben, dort liegen ja programme und keine inhalte.

    normal certbot installiere

    den certbot musst Du über aliase im apache oder nginx einbinden.

    huch, certbot dürfte einen eigenen server mitbringen, im gegensatz zu dehydrated welches ich immer einsetze.

    Port 443 natürlich noch freigeben - kann ich den 80ger dann einfach schließen? Und den 3000 auch?

    ich denke wenn Du ein valides zertifikat hast kannst den port 80 zu machen. ich lass den aber immer offen und mach im virtual host einen redirect auf https. den 3000 kannst dann auch zu machen, den braucht dann ja nur mehr der proxy übern localhost.

  • Port 80 wirst du für die Letsencrypt HTTP Challenge benötigen (falls du nicht die DNS Challenge verwendest). Daher wirst du den Port schon deshalb kaum komplett zumachen können. Wie hoedlmoser schon erwähnt ist hat hier ein Redirect von von http auf https die gängige Praxis.

  • nein! programme haben in /var nichts verloren.

    Nur zur Klarstellung für Bud, damit das nicht falsch verstanden wird:

    Dass nach /var keine Programme gehören ist eine Konvention, eine Richtlinie. Die Ersteller einer Distribution sollten sich an diese "FSH" natürlich halten, Du selbst kannst sie aber auf deinen Server auch (in diesem Fall gefahrlos) brechen. Auch ein Programm in /var/ oder /var/www wird funktionieren.

    Ich habe z.B. in /var/www/scripts etliche bash-Skripte und auch selbstkompilierte kleine tools liegen, die funktionieren auf allen Servern seit Jahren problemlos.

    (Klar, die könnte ich auch nach /opt oder sonstwohin verfrachten, aber das hatte sich "historisch" so ergeben und nun isses halt so. Ich hab's nicht so mit Regeln. ^^)

    Aber ich gebe gerne zu, dass man sich das Leben u.U. einfacher macht, wenn man sich an die Struktur hält ;) (Auch weil es natürlich Systemordner gibt, in die man selbst garnix reinpacken sollte)

  • Wieso nicht Reverse Proxy mit Let's Encrypt und https://munin.domain.tld ohne Port? Der Proxy könnte auch mit dem /munin/ umgehen.

    Ich möchte mich als Nächstes an Reverse Proxy wagen, da ich das nicht nur für munin, sondern auch für Wiki.js gebrauchen kann.
    Ich hab mich schon ein wenig eingelesen, und stoße immer wieder über zwei Möglichkeiten, was das Zertifikat angeht:
    certbot oder "manell" - gibt es da vor und Nachteile? Beim Manuellen müsste ich mich eh erst einlesen, wie ich das von LE "exportiere" und auf meinem Server ablege etc...

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE