Kategorie: HiTech

  • Omnivore – Der Read-it-later SelfHost Anbieter hört auf

    Omnivore – Der Read-it-later SelfHost Anbieter hört auf

    Noch im September habe ich Omnivore als die Interessanteste Docker Anwendung betitelt und nun geben die Entwickler das Aus bekannt.

    Omnivore ist eine Reat it Later Anbieter. Der Online Dienst schließt seine Tore. Auf deren Webseite bedanken sich die Entwickler und verweisen auf die SelfHost Anwendung.

    Als Grund geben die Entwickler wie so oft das fehlt Geld an.
    Zudem verweisen die Entwickler an das die Open Source Anwendung Wallabag und den Kostenpflichtigen Dienst Readwise, den ich bis dahin noch nicht kannte.
    Ich möchte an dieser Stelle auf meinen Artikel verweisen in dem ich mehrere Read it later Anwendungen vorstelle: https://blog.bitnike.de/?p=124

    Quellen:
    https://blog.omnivore.app/p/details-on-omnivore-shutting-down
    https://blog.bitnike.de/?p=124

  • Notion, Trillium, Docmost und co – Unser 2. Gehirn

    Notion, Trillium, Docmost und co – Unser 2. Gehirn

    In meinem Freundeskreis war ich der erste der seinen Kalender Digital hatte und ToDo’s online notierte. Damals hatte ich einen digitalen Organisier. Ein Gerät in Taschenformat mit Tastatur und einem kleinen Display. Damals gab es noch kein mobiles Internet. Meine Termine waren alle auf dem Gerät gespeichert.
    2009 hatte ich ein HTC Touch Handy. Mein erstes Smartphone nur mit Touch und Windows drauf. Auch hier habe ich meine Gedanken und Termine immer im Blick gehabt.

    Bei all diesen Geräten musste ich die interne Software nutzen die der Hersteller des Gerätes mir mitgegeben hat. Heute, 2024 gibt es Apps und viele Webanwendungen die fürs Smartphone angepasst sind. Das möchte ich mir zu nutzen machen und habe mich auf die Suche begeben, für mich die perfekte Notizen App zu finden.

    Was stelle ich mir vor?

    Auf der Suche nach „der Notiz App“ habe ich viele Funktionen gesehen. Doch keine App brachte alle Funktionen mit.

    Auf der Suche nach der Anwendung war mir aber schnell klar, meine Gedanken und Notizen sollen mir gehören. Sie sollen nicht in einem Rechenzentrum ausgelesen und verarbeitet werden.
    Die Anwendung soll auf Mobilgeräten sowie Mac/Linux nutzbar sein. Hier reicht mir eine Webanwendung.
    Die Anwendung sollte nicht überlagert sein. Ich mag es, wenn Anwendungen in denen ich arbeite aufgeräumt sind. Ich mich nicht erschlagen fühle. Der Funktionsumfang sollte aber gegeben sein.

    Welche Anwendungen habe ich mir angeschaut?

    Mal gucken ob ich sie noch alle zusammen bekomme.

    • Notiz App von Apple
    • Notion
    • Docmost
    • Trillium
    • Evernote
    • BookStack
    • Appflowy
    • Focalboard
    • iA Writer
    • Outline
    • Obsidian

    Bei einigen dieser Anwendungen bin ich länger hängen geblieben, andere waren schnell keine Option mehr.

    Gehen wir die Anwendungen einmal durch

    Notiz App von Apple

    Die Notiz App nutze ich schon lange. Es handelt sich dabei eher um Wegwerfnotizen. Notizen von kurzer Dauer. Es ist schwer Ordnung in dieser App zu behalten. Zudem ist sie nicht kompatibel zu Linux. Apple ist eben geschlossen. Der Funktionsumfang ist auch gering.

    Notion

    Notion ist der Platzhirsch und bietet einen enormen Umfang. Wer sich einmal mit Notion beschäftig hat, wird es vermutlich lieben. Der Funktionsumfang ist groß. Das Design sehr schön.
    Was mich hier aber abgeschreckt hat: die Daten liegen nicht bei mir auf dem Server. Auch benötigt die Einarbeitung auch seine Zeit. Die Tutorials auf YouTube zeigen schöne Anwendungen, doch meist für Schüler. Ich bin kein Schüler.
    Um auf seine Daten zugreifen zu können ist Internet Vorraussetzung.

    Docmost

    Dockmost ist ein sehr interessantes Projekt was ich weiter beobachte, allerdings nicht aktiv nutze. Ich hatte einen Beitrag geschrieben wie man Docmost in seinem Homelab selbst Hostet.
    Docmost ist noch in einem sehr jungen Entwicklungsstadium. Was ich so auf GitHub gesehen habe, ist der Entwickler alleine. Updates kommen, aber nicht in einem so großen Umfang.
    Für mich fehlt noch der Funktionsumfang.

    Trillium

    Trillium ist eine SelfHost Anwendung. Bei dieser Anwendung handelt es sich um ein sehr komplexes Notizprogramm was Webbasiert und per App läuft.
    Die Daten liegen bei einem selbst. Ich meine auch, dass Trillium Markdown unterstützt.
    Für mich ist Trillium in die enge Wahl gekommen. Trillium ist allerdings sehr komplex. Es brauch eine gewisse Einarbeitungszeit.
    Optisch spricht mich Trillium nicht so an.

    Evernote

    Mit Evernote habe ich in meiner Ausbildung gearbeitet. Diese Anwendung kann man nicht Selbst Hosten. Die Daten liegen somit nicht bei dir. Auch ist der Funktionsumfang in der Basis Version beschränkt was mir nicht gereicht hat.

    BookStack

    BookStack nutze ich täglich. Es ist mein eigenes kleines Wiki. Hier dokumentiere ich wie ich meinen Server Administriere.
    BookStack kann man selbst Hosten. Es ist aufgebaut in Regale, in denen Bücher stehen. Die Bücher haben Kapitel und Seiten. Das System macht BookStack sehr orientiert.
    Die Regale sehe ich z.B. als IT, Kochen, Reisen, etc.
    Die Bücher können im Regal IT sein Homeserver, Proxmox, Docker, Linux, Mac.
    Oder im Regal Kochen: Schnellkochtopf Rezepte, Teig Rezepte, Kuchen Rezepte
    Kapitel und Seiten sind denke klar.

    Dennoch ist BookStack für mich kein Notiz App. Es hält Informationen permanent fest. Der Anwendungsbereich ist ein anderer.

    Appflowy

    Wieso Appflowy aus meiner Liste geflogen ist, kann ich nicht mehr zu 100% sagen. Man musste was bei der Installation meine Freigeben und das System öffnen. Es gibt wenige Tutorials zu Appflowy. Für mich was es nicht stimmig.

    Focalboard

    Focalboard sieht sich als Alternative zu Trello und Notion. Was ich allerdings gesehen habe, würde ich eher sagen, dass es eine Alternative zu Trello ist. Es ist eine Anwendung die Kanban sehr gut umsetzt.
    Als Notiz App sehe ich diese Anwendung nicht.

    iA Writer

    iA Writer ist eine tolle App die Markdown unterstützt. Leider keine Linux Version. Auf dem Mac nutze ich sie viel. Der Funktionsumfang ist ausreichend. iA Writer Glänzt mit Schlichtheit. Beim schreiben gibt es keine Ablenkungen.
    Durch das Markdown maximale Kompatibilität.

    Outline

    Outline habe ich nicht getestet. Was ich aber gesehen habe, ist Outline das Gegenstück zu BockSack. Da ich BookStack bereits nutze, habe ich mich mit Outline nicht tiefer beschäftigt.
    Was ich allerdings gesehen habe: Bei BookStack erstellt man Seiten, speichert diese und wenn man was bearbeiten möchte, muss man auf bearbeiten klicken.
    Bei Outline kann man diese Funktion deaktivieren. Diese Funktion ist soweit ich weiß, bei BookStack nicht möglich. Das macht Outline wieder interessant.
    Doch auch diese App ist es nicht geworden, sondern …

    Obsidian

    Ja, es ist Obsidian geworden. Obsidian ist zwar nicht OpenSource, speichert allerdings keine Daten bei sich ab. Obsidian ist gegenüber externen Entwicklern sehr offen. Es können Plugins installiert werden. Das Programm kann man somit auf seine Bedürfnisse anpassen. Der Funktionsumfang ist enorm.
    Dateien werden als txt gespeichert in der Markdown Language. Es fallen keine Kosten an. Es gibt Obsidian für alle gängigen Systeme als App.

    Doch zwischen dem ganzen Pro möchte ich hier auch der Vollständigkeit die negativen Punkte ansprechen.
    Obsidian ist extrem komplex. Ich habe mir auf YouTube eine gut 5 Stundenschulung (6 Teile) angesehen um die App produktiv nutzen zu können. Klar muss man diesen Schritt nicht gehen, doch wenn man einmal dabei ist sich in eine Anwendung einzuarbeiten, sollte man es richtig machen.
    Obsidian ist auch keine schöne Anwendung, kann aber durch Plugins super individuell angepasst werden.

    Ich habe mich in diese Anwendung rein gearbeitet, weil ich mir viele Notizen aufschreibe und dabei irgendwann den Überblick verliere.

    Wer weiß den schon, was er letztes Jahr alles sich notiert hat?!

    Man kann Seiten verbinden, aber auch einzelne Absätze in einem anderen Beitrag verbinden.
    Durch Markdown ist eine Maus fast unnötig und ich kann mich komplett auf den Text konzentrieren.

    Mein Fazit

    Suchst du eine SelfHost Anwendung, kann ich dir BookStack und Trillium empfehlen, ggf. Outline. Reicht dir eine schlanke Notion Alternative, ist Docmost vielleicht eine Option.
    Möchtest du mehr und bist bereit dich in eine Notizanwendung einzuarbeiten, empfehle ich dir Obsidian. Die Markdown Texte sind mit WordPress, BookStack und co kompatible.
    Wer eine schlanke App sucht die Markdown auf Mac und iOS unterstützt, wird mit iA Writer glücklich.

    Quellen:

    KI Bild von https://www.canva.com

  • 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
  • Nexterm

    Nexterm

    Die Open Source Server-Management-Software für SSH, VNC und RDP.

    Beim Durchstöbern von GitHub bin ich auf das Open Source Projekt Nexterm gestoßen. Mit dieser Software kannst du deine Server per SSH, VNC und RDP ansteuern und verwalten.

    Ich betreiben Nexterm im eigenen LAN. Über einen Reverse Proxy wäre Nexterm natürlich aus dem Web auch erreichbar. Hier sehe ich allerdings ein Sicherheitsrisiko was ich nicht eingehen wollte. Zudem habe ich auf meinen Mobilgeräten eine VPN Verbindung eingerichtet und komme so über den Browser jederzeit auf meinen Server (klappt super mit dem iPad, Smartphone sind vom Display vielleicht zu klein um produktiv damit zu arbeiten).

    Nexterm nutze ich fast täglich. Der Vorteil ist: ich sehe auf einem Blick meine Server und kann mich mit einem Doppelklick direkt verbinden. IP-Adresse, Nutzer und Passwörter sind hinterlegt, so dass ich nicht erst noch gucken muss, wie war den noch mal die IP vom Server, der Nutzer und das Passwort.

    Die Installation ist denkbar einfach über ein Docker Compose Skript. Das Tool befindet sich in der frühen Fase der Entwicklung. Vor der Installation guckt bitte, welche Stabile Version gerade aktuell ist.

    services:
      nexterm:
        ports:
          - 6989:6989
        restart: always
        volumes:
          - nexterm:/app/data
        image: germannewsmaker/nexterm:1.0.2-OPEN-PREVIEW
    volumes:
      nexterm: null
    networks: {}

    Quelle: https://github.com/gnmyt/Nexterm

  • Linux, aller Anfang muss nicht schwer sein

    Linux, aller Anfang muss nicht schwer sein

    Aus irgend einem Grund bist du genau hier auf diesem Blogbeitrag gelandet. Du hast viel von Linux gehört, findest das System interessant und möchtest mehr erfahren über Linux, weißt aber nicht wie du in die Welt von Linux einsteigen kannst?
    In diesem Beitrag möchte ich dir von meinem Weg in die Linux Welt erzählen.

    Irgendwann in den 90er hatte ich mir mal eine CT Zeitung geholt in der lag eine SUSE Linux installations CD bei. Neugierig wie ich war, habe ich mir diese Installiert und war überwältigt. Es hatte soviel Ähnlichkeit mit Windows. Es gab eine grafische Oberfläche (ich glaube die erst Version von KDE). Auch das Termin fand ich interessant. Es sah besser aus als MS-DOS.

    Doch das Anwendungsspektrum für einen jungen Mann war zu gering. Ich wollte ab und an Zocken und das war damals unter Linux nicht möglich. Windows war da der Platzhirsch. Es kam wie es kommen musst, ich nutze SUSE nicht mehr und löschte es schließlich von meiner Platte.

    Ich hatte immer mal wieder einen neuen Einstieg in Linux gewagt. Es hab Knoppix, Linux Mint, Ubuntu. Ich habe sie alle mal getestet, konnte mich allerdings nie lange damit beschäftigen.

    Der Wiedereinstieg in Linux

    Ich fing an mich für die kleinen Raspberry Pi’s zu interessieren. Ich schaute bei YouTube nach Projekten und baute diese nach. War ein Projekt abgeschlossen, folge das nächste und so weiter und so weiter. Meist habe ich die SD-Karten wieder formatiert um den Pi für ein neues Projekt zu nutzen. Aus ein Pi wurden schließlich drei oder vier und ich dachte mir, 3 Pi’s sind genauso teuer in der Unterhaltung wie ein kleiner MiniPC. Also habe ich meine Pi’s verkauft und mir einen MiniPC zugelegt mit dem Betriebsystem Proxmox. Der MiniPC dient mir nun als Server. Die Möglichkeiten sind enorm. Ich fing an Virtuelle Maschinen zu betreiben und diese zu administrieren.
    Hier mal ein paar Anwendungen die ich unter Proxmox am laufen habe:

    • PiHole
    • HomeAssistent
    • WordPress
    • Plex
    • WireGuard
    • und diverse Docker Container

    Wenn dir das alles nichts sagt, Google mal. Ich glaube du wirst mindestens eins davon interessant finden.

    Fazit

    Ich habe Linux Mint auf meinem Mac als Zweitsystem, nutze es allerdings sehr wenig. Die Möglichkeiten die mir Apple bietet sind einfach enorm. Sämtliche Apps werden für Apple hergestellt.
    Unter Linux laufen viele Anwendungen bei mir über so genante Container und sind übers Web erreichbar.
    Und genau hier kommt nun mein Tipp: Schaffe dir einen Pi oder vielleicht direkt einen kleinen MiniPC an, gerne auch gebraucht. Installiere dort das Linux Betriebsystem Proxmox. Über den Webbrowser kannst du alles aus deinem Netz administrieren und erste Erfahrungen mit Linux sammeln. Dies ist, wie ich finde ein guter und einfacher Einstieg in die Linux Welt.

  • 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

  • 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: