Kategorie: Alle Blogbeiträge

Müssen Blogbeiträge immer eine Ordnung haben?

  • 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

  • Smarte Haustür

    Smarte Haustür

    Kennst du das, wenn die Tür hinter dir zu fällt und du deinen Schlüssel nicht dabei hast? Mir tatsächlich schon ein paar mal passiert. Aus dem Grund habe ich mir den „Shelly 1 Mini Gen3“ vor den Türsummer verbaut.

    Ich möchte heute nicht auf die Installation des Shelly eingehen, sondern über die Integration aufs iPhone berichten.

    Kurz über mein Setup:
    Der Shelly ist verbaut und kann angesteuert werden. Schalte ich den Shelly ein, summt der Türöffner.
    Der Shelly ist bei mir im WLAN und in mein HomeAssistant integriert.
    HomeAssistant wiederum hat eine Verbindung mit Apple Home.

    Es funktioniert also alles. Mich stört allerdings, dass ich den Shelly immer An und wieder Aus schalten muss! Mache ich das nicht, summt der Shelly vor sich hin und lässt alle vor der Tür stehenden Menschen rein.

    Ich habe mithilfe der App Kurzbefehle ein mini Skript gebaut, in der der Türöffner nur wenige Sekunden läuft und dies als Widget auf dem Desktop hinterlegt sowie seit iOS 18 ins Kontrollzentrum.

    Kurzbefehl

    Zuerst habe ich die App Kurzbefehle geöffnet und dort unter Kurzbefehl einen neuen erstellt.
    Ich habe in der HomeAssistant App den Türsummer nicht gefunden. Das war für mich nicht sonderlich schlimm, da in der Home App von Apple auch dieser hinterlegt war. Der Vorteil von Apple Home: Mein Apple TV ist die Steuerungszentrale, immer im Internet und damit mit der iCloud verbunden. Gebe ich also einen Befehl aus der Apple Home App ab (Licht an) geht dies an, auch wenn ich nicht zu Hause bin.

    Ich habe die App Home gesucht und dort auf Toggle Accessory State geklickt. Nun habe ich über den Punkt Auswählen den Shelly gesucht.

    Den Toggle Accessory State habe ich durchs lange drauf drücken und den aufpoppenden Menüpunkt Duplizieren.

    Der Shelly ist ein Schalter. Der erste Punkt aktiviert ihn, der zweite schaltet ihn aus.
    Was wir nun noch brauchen, ist ein Zeitpuffer. Ich habe hier 1 Sekunde gewählt. Fand ich ausreichend.
    Diesen Befehl findest du, indem du nach der Aktion „warten“ suchst. Nun schiebst du ihn noch in die Mitte und stellst die gewünschte Zeit ein.

    Der Kurzbefehl ist nun fertig.

    Widget und Kontrollzentrum

    Fange ich einmal mit dem Widget an. Einmal ins Widget Menü (lange mit einem Finger auf den Homebildschirm drücken). Dort über das + nach dem Widget Kurzbefehl suchen und hinzufügen. Nur noch den Kurzbefehl in das Widget suchen und fertig.

    Screenshot

    Das Kontrollzentrum ist mit diesen Funktionen seit iOS 18 neu. Ich habe das Menü komplett an meine Bedürfnisse angepasst. Heller/Dunkler, Lauter/Leiser habe ich tiefer gesetzt, da ich mit den Daumen dort leichter dran komme als so weit oben.

    Das erste was ich ändern würde ist allerdings die Option, ohne entsprerrung des iPhones in das Kontrollzentrum zu gelangen. Kann der Finder deines Telefons in dies Menü, kann er den Flugzeugmodus aktivieren. Eine Ortung ist somit nicht mehr möglich.
    Einfach in die Einstellungen -> Face ID & Code -> nach unten Scrollen und die Punkte
    – Kontrollzentrum
    – Wallet
    – Zubehör
    deaktivieren.

    Nun aber wieder zum Thema. Im Kontrollzentrum einmal durchs lange Drücken in den Bearbeitungsmodus und hier ein neues Steuerelement hinzufügen. Dort auf Kurzbefehle und den gerade erstellten Kurzbefehl raussuchen. Fertig.

  • Read it Later

    Read it Later

    Wer kennt es nicht. Du sitze im Wartezimmer oder einfach nur auf dem Sofa und scrollst durchs Internet. Dabei findest du einen Interessanten Beitrag wie ein Rezept oder, so geht es mir oft, einen Interessanten IT Beitrag den ich zu Hause am Rechner umsetzen möchte.
    Damit ich den Link zum Beitrag wieder finde, lasse ich den Tap im Browser meist offen.
    Doch es geht auch einfacher. In diesem Beitrag soll es um ein paar dieser Lösungen gehen, unter anderem Self Hosting.

    Beim Suchen durchs Internet bin ich auf ein paar App gestoßen. Einige davon sind Urgesteine und ich nutze diese bereits seit viel vielen Jahren. Doch seit dem ich meinen Homeserver betreibe bin ich neugieriger geworden und möchte immer mehr in eigener Hand betreiben. Dennoch, so ganz komme ich nicht um diese Apps drum herum.
    Ich fange mal an.

    Instapaper

    Die für mich bekannteste App ist INSTAPAPER. Instapaper speichert mit einem klick den Beitrag und zwar so, dass dieser Offline in der App lesbar ist. Werbung wird oft erkannt und ausgefiltert. Die App ist für die private Nutzung weitestgehend kostenlos. Sie ist schlicht und funktional. Sie besitzt für alle gängigen Browser ein Plugin und kann damit per One Klick den Beitrag speichern so das dieser auf allen Geräten angepasst lesbar ist. Für mich ist dies eine sehr gute App die ich seit Jahren nutze (vermutlich seit meinem ersten iphone, dem 3GS).

    Die App Reeder

    Wenn wir einmal bei Apps sind, dann möchte ich die Reeder App einmal vorstellen. Hierbei handelt es sich um eine RSS App. Auch diese App gibt es schon lange und wird ständig weiter entwickelt. Dabei ist sie nie überladen.
    Die Stärke die ich hier sehe, es wird kein Account benötigt wie bei Instapaper.
    Die Stärken:

    • man kann Apps wie Instapaper integrieren
    • RSS Abos erstellen
    • es gibt in der Teilen Funktion unter iOS den Punkt „Read Later with Reeder“

    Diese App gibt es für iOS und MacOS. Ich habe sie allerdings für beide Betriebsysteme kaufen müssen. Zudem befindet sich die App seit einigen Jahren in Version 5. Die Version 4 habe ich damals auch gekauft. Ob und wann eine Version 6 kommt, ist fraglich.

    Self Host

    Doch als Serverbetreiber hat man gerne seine Daten bei sich, zudem bastel und teste ich auch gerne neue Anwendungen.
    So habe ich mich auf die Suche nach Alternativen zu Instapaper und RSS begeben. Dabei bin ich auf zwei Docker Anwendung gestoßen und einer App die mit einem Kurzbefehl die Read it Later Funktion erfüllt.

    iA Writer

    Bevor ich zur Self Host Lösungen komme, beginne ich mit der App iA Writer. Diese App nutze ich gerne. Aktuell schreibe ich diesen Blogbeitrag mit der App. Sie gibt es für den Mac und iOS Geräten. Sie ist schlank und besitzt einen Fokus Modus. Ist der Fokus Modus aktiviert (Einschalten mit CMD + D) rutscht die Zeile in der ich mich befinde in die Mitte. Die Sätze und Absätze, an denen ich gerade nicht arbeite, sind grau und damit nicht hervorgehoben.
    Doch es soll um die Read it Later Funktion gehen und das ist mit dieser App mithilfe eines Kurzbefehls möglich. Diesen kann man dann auch ins Teilen Menü mit integrieren.
    Den Unterschied, den ich zu den anderen Apps die ich hier vorgestellt habe sehe, das die Beiträge gezielt in einem Ordner deiner Wahl gespeichert werden und das als Markdown. Ich habe mir in der Cloud meiner Wahl einen Ordner erstellt der Read-it-later heißt. Immer wenn ich einen Beitrag später einmal lesen möchte oder keinen Text raus kopieren möchte, kann ich dies einfach hier drüber als eine .txt Datei speichern.
    Den Kurzbefehl bekommt man schnell über die google Suche.

    Docker Anwendung Hoarder

    Ja und hier kommen wir nun endlich zu der Self Host Lösung. Doch auch sie hat pro und contra.
    Die App ist eine Bookmark Link Anwendung. Das heißt, mit einem Klick kannst du einen Link speichern. Die Links werden in der Anwendung geöffnet und Artikel können schön Formatiert gelesen werden. Der Nachteil: Internet ist Vorraussetzung.
    Für diese Anwendung gibt es im iOS App Store eine App mit der man seinen Server verbinden kann. Zudem für die gängigen Browser ein Plugin.
    Hier geht es zum Gib Repository https://github.com/hoarder-app/hoarder

    Docker Anwendung Omnivore

    Die Vermutlich interessanteste Docker Anwendung ist Omnivore. Omnivore ist eine kostenlose Open Source Lösung und ist eine direkte Konkurrenz zu Instapaper und Pocket. Du kannst den Dienst über https://omnivore.app/ Kostenlos nutzen. Es wird lediglich ein Benutzeraccount benötigt.

    Alternativ kann man Omnivore unter Docker selbst Hosten. Allerdings ist dies derzeit nicht ganz einfach. Ich habe Omnivore auf einem LXC unter Proxmox versucht zum laufen zu bekommen. Habe dem Container 8 GB Speicher gegeben und musste dann feststellen, das diese Anwendung mehr als das doppelte benötigt. Auch sind 1024MB RAM recht knapp. Das Docker Compose Skript ist recht groß und bedarf schon ein wenig Erfahrung. Diese Probleme kennt anscheint der Entwickler und plant Abhilfe.

    Ich bin auf meinem Server nur bis zur Anmeldung gekommen. Dann traten Fehler auf.

    Mein Fazit

    Schwer schwer. Alles noch nicht ganz nach dem ich gesucht habe. Self Host ja, aber mit Einschränkung.
    Etablierte Apps binden einen ggf. durch Accounts.
    Ich werde in den nächsten Monaten viel mit der Docker Anwendung Hoarder, iA Writer und der App Reeder arbeiten. Ich denke, dass diese drei Anwendungen für mich perfekt sind. Instapaper werde ich von Zeit zu Zeit sicherlich auch weiter nutzen.

  • WireGuard mit Web GUI

    WireGuard mit Web GUI

    Mit dem Update des neuen WG-Easy WireGuard bin ich nicht mehr auf meine Web GUI gekommen. Dies lag daran, das ein Passwort im Docker Run Befehl enthalten war. Dies muss in ein Passwort Hash ausgetauscht werden. Zeit für mich WireGuard komplett neu in einem LXC zu installieren.

    LXC Anlegen

    Ich habe mich hier für Ubuntu entschieden und da natürlich für das aktuellste System. Der LXC läuft bei mir in meiner Proxmox Umgebung.

    Installation

    Installation von curl, Docker und Docker-Compose

    # System Updaten und neu starten
    
    apt update && apt upgrade -y && apt autoremove -y && reboot
    
    # Installation von Curl, Docker und Docker-Compose
    
    apt install curl -y
    
    curl -sSL https://get.docker.com | sh
    
    apt install docker-compose -y
    
    # Optional kann man Portainer oder Dockge nutzen, allerdings beides kein muss. Für mich gerade angenehmer. Ich ahbe mich für Dockge entschieden. Es ist schlanker.
    
    mkdir -p /opt/stacks /opt/dockge
    
    cd /opt/dockge
    
    curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml
    nano compose.yaml
    
    # Ich habe die compose.yaml Datei noch angepasst indem ich container_name und hostname hinterlegt habe
    
      dockge:
        container_name: dockge
        hostname: dockge

    Nun noch Dockge starten mit der Ip:5001 und ein User und Passwort für Dockge erstellen.

    Installation von WireGuard

    In Dockge auf Compose klicken und ganz Rechts folgendes Skript einfügen und auf dich Anpassten an den Stellen wo ein # hinterlegt ist.

    version: "3.3"
    services:
      wg-easy:
        container_name: wg-easy
        environment:
          - WG_HOST=wg.dns.de #hier deine DNS Adresse eintragen. 
          - WG_DEFAULT_DNS=192.168.2.43 #hier dein PiHole oder auskommentieren mit Raute
          - LANG=de
        volumes:
          - ~/.wg-easy:/etc/wireguard
        ports:
          - 51820:51820/udp
          - 51821:51821/tcp
        cap_add:
          - NET_ADMIN
          - SYS_MODULE
        sysctls:
          - net.ipv4.conf.all.src_valid_mark=1
          - net.ipv4.ip_forward=1
        restart: unless-stopped
        image: ghcr.io/wg-easy/wg-easy
    networks: {}

    Nun auf Deployen klicken.
    WireGuard läuft nun. Das Problem ist nur, dass die Web GUI kein Login Passwort besitzt und dies ein Sicherheitsrisiko beinhaltet. Um ein Passwort zu hinterlegen links deinen Container anklicken (wg-easy) und dann steht unter Container >_Bash, da einmal drauf klicken. Hier erstellen wir nun ein Passwort Hash mit dem Befehl

    wgpw sicheres Passwort

    Es erscheint ein PASSWORD_HASH=$5g$34$eqvfgdshnxmewkfvdwadsfucv. Dies einmal Kopieren und wieder in unseren wg-easy Container. Die compose.yaml Datei nun Bearbeiten und unter environment dein gerade erstelltes PASSWORD_HASH=$5g$34$eqvfgdshnxmewkfvdwadsfucv einfügen. Wichtig jetzt, die Anführungsstriche im Hash entfernen und das $ in $$ erweitern. So sollte das Skript dann aussehen:

    version: "3.3"
    services:
      wg-easy:
        container_name: wg-easy
        environment:
          - WG_HOST=wg.dns.de #hier deine DNS Adresse eintragen. 
          - WG_DEFAULT_DNS=192.168.2.43 #hier dein PiHole oder aukommentieren mit Raute
          - PASSWORD_HASH=$$5g$$34$$eqvfgdshnxmewkfvdwadsfucv
          - LANG=de
        volumes:
          - ~/.wg-easy:/etc/wireguard
        ports:
          - 51820:51820/udp
          - 51821:51821/tcp
        cap_add:
          - NET_ADMIN
          - SYS_MODULE
        sysctls:
          - net.ipv4.conf.all.src_valid_mark=1
          - net.ipv4.ip_forward=1
        restart: unless-stopped
        image: ghcr.io/wg-easy/wg-easy
    networks: {}

    Speichern und Container neu Starten. Nun hat die WireGuard Web GUI wieder ein Passwort.

    Auf die Web GUI kommst du mit http://IP:51821.

    Ggf. noch Anpassen

    Ggf. muss in deiner Fritzbox noch der Post 51820 freigaben werden. Solltest du also keine VPN aufbauen, liegt das Problem da dran.

  • Nexterm – Server management

    Nexterm – Server management

    Hierbei handelt es sich um ein ganz frisches (2024) Projekt welches noch nicht lange auf dem Markt ist. Über einem YouTuber aus dem Englisch sprachigem Raum bin ich auf dies Projekt aufmerksam geworden.

    Quellen:
    https://docs.nexterm.dev
    https://github.com/gnmyt/Nexterm

    Mithilfe von Nexterm kann man über eine Web GUI eine Terminalverbindung aufbauen. Der Vorteil den ich in diesem Tool sehe ist die Bibliothek. Zu jedem LXC oder VM kann ein Terminal gespeichert werden. Einfach ein Doppelklick und man ist drin. Alles schön und sauber, übersichtlich beisammen.
    Eine weitere Stärke ist die VNC Funktion. Über diese kann man per Remote auf andere Desktops zugreifen.

    Das ganze ist über Docker einfach einrichtbar. Allerdings ist bei mir das Vertrauen in dieses junge Projekt noch nicht sehr hoch, dies auf einem öffentlichem Server betreiben zu wollen. Im Heimnetz spricht für mich nichts dagegen.

    Ich habe die Docker Compose.yml Datei genommen und diese in Dockge rein kopiert. Alternativ ist dies natürlich auch in Portainer möglich. Für die ganz fitten natürlich auch ohne dieser beiden Tools.

    Dies ist der Code von der offiziellen Webseite. Hier ist unter image die Version 1.0.1-OPEN-PREVIEW hinterlegt. Ggf. muss dies in der Zukunft angepasst werden z.B. auf eine Version oder :latest.

    services:
      nexterm:
        ports:
          - "6989:6989"
        restart: always
        volumes:
          - nexterm:/app/data
        image: germannewsmaker/nexterm:1.0.1-OPEN-PREVIEW
    volumes:
      nexterm:
  • 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.

  • WordPress seit nun 13 Jahren

    WordPress seit nun 13 Jahren

    Wäre ich damals, als ich mich vor 13 Jahren bei WordPress angemeldet habe dran geblieben, wo stände heute diese Webseite? Was für Funktionen hätte sie alles erhalten?

    Fragen die ich mir schon stelle dabei aber nicht traurig bin dies nicht durchgezogen zu haben.

    Meine Leidenschaft war das Basteln am Blog. Hier am Design, hier mal das Technische. Mal habe ich meine Webseite aus dem Keller selbst gehostet, mal über einen Anbieter im Rechenzentrum. Oft war ich zu Faul dran zu bleiben und habe nach dem erstellen des Designs die Webseite wieder eingestellt.

    Schade eigentlich. Das soll sich nun ändern. Freut euch. Ohne Zeitlichen druck soll hier nach und nach Leben auf der Seite entstehen. Dazu muss ich mich selbst erst finden und Blogge so vor mich hin.