Kategorie: Server & Programmierung

2009 mit einem QNAP angefangen, betreibe ich heute einen FORUM Mini PC als Homeserver und einem vCPU Server im Rechenzentrum.
VM, LXC, Docker, Linux, etc., hier soll es um die Administration von Servern gehen.

  • Docmost

    Docmost

    Zur Zeit schlägt mir der YouTube Algorithmus die Anwendung Docmost am laufendem Band vor.

    Als ich das erste mal mir die Anwendung angeschaut habe, dachte ich, brauche ich nicht. Schreib/Notiz Apps habe ich on mass.

    Doch die Neugier wurde durch die vielen YouTube Vorschläge geweckt und ich habe diesen in einem Docker Container einmal ausgerollt.

    Was ist Docmost

    Auf der Webseite von Docmost schreiben die Entwickler, dass die Anwendung eine Alternative zu Notion ist.

    Docmost is an open-source alternative to the likes of Notion and Confluence.

    Die Open Source Anwendung ist dein eigenes Wiki, eine Wissensdatenbank. Sie hilft dir beim planen und Umsetzen. Soll dich durchs Studium führen.

    Ein eigenes Wiki ist, finde ich, sehr wichtig. Ich benutze seit über einem Jahr BookStack dafür was auch Open Source ist und im Kern ähnlich, aber anders aufgebaut ist. Vielleicht eine Option sich das auch mal anzusehen.

    Wer sich nicht sicher ist ob er Docmost benötigt, der sollte sich Notion einmal anschauen. Ich habe mir z.B. YouTube Videos dazu angesehen und muss sagen, interessant ist die Software schon.
    Hier muss ich dich aber warnen. Wer sporadisch die Software nur nutzt, wird vermutlich ihr Potenzial nicht ausreizen. Docmost ist komplex.

    Installation

    Damit du die Anwendung auch einmal testen kannst, stelle ich dir meinen Installationsweg einmal vor.

    Ich habe Docmost im Rechenzentrum bei Hetzner am laufen. Die Installation ist natürlich auch auf dem eigenen Homeserver möglich. Die Anwendung kann auch nur im eigenen LAN betreiben werden und Geräte wie Handy und Laptop greifen von Unterwegs per VPN auf die Anwendung zu.

    Ich nutze gerne Dockge. Es ist ein Container Verwaltungssoftware wie Portainer. Dockge ist schlanker und übersichtlicher.
    Wer die Skills hat, kann auch komplett auf Dockge oder Portainer verzichten.

    Hmmm … ich glaube ich stelle beide Wege einmal vor.

    Einmal ohne Container Verwaltungssoftware:

    # Verbindung zum Server per SSH aufbauen
    ssh root@IP
    
    # Einen Ordner erstellen
    mkdir docmost
    
    # Docker Compose file erstellen
    nano docker-compose.yml
    
    # Das Skript einfügen und speichern
    
    # Dann eine .env Datei erstellen
    nano .env
    
    # Und hier die Parameter einfügen und auf dich anpassen. Zum Schluss speichern
    
    # Container ausrollen
    docker compose up -d 

    Unter Dockge ist ist wie gesagt übersichtlicher durch die Web GUI.

    In Dockge anmelden und auf +compose ein neues Skript erstellen. Rechts unter compose.yaml das Skript einfügen. Anpassen brauchst du es nicht, dass machen wir in der .env Datei unter compose.yml. Auch hier die Daten aus der .env einfügen und fertig. Nun noch auf Deploy.

    Über http://IP:3001 rufst du Docmost auf.

    Das Docker-Compose File

    docker compose.yml Datei

    services:
      docmost:
        image: docmost/docmost:latest
        depends_on:
          - db
          - redis
        environment:
          APP_URL: ${WEB_URL}
          APP_SECRET: ${REPLACE_WITH_LONG_SECRET}
          DATABASE_URL: postgresql://docmost:${STRONG_DB_PASSWORD}@db:5432/docmost?schema=public
          REDIS_URL: redis://redis:6379
          MAIL_DRIVER: ${MAIL_DRIVER}
          SMTP_HOST: ${SMTP_HOST}
          SMTP_PORT: ${SMTP_PORT}
          SMTP_USERNAME: ${SMTP_USERNAME}
          SMTP_PASSWORD: ${SMTP_PASSWORD}
          SMTP_SECURE: ${SMTP_SECURE}
          MAIL_FROM_ADDRESS: ${MAIL_FROM_ADDRESS}
          MAIL_FROM_NAME: ${MAIL_FROM_NAME}
        ports:
          - 3000:3000
        restart: unless-stopped
        volumes:
          - docmost:/app/data/storage
      db:
        image: postgres:16-alpine
        environment:
          POSTGRES_DB: docmost
          POSTGRES_USER: docmost
          POSTGRES_PASSWORD: ${STRONG_DB_PASSWORD}
        restart: unless-stopped
        volumes:
          - db_data:/var/lib/postgresql/data
      redis:
        image: redis:7.2-alpine
        restart: unless-stopped
        volumes:
          - redis_data:/data
    volumes:
      docmost: null
      db_data: null
      redis_data: null
    networks: {}

    .env Datei

    # ${WEB_URL}
    WEB_URL=http://localhost:3000 
    
    # ${STRONG_DB_PASSWORD} ohne Sonderzeichen und Umlaute
    STRONG_DB_PASSWORD=HIER-PASSWORT 
    
    #${REPLACE_WITH_LONG_SECRET} ohne Sonderzeichen und Umlaute
    REPLACE_WITH_LONG_SECRET=HIER-PASSWORT 
    
    
    ## Um Benutzer in Ihren Arbeitsbereich einzuladen wird ein smtp Zugang benötigt
    # ${MAIL_DRIVER}
    MAIL_DRIVER=smtp 
    
    #${SMTP_HOST}
    SMTP_HOST= smtp.mail.yahoo.com
    
    # ${SMTP_PORT}
    SMTP_PORT= 587
    
    # ${SMTP_USERNAME}
    SMTP_USERNAME= mai@yahoo.de
    
    # ${SMTP_PASSWORD}
    SMTP_PASSWORD= HIER-PASSWORT
    
    # ${SMTP_SECURE}
    SMTP_SECURE= false
    
    # ${MAIL_FROM_ADDRESS}
    MAIL_FROM_ADDRESS=mail@yahoo.de
    
    # ${MAIL_FROM_NAME}
    MAIL_FROM_NAME=Docmost
  • LXC Speicher erweitern in Proxmox

    LXC Speicher erweitern in Proxmox

    Die Speichererweiterung im LXC ist über die Web GUI eigentlich ganz easy. In den Container auf Ressourcen, hier auf die Disk klicken, auf Volumen Aktion und Größe Anpassen.
    Hat man 10Gb vorher und möchte 5Gb dazu, einfach eine 5 Eintragen. Das was eingetragen wird ist die Speichererweiterung. Es kommen also 15Gb raus.

    Doch was ist, wenn das System diese Änderung nicht vornimmt? Hier hilft dir die Konsole.
    In der Proxmox Konsole gehst du in die Config Datei des LXC Containers. Bei mir exemplarisch die 119.

    nano /etc/pve/lxc/119.conf

    Hier habe ich nach dem speicher geschaut (size). Das sah bei mir so aus:

    rootfs: local-lvm:vm-119-disk-0,size=15G

    Unter size wurden die 5Gb aus der Web GUI schon gesehen. Sie wurden allerdings nicht übernommen. Sollte bei dir die Speichererweiterung nicht stehen, dann kannst du sie hier ändern.

    Nun muss der Speicher aktiviert werden. Das funktioniert mit dem Befehl:

    pct resize 119 rootfs +5G

    Wenn du den Befehl so losschickst, hast du im Anschluss 20Gb. Es werden weitere 5Gb aufgeschlagen. Was ich nicht probiert habe ist das +5G weg zu lassen. Vielleicht hilft das auch schon.

  • Immich – Die SelfHost Fotoverwaltungssoftware

    Immich – Die SelfHost Fotoverwaltungssoftware

    Für über ein Jahr bin ich auf die Software Immich gestoßen und dachte mir „wer bitte brauch das?“. Ich bin Apple Nutzer und bin mit der Fotos App sehr zufrieden. Doch mit der Fotos App bin ich eingeschränkt. Sie läuft nur auf Apple Geräten. Das Teilen von Fotos mit z.B. Android Nutzern ist nicht möglich bzw. nur schwer. Klar kann ich einfach ein Google Konto erstellen (hat man in der Regel sowieso z.B. für YouTube) und kann hier die 15Gb nutzen. Aber was sind 15Gb? Die können schnell voll sein.
    Zudem finde ich Linux spannend und Linux Mint ist auch mein zweites Betriebsystem auf diesen Rechner. Ich kann also nicht mal eben Fotos von Apple nach Linux senden.

    Mit Immich bin ich Flexibel. Ich kann es über einen Reverse Proxy öffentlich zugänglich machen. Ich kann es aber auch nur im LAN betreiben.
    Es gibt für Android und iPhone eine App (gut möglich auch fürs iPad).

    Installation

    Genug gefaselt, Zeit für die Installation. Solltest du Immich vorher mal testen wollen, auf dem GitHub Projekt gibt es einen Link zu einer Testumgebung.

    Zur Installation habe ich einen LXC Container in Proxmox erstellt mit 10GB. Stand jetzt nach der fertigen Installation sind knapp 7GB belegt (ohne Fotos). 2GB RAM waren ein bisschen zu knapp. Der Container lief unter Last nur am Limit. Aus dem Grund habe ich den RAM auf 6GB angepasst, was sicherlich ein bisschen zu viel ist. Bei der CPU das gleiche. 1 CPU war zu wenig, aus dem Grund angepasst auf 3, was wiederum zu viel ist.
    Haben ist eben besser als brauchen.
    WICHTIG bei der Erstellung des LXC’s: Solltest du eine SMB Freigabe planen, nimm den Haken bei Unprivilegierter Container raus. Ist der Container erstellt gehst du unter Optionen Features und aktivierst Nesting und SMB/CIFS.

    Ich weiß, LXC und dann noch Docker. Container im Container. Es läuft und das stabil. LXC’s sind schlanker und ich habe gerne für jede Anwendung einen eigenen LXC/VM. Solltest du Docker in einer VM oder auf einem Pi laufen lassen, dann ignoriere den Schritt mit den LXC Einstellungen.

    Für die Fotos Ablage habe ich auf meiner externen Festplatte einen Ordner erstellt und diesen als SMB freigegeben. Die SMB Freigabe habe ich über OpenMediaValt erstellt.

    Da Immich Docker benötigt, habe ich zuerst curl, Docker, und Docker Compose installiert. Dann habe ich mich für den Container Dockge entschieden. Über Dockge habe ich die weitere Installation vorgenommen.

    ## System Update
    apt update && apt upgrade -y && apt autoremove -y && reboot
    
    ## Installation von curl
    apt install curl -y
    
    ## Installation von Docker
    curl -sSL https://get.docker.com | sh
    
    ## Installation von docker compose
    apt install docker-compose -y
    
    ## Installation von Dockge
    ## passende Ordner erstellen
    mkdir -p /opt/stacks /opt/dockge
    cd /opt/dockge
    
    ## Verzeichnis Downloaden
    curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml
    nano compose.yaml
    
    ## ich habe hier noch einen container_name und hostnamen hinzugefügt. Die Verzeichnisse müssen so bleiben. Was geändert werden kann ist das /opt/stacks unter volumes.
    
      dockge:
        container_name: dockge
        hostname: dockge
    
    ## Container ausrollen
    docker compose up -d
    
    ## erreichbar unter Port 5001
    http://192.168.IP.IP:5001
    
    ## USER und Passwort vergeben

    SMB Freigabe

    Wie gesagt, wollte ich meine Fotos auf einer externen Festplatte speichern. Das hat für mich den Vorteil, dass ich vom Mac, unter Linux und auch unter Windows im Netzwerk oder per VPN auf die Fotos zugreifen kann.

    Zuerst habe ich die Pakete für CIFS Installiert. 

    apt install cifs-utils -y

    Dann habe ich einen Ordner erstellt in /mnt/hdd4tb. Bei mir handelt es sich hierbei um eine HDD Festplatte mit 4Tb. Ihr könnt den Ordner aber auch Immich nennen, macht vermutlich mehr Sinn.

    Nun habe ich mich mit meiner SMB Freigabe verbunden.

    mount -t cifs //192.168.IP.IP/hdd4tb/Fotos/Immich /mnt/hdd4tb -o username=NUTZER,password=PASSWORT

    Das Verzeichnis auf sich Anpassen. Das kann man gut unter Apple Testen indem man den Finder öffnet und CMD+K tippt. Dann öffnet sich ein Fenster. Hier einmal den Pfad eintragen

    smb://192.168.IP.IP/hdd4tb/Fotos/Immich

    Kommst du auf deinem Ordner, hast du alles richtig gemacht. Das SMB Passwort sollte einfach sein. Also ohne Sonderzeichen. Ich hatte in der Vergangenheit mit Sonderzeichen Probleme. Da sich die Freigabe aufs Heimnetz beschränkt, ist dies auch ein überschaubares Sicherheitsrisiko. Auch benötigt der SMB Nutzer schreib und lese Rechte.

    Nun noch unter

    nano /etc/fstab

    die SMB Freigabe eintragen, so das bei einem Neustart die Verbindung wieder hergestellt wird.

    //192.168.IP.IP/hdd4tb/Fotos/Immich /mnt/hdd4tb cifs username=USERNAME,password=PASSWORT 0 0

    Immich anpassen

    Ich habe mir von GitHub das aktuelle Skript gezogen und dies in VSC auf mich angepasst.
    https://github.com/immich-app/immich

    Die Anpassung sah wie folgt aus:

    • Verzeichnis anpassen. Hier die in Klammern ignorieren (z.B. ${DB_DATA_LOCATION}). Diese sind ein Verweis auf eine andere Datei.
      volumes:
      – /mnt/hdd4tb/model-cache:/cache
      Hier habe ich die Weiterleitung auf meinen CIFS (SMB) Verzeichnis erstellt.

    Docked

    In Docked habe ich einen neuen Eintrag erstellt und das Docker Compose File eingefügt. Weiter unten habe ich die .env Datei noch angepasst.

    ## Verweis auf den Upload Ordner
    UPLOAD_LOCATION 
    
    ## habe ich im Verzeichnis von meiner Docker Installation gelassen (also nicht in die SMB Freigabe)
    DB_DATA_LOCATION
    
    ## Die Timezone habe ich auf Deutschland angepasst.
    TZ=Europe/Berlin
    
    ## einmal auf die Tastatur gehauen und schon hatte ich eine Passwort
    DB_PASSWORD 

    So sieht es bei mir aus:

    # You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
    
    # The location where your uploaded files are stored
    UPLOAD_LOCATION=/mnt/hdd4tb/upload
    # The location where your database files are stored
    DB_DATA_LOCATION=./postgres
    
    # To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
    # TZ=Europe/Berlin
    
    # The Immich version to use. You can pin this to a specific version like "v1.71.0"
    IMMICH_VERSION=release
    
    # Connection secret for postgres. You should change it to a random password
    # Please use only the characters `A-Za-z0-9`, without special characters or spaces
    DB_PASSWORD=refdbnd9mpr92
    
    # The values below this line do not need to be changed
    ###################################################################################
    DB_USERNAME=postgres
    DB_DATABASE_NAME=immich

    Nun noch dem Container in Docked einen Namen geben und fertig mit Deploy. Dies dauert nun ein paar wenige Minuten.
    Über den Port 2283 ist Immich aufrufbar. (http://192.168.IP.IP:2283)

    Alternativen

    Die Mehrzahl „Alternativen“ hört sich gut an. Tatsächlich handelt es sich hierbei nur um eine App. Die App PhotoSync nutze ich schon seit Jahren und bin mit dieser sehr zufrieden.

    Ich nutze sie wie folgt:
    Möchte ich meine Fotos vom Handy haben, gehe ich in die App. Dort habe ich einen Pfad zur iCloud hergestellt. Drücke ich auf Upload schreibt die App jedes Foto so um, wie ich es vorher eingestellt habe (Jahr-Monat-Tag). Die App legt auf Wunsch auch einen Ordner nach deinen Wünschen an.

    Noch mal kurz zum Pfad wo die Fotos gespeichert werden: Kommst du mit der Dateien App dort hin, kommt PhotoSync auch in das Verzeichnis. Also kannst du die Fotos auch in Nextcloud, Google und Co speichern.

    Das ist der leichtere und langweiligere Weg. 🙂

  • TOR Relay Einrichten

    TOR Relay Einrichten

    Seit ich das Hörbuch von Edward Snowden gehört habe, dachte ich mir „was ein interessantes Netz“. Das „DarkNet“ hat in den Medien immer so einen erschrecken schlechten Ruf bekommen. Dabei ist dies Netzwerk für viele Menschen der einzige Weg über die Landesgrenzen hinaus zu kommunizieren.

    Für mich selbst stand die technische Herausforderung ganz oben. Ich dachte immer, dass das einrichten eines Relays extrem aufwendig ist. Blödsinn. Wenige Klicks, wenn man weiß wie.

    Ich habe meine Installation mit geschrieben und wollte sie dir mitgeben.

    Installation

    Ich habe mein Relay auf einer Proxmox Umgebung am laufen und dort als VM. Vermutlich geht auch ein LXC. Da kann es aber sein, dass dir ggf. einige Anwendungen fehlen. Das musst du dann selbst im Blick haben.

    Die Installation soll auch auf einen Raspberry Pi möglich sein. Ich habe mich allerdings hier für das System Debian Bookworm entschieden. Es ist zu der jetzigen Zeit das aktuelle System.

    Ist die VM erstellt, kann es auch schon losgehen.

    ## Die Befehle habe ich als sudo abgesetzt
    su
    
    ## System einmal frisch machen
    apt update && apt upgrade -y
    
    ## Nun wird auch schon TOR und nyx installiert. 
    ## nyx ist später das Überwachungsprogramm
    apt install tor nxy -y

    Konfiguration

    Vor der Konfiguration wird ein HASH benötigt welches wir später benötigen. Also in die Zwischenablage Kopieren

    tor --hash-password SICHERES-PASSWORT-EINTRAGEN

    Nun geht es in die TOR Konfiguration unter

    nano /etc/tor/torrc

    Hier gibt es ein paar wenige Punkte die man einstellen sollte und andere kann. Zur Aktivierung das # entfernen. Die Erklärung ist mit zwei ##’s gesetzt.

    Dies sind meine aktivierten Punkte:

    Log notice file /var/log/tor/notices.log
    Log notice syslog
    RunAsDaemon 1
    DataDirectory /var/lib/tor
    ControlPort 9051
    HashedControlPassword HIER DEIN HASH EINTRAGEN
    CookieAuthentication 1
    
    ## Dieser Port muss im Router freigegeben werden und ist somit ein Pflichtfeld
    ORPort 9001
    
    ## Hier kommt der Name deines Relays hin. Nach diesem kannst du später auch suchen:  
    https://metrics.torproject.org/rs.html#simple
    Nickname NAME-DEINES-RELAY
    
    ## Hier kann man in den klammern ein bisschen verschlüsselt die eMail hinterlegen. Da Die Mail veröffentlicht wird, wird vermutlich diese getarnt durch die Farbe weiß (0xFFFFFFFF)
    ContactInfo 0xFFFFFFFF Random Person <nobody AT example dot com>
    
    ## Das ist die Bandbreite die du zur verfügung stellen möchtest. Ich habe hier 2,5MB/s zur verfügung gestellt. 5MB/s nur unter kurzen Spitzen. Es besteht auch die Möglichkeit ein Limit einzutragen (wieviel GB pro Tag z.B.)
    RelayBandwidthRate 2500 KB  # Throttle traffic to 100KB/s (800Kbps)
    RelayBandwidthBurst 5000 KB # But allow bursts up to 200KB/s (1600Kbps)
    
    DirPort 9030
    
    ## Dieser Punkt ist tatsächlich der wichtigste. Er bezeichnet ob dein Server als Exit Knoten funktionieren darf. In Deutschland ist die Gesetzeslage eine kritische und wir vom TOR Projekt nicht empfohlen. 
    ExitPolicy reject *:*

    Damit ist die Konfiguration von TOR schon fertig. Nun muss der PORT noch im Router freigegeben werden. In der Fritzbox unter Internet – Freigaben. Bei mir war es der ORPort 9001.

    TOR Update

    Das TOR Projekt hat eine eigene Debian Quelle die immer die neusten Paketquellen beinhaltet. Die Paketquellen von Debian sind leider, was das TOR Projekt angeht veraltet. Die Installation von deren Webseite war recht einfach wenn man alle Pakete dafür installiert hat. Hatte ich natürlich nicht.
    Einmal die Anleitung vom TOR Projekt: https://support.torproject.org/de/apt/tor-deb-repo/

    Ich arbeite mich mal fixer durch die Webseite:

    ## Voraussetzung: Verifiziere die CPU-Architektur
    ## Das Paket-Repository bietet die Programmdateien amd64, arm64 und i386
    ## Prüfen mit
    dpkg --print-architecture
    
    ## Installiere apt-transport-https
    apt install apt-transport-https
    
    ## Ermittle dein System
    lsb_release -c
    
    ## Erstelle die Datei tor.list
    nano /etc/apt/sources.list.d/tor.list
    
    ## und füge hier folgende Einträge ein
    ## unter <DISTRIBUTION> muss die Debian Version die oben ermittelt wurde (lsb_release -c) eingetragen werden und das ohne die Klammern
    deb     [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] https://deb.torproject.org/torproject.org <DISTRIBUTION> main
    deb-src [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] https://deb.torproject.org/torproject.org <DISTRIBUTION> main
    
    ## bei mir sah es so aus
    deb     [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] https://deb.torproject.org/torproject.org bookworm main
    deb-src [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] https://deb.torproject.org/torproject.org bookworm main
    
    ## GPG-Schlüssel
    ## Nun wird eine GPG-Schlüssel benötigt. Ich hatte das nötige Programm auf meinem Debian noch nicht installiert. Zu installieren mit
    apt install gnupg2
    
    ## Nun wird der GPG-Schlüssel vom TOR Projekt herunter geladen
    wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/null
    
    ## ein Update
    apt update
    
    ## und zuletzt die Installation weiterer Pakete
    apt install tor deb.torproject.org-keyring

    Da ich meinen TOR Relay in Proxmox am laufen habe und ich diesen immer mal neu starte, habe ich mir überlegt, mein TOR automatisch starten zu lassen.

    systemctl enable tor

    Optional kann man es auch manuell starten mit

    systemctl tor

    Monitoring

    Durch starten des Programms nyx kann man sehen was gerade passiert. Es wird ein paar Minuten dauern bis dein Relay vom TOR Netzwerk gefunden wurde. Ich habe auf einer Webseite mal was von 3 Stunden gelesen.
    Irgendwann steht unter flags: Running, V2Dir, Valid

  • BookStack

    BookStack

    BookStack ist für mich eine der wichtigsten Informationsdokumentations Anwendungen. Es ist ein Wikipedia ohne der klassischen Wiki-Oberfläche und natürlich erreichbar über den Browser. Man kann es auch als Bücherregal mit ganz vielen Büchern betrachten.

    Um es mit eigenen Worten zu beschreiben und euch nicht auf die Folter zu spannen: ich nutze BookStack als interne Internetseite wo ich Skripte wie Docker Compose oder Anleitungen verfasse. Funktioniert mal was nicht, kann ich dies hier nachlesen und nachvollziehen wie ich einst die Anwendung installiert habe.

    BockStack ist dabei aufgebaut wie ein Bücherregal. Es gibt unendlich viele Regale. Dies benötigt ich für die unterschiedlichen Themen. So habe ich zum Beispiel ein Regal Kochen und eins IT.

    In diesen Regalen stehen Bücher. Im Regal IT gibt es ein Buch was Proxmox heißt. Ein weiteres Docker.

    In diesen Büchern gibt es dann Kapitel und natürlich auch Seiten.

    Auf den Seiten kann man Links einfügen, Videos selbst hochladen und einfügen, Dateien zum Download hinterlegen.

    BookStack unterstützt zwei Editoren. Einmal Markdown und WYSIWYG Editor. Mein Favorit ist dabei Markdown. Wobei der WYSIWYG Editor die Stärken in der einfachen Anwendung hat.

    BookStack betreibe ich im Heimnetz in einem LXC. Sollte ich doch mal zugriff haben wollen, gibt es noch den VPN Weg nach Hause.
    Natürlich kann man BookStack auch von außen erreichbar machen und dies z.B. via Login Daten schützen.

    Für mich ist diese Web GUI ein mächtiges Tool in denen Rezepte und Anleitungen ihren Platz finden.

    Die Installation ist denkbar einfach und wird auf der offiziellen Webseite gut beschrieben. Auch gibt es unzählige Anleitungen bei YouTube. Schaut es euch mal an.

  • OpenCore Legacy Patcher – Dual Boot mit Linux

    OpenCore Legacy Patcher – Dual Boot mit Linux

    Vorwort

    Ich hatte nachdem mein Macbook Pro Mitte 2015 in die Jahre gekommen ist, keine Updates mehr erhalten und Linux auf diesen Installiert. Dann bin ich über YouTube über den OpenCore Legacy Patcher gestoßen. Dieser macht das Macbook wieder zu einem aktuellen Mac und ich bekomme auf meinen alten Mac das neuste Betriebsystem.
    Leider ist nach der Installation mein Linux nicht mehr erreichbar gewesen. Wie ich dies wieder zum laufen bekommen habe gibt es hier erklärt.

    Anleitung

    Zuerst einmal das Terminal öffnen. Hier suchen wir nun EFI welches für das Booten verantwortlich ist. Um dies ausfindig zu machen einfach den Befehl eintippen:

    diskutil list

    Nun erscheint eine Liste. Unter Identifier sieht man die Patitionen. Ich habe in meinem Macbook Pro eine 2Tb mit der Bezeichnung disk0. Diese ist unterteilt in disk0s1 auf der das EFI (das Bootmenü) liegt. Die disk0s3 ist mein Linux System.

    Um nun das EFI zu Mounten den Terminal Befehl eintragen bzw. für sich anpassen:

    sudo diskutil mount /dev/disk0s1

    Nun das Apple Passwort.

    Im Finder und je nach Einstellung des Macs erscheint auf dem Desktop ein neues Laufwerk mit der Bezweichnung der Festplatte. Bei mir EFI.

    !!!WICHTIG!!!
    Es empfieht sich hiervon eine Sicherung zu erstellen auf einem externem Datenträger wie einem USB-Stick. Daten einfach Kopieren.

    Im Verzeichnis EFI - OC liegt die Datei config.plist. Diese einmal im Visual Studio Code oder einem anderen Editor öffnen.
    Eine Dateien unter dem Ordner Dirvers z.B. OpenCanopy.efi in der config.plist suchen. An dieser Stelle müssen wir nun was bearbeiten.

    Laut der offiziellen Dokumentation (https://dortania.github.io/OpenCore-Multiboot/oc/linux.html) benötigen wir im Ordner Drivers die OpenLinuxBoot.efi und ext4_x64.efi Datei. Um diese kümmern wir uns gleich. Ich habe im VSC einen Abschnitt kopiert und neu in die gleiche Formatierung eingefügt.

    <dict>
    	<key>Arguments</key>
    	<string></string>
    	<key>Comment</key>
    	<string></string>
    	<key>Enabled</key>
    	<true/>
    	<key>LoadEarly</key>
    	<false/>
    	<key>Path</key>	
    	<string>OpenCanopy.efi</string>
    </dict>

    Wichtig dabei ist, das der Code von <dict> zu </dict> verläuft. Hier unter <string>OpenCanopy.efi</string> einmal OpenLinuxBoot.efi und einen neuen Abschnitt mitext4_x64.efi erstellen.
    Nun kann die Datei geschlossen werden.

    Unter https://github.com/dortania/OpenCore-Install-Guide erhälst du die OpenLinuxBoot.efi und ext4_x64.efi. Diese nun in Drivers kopieren.

    Mit dem nächsten Boot sollte Linux als Boot Icon erscheinen. Ist dem nicht so, kann man, ich meine mit der Tastenkombination ALT und R beim Booten das Bootmenü offnen. Unter dem OpenCore Legacy Patcher kann man unter Einstellungen auch die Bootmenü hinterlegen.