Schlagwort: Linux

  • LinkAce ist in Version 2.0 verfügbar

    LinkAce ist in Version 2.0 verfügbar

    LinkAce ist ein selbst gehostetes Lesezeichenarchiv (Bookmarks) welches Kostenlos und Open Source ist. Ich habe es bereits schon einige Zeit im Einsatz und finde es sehr übersichtlich und schick.

    Der Entwickler schreibt auf seinem Blog:

    Unterstützung für mehrere Benutzer

    LinkAce unterstützt jetzt mehrere Benutzer und verfügt über ein verbessertes Berechtigungssystem sowie neue Sichtbarkeitseinstellungen für Links, Listen und Tags. Folgendes ist neu:

    • Administratoren können Systemeinstellungen verwalten und neue Benutzer einladen.
    • Sie können jetzt Links, Listen und Tags als öffentlich, intern oder privat festlegen und steuern, wer sie sehen kann – ob öffentliche oder angemeldete Benutzer.
    • Links, Listen und Tags zeigen jetzt den Namen des Autors an, sodass klar ist, wer sie hinzugefügt hat.
    • Jeder Benutzer verfügt über eigene API-Schlüssel für die Integration von Drittanbieter-Apps und Administratoren können auch systemweite API-Schlüssel erstellen.

    LinkAce unterstützt jetzt auch Single Sign-On (SSO) über OAuth oder OIDC, wobei bereits 12 Anbieter integriert sind, darunter eine generische OIDC-Option.

    Benutzeroberfläche

    Die Benutzeroberfläche wurde für eine bessere Struktur, Konsistenz und Lesbarkeit komplett überarbeitet.

    • Drei neu gestaltete Anzeigemodi für Links: Kompakt-, Detail- und Kartenansicht. Sie können direkt über die Benutzeroberfläche ganz einfach zwischen ihnen wechseln, ohne in die Einstellungen gehen zu müssen.
    • Die Hauptnavigation wurde optimiert, sodass weniger Klicks zur Navigation erforderlich sind.
    • Beim Hinzufügen oder Bearbeiten von Links werden jetzt Listen und Tags vorgeladen, was den Vorgang beschleunigt und nahezu sofortige Suchvorgänge ermöglicht.
    • Passen Sie LinkAce mit einem benutzerdefinierten Logotext, einem zusätzlichen Fußzeilenlink oder einer benutzerdefinierten Kontaktseite an.

    Darüber hinaus können Sie jetzt Links, Listen und Tags gleichzeitig bearbeiten, um die Verwaltung zu beschleunigen.

    Verwaltung

    • Audit-Protokolle wurden neu geschrieben und protokollieren jetzt auch Ereignisse auf Systemebene.
    • Allen beim Import verarbeiteten Links wird ein eindeutiger Tag hinzugefügt, um sie später identifizieren zu können.
    • Es gibt einen dedizierten CLI-Befehl zum Testen der E-Mail-Konfiguration.

    Ausführen von LinkAce

    • Für die einfache Bereitstellung von LinkAce in Ihrem Kubernetes-Cluster steht ein Helm-Diagramm zur Verfügung.
    • Das Docker-Image für LinkAce wurde neu geschrieben, basiert nun auf dem Caddy-Webserver und läuft standardmäßig ohne Rootberechtigung.
    • Das Setup wurde überarbeitet und unterstützt jetzt auch SQLite und PostgreSQL.

    Installation

    Ich habe LinkAce unter Dockge am laufen. Wenn du Dockge noch nicht kennst, dann solltest du dich mal dazu informieren. Es ist vergleichbar mit Portainer nur schlanker. Es sind alle wichtigen Funktionen am Board.

    Für die, die weder Portainer noch Dockge verwenden möchten, Ordner erstellen und einmal eine Docker Compose Datei sowie eine .env.

    Hier das Docker Compose Skript. Es besteht aus 3 Containern. Einmal LinkAce, dann eine Datenbank und Redis für die Performance. Wer nicht gerne mit MariaDB arbeitet, kann auch alternativ Postgres und SQLite verwenden. Ich habe das fertige Skript von GitHub genommen.

    services:
      # --- LinkAce
      app:
        image: docker.io/linkace/linkace:latest
        restart: unless-stopped
        depends_on:
          - db
        ports:
          - 8123:80 #ggf Port anpassen bei der 8123
          # Remove the hash of the following line if you want to use HTTPS for this container
          #- "0.0.0.0:443:443"
        volumes:
          - ./.env:/app/.env
          - ./backups:/app/storage/app/backups
    
      # --- Database
      db:
        image: docker.io/library/mariadb:11.5
        restart: unless-stopped
        command: mariadbd --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
        environment:
          - MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
          - MYSQL_USER=${DB_USERNAME}
          - MYSQL_PASSWORD=${DB_PASSWORD}
          - MYSQL_DATABASE=${DB_DATABASE}
        volumes:
          - db:/var/lib/mysql
    
      # --- Cache
      redis:
        image: docker.io/bitnami/redis:7.4
        restart: unless-stopped
        environment:
          - REDIS_PASSWORD=${REDIS_PASSWORD}
    
    volumes:
      db: null

    Nun kommt die .env Datei. Hier sollten zumindest 2 Passwörter geändert werden. Einmal das DB_PASSWORD und einmal das REDIS_PASSWORD.

    ## LINKACE CONFIGURATION
    
    # Der App-Schlüssel wird später generiert, bitte belassen Sie es dabei
    APP_KEY=someRandomStringWith32Characters
    
    ## Konfiguration der Datenbankverbindung
    ## Achtung! Diese Einstellungen werden während des Web-Setups konfiguriert, bitte ändern Sie sie jetzt nicht.
    # Einstellen des Datenbanktreibers 
    DB_CONNECTION=mysql
    # Stellen Sie hier den Host Ihrer Datenbank ein
    DB_HOST=db
    # Stellen Sie hier den Port Ihrer Datenbank ein
    DB_PORT=3306
    # Legen Sie hier den Namen der Datenbank fest
    DB_DATABASE=linkace
    # Legen Sie sowohl den Benutzernamen als auch das Passwort des Benutzers fest, der auf die Datenbank zugreift
    DB_USERNAME=linkace
    # Schließen Sie Ihr Passwort in Anführungszeichen (") ein, wenn es Sonderzeichen enthält
    DB_PASSWORD=ChangeThisToASecurePassword!
    
    ## Redis-Cache-Konfiguration
    # Legen Sie hier die Redis-Verbindung fest, wenn Sie sie verwenden möchten
    REDIS_HOST=redis
    REDIS_PASSWORD=ChangeThisToASecurePassword!
    REDIS_PORT=6379
    
    ## Mail-Konfiguration
    MAIL_FROM_ADDRESS=your@email.com
    MAIL_FROM_NAME=LinkAce
    # Legen Sie hier den Treiber fest, der für den E-Mail-Versand verwendet wird, Standard ist `log`.
    MAIL_MAILER=smtp
    # Legen Sie hier den SMTP-Host und seinen Port fest
    MAIL_HOST=smtp.mailtrap.io
    MAIL_PORT=2525
    # Legen Sie hier den Benutzernamen fest, der zur Verbindung mit dem SMTP-Server verwendet wird
    MAIL_USERNAME=null
    # Legen Sie hier das Passwort für die Verbindung zum SMTP-Server fest
    MAIL_PASSWORD=null
    # Wenn Ihr SMTP-Server verschlüsselte Verbindungen verwendet, aktivieren Sie dies hier, indem Sie die Variable auf „tls“ setzen.
    MAIL_ENCRYPTION=null

    Nun ganz wichtig! Es wird noch ein APP_KEY benötigt welcher bei der Installation erstellt wird. Damit das Tool Schreibrechte hat, muss die Datei einmalig andere Lese-/Schreib-Rechte bekommen und zwar chmod 666 .env.
    Dies kann später wieder geändert werden.

    Nun kannst du die Container ausrollen und mit http://Deine-IP:8123 auf dein LinkAce zugreifen. Hier müssen nun noch ein paar Einstellungen vorgenommen werden, z.B. die Konfiguration der Datenbank. Das hat leider bei mir immer zu einem Fehler geführt. Sollte der bei dir auch auftreten, kannst du das Problem wie folgt lösen:

    Gehe über die Konsole in das Verzeichnis in der die Docker Compose Datei liegt und gehe wie folgt vor:

    # Container herunter fahren
    docker compose down
    
    # Das richtige Volume finden
    docker volume ls
    
    # Volume löschen (Standart linkace-db)
    docker volume rm linkace-db
    
    #Docker Compose Skript neu ausrollen
    docker compose up -d

    Nun solltest du die Installation abschließen können.

    Links

    https://github.com/Kovah/LinkAce

    Eine Demo zu LinkAce findest du hier: https://demo.linkace.org/guest/links

  • Linux – Der Wechsel von MacOS auf Linux

    Linux – Der Wechsel von MacOS auf Linux

    Ich glaube es war 2012 als ich mir meinen ersten Mac geholt habe. Damals den MacMini. In dieser Zeit habe ich viel gezockt und ein Wechsel von Windows auf MacOS war eigentlich nicht möglich.
    Genau vor dieser Herausforderung stand ich auch wieder. Mein MacBook Pro aus Mitte 2015 ist eine Leistungsmaschine, … gewesen. Für den Mac hatte ich 2016 gut 2500€ bezahlt. 8 Jahre später war aus meinem Leistungsstarkem Rechner mit MacOS nicht mehr viel über. Das Betriebssystem MacOS hat meinen Mac so langsam gemacht. Dabei habe ich nur noch Sicherheitsupdates bekommen. Neue Funktionen sind mir vorenthalten worden. Vermutlich zu recht. Mein MacBook Pro ist alt und für MacOS von der Performance nicht mehr geeignet. Die Mac’s sind gedacht Produktiv zu arbeiten, immer am Zahn der Zeit.

    Doch aufgeben wollte ich mein Mac nicht. Ich bin mit dem Display und der Tastatur sehr zufrieden. Ich liebe das Design. Das Front Cover mit dem leuchtendem Apfel habe ich mit Aufklebern gepimpt. Aus dem Grund habe ich kurzzeitig den OpenCore Legacy Patcher benutzt. Ich konnte mit Hilfe dieses Tools das aktuellste Betriebssystem auf meinen Mac installieren. Doch das hatte Nachteile. Mein SD Kartenleser wurde z.B. nicht erkannt, aber der Mac lief und das auch halbwegs stabil.

    Doch irgendwie wusste ich, dass ich mir selbst einen vormache. Ich brauche einen neuen Mac, oder?
    Da ich bereits meinen Server mit Linux betreibe, war ich auf Linux als Daily Driver neugierig. Es mal testen. Mich damit auseinander setzen und gucken ob ich überhaupt noch einen Mac brauche. Vielleicht reicht mir dieser Mac ja noch einige Jahre.

    Wann bin ich umgestiegen auf Linux

    Es war ca. September 2024 als ich mein MacOS von meinem MacBook gegen Linux Mint ausgetauscht habe. Den Anlass habe ich auch gleich genutzt um mir eine größere interne Festplatte einzubauen. In meinem MacBook befindet sich nun eine 2Tb SSD.

    Vor welchen Problemen stand ich bis jetzt

    Ich hatte wenige Tage mit Linux Mint 21 zu tun, dann kam auch schon Linux Mint 22 auf den Markt. Das Netz riet vor einem schnellen Wechsel ab. Also wartete ich. Doch anscheint nicht lange genug. Ich installierte Linux Mint 22 und hatte im Anschluss grafische Probleme. Ich hatte Icons auf dem Schreibtisch (unter Windows Desktop genannt) mit wenigen Farben gesehen. Also musste ich wieder auf Mint 21 zurück wechseln, was nicht schlimm ist, den das System bekommt weiterhin Updates.

    Ein weiterer Punkt ist das Zocken. Ich kann zwar Steam installieren, auch die Spiele herunterladen, doch sie Spiele starten nicht. Ich denke, das dies Problem mit meiner Grafikkarte zu tun hat. In meinem MacBook ist eine zusätzliche Grafikkarte verbaut. Ich hatte mich so auf Anno gefreut. Vielleicht wäre das Problem mit einer anderen Linux-Distributionen behoben.

    Mein MacBook lädt unfassbar lange auf. Unter MacOS ging es schneller. Allerdings ist in meinem MacBook auch nicht mehr der original Akku. Gut möglich das das Problem am neuen Akku liegt. Auch ist der Akku gefühlt schneller leer als damals mit MacOS. Wie gesagt, ein Gefühl und nicht mehr der original Akku.

    Mein Hobby ist die Fotografie. Ich vermisse Photoshop und Lightroom und genau das ist mein größtes Problem mit Linux. Es gibt unter Linux keine Alternative zu Lightroom und Photoshop. Wenn es zumindest Affinity Photo geben würde. Es gibt keine Alternative die mich zufrieden stimmt. Gimp ist für mich keine Alternative!

    Auch erstelle ich gerne Fotobücher. Bis jetzt habe ich die Software von den Druckereien genutzt, einmal auch InDesign und meist Affinity Publisher. Es gibt für Linux alternativen. Doch grafisch sehen die nicht so aus, als seien die Programme im Jahr 2025 angekommen.

    Für das Problem Photoshop habe ich noch das iPad was eine halbwegs gute Alternative ist. Für das erstellen von Fotobüchern schaue ich mich noch um.

    Auch fehlt mir ein bisschen der Apple Kosmos. Apps vom iPad auch auf dem Rechner zu haben. Wobei ich damit irgendwie klar komme. Also Cloud Lösung nutze ich Nextcloud. Viele Funktionen der iCloud nimmt mir mein Server ab. Beispiel die Foto-Archiv-App Immich, zu der ich einen Beitrag geschrieben habe.

    Gibt es Vorteile

    Ja. Mit Linux bekommt man ein super Betriebssystem was flexible anpassbar ist. Auch wenn es nicht so einen schönen App Store wie bei Apple gibt, gibt es einen. Hier findet man die meisten Anwendungen und kann die per Klick installieren.
    Auch wenn bei mir Spielen nicht funktioniert, kann ich sagen, auf meinem SteamDeck funktioniert das Zocken richtig, richtig gut.

    Fazit

    Ich werde mein Linux auf meinem MacBook behalten, allerdings werde ich mir auch eines Tages wieder einen Mac holen. Ich nutze gerne die Photoshop und auch die Affinity Produkte. Solange diese Produkte nicht für Linux verfügbar sind, wird für mich ein Umstieg schwer fallen.
    Wer dies nicht brauch, der wird mit Linux Mint vermutlich sehr zufrieden sein. Es gibt Office alternativen, die ich allerdings sehr wenig benutze. Optional gibt es, wer gerne Office365 nutzen möchte, eine Webversion von Excel, PowerPoint und Co. Das funktioniert sehr gut über den Browser.

    Kurz noch meine Meinung zur Linux Zukunft: Linux wird meiner Meinung nach immer mehr in unserer Gesellschaft etabliert. Microsoft müllt ihr System voll. Macs sind nicht für jedermann bezahlbar. Die Anwendung von Linux ist „einfach“. Die Community ist bereits heute schon riesig. Das System ist schick und es gibt eigentlich für alles ein Programm. Was eben fehlt sind die großen, bekannten Player wie Adobe Produkte, Office365, etc. Zudem läuft Linux auf der langsamsten Möhre von PC und das meist sehr stabil.
    Mein Tipp: Probier es mal aus.

  • Immich, die SelfHost Google Foto Alternative

    Immich, die SelfHost Google Foto Alternative

    Wir alle kennen und nutzen Google. Die Suchmaschine und auch Google Fotos sind spitze. Mal eben ein Foto oder Album Plattform übergreifend teilen, mit Google kein Problem.
    Doch Google lebt von unserem Internet verhalten und wirklich wissen tut keiner, was der Riese mit unseren Daten macht. Vielleicht stört dich das nicht, doch du lebst ständig an der Cloud Speicher Grenze. 15 Gb kostenloser Cloud Speicher sind zwar ganz nett, aber reicht für Fotoalben und Backups nicht lange.

    Vielleicht war das der Grund, dass ein paar Programmierer das Open Source Projekt Immich in die Welt gerufen haben.
    Immich ist angelehnt an Google Fotos nur als SalfHost Lösung. Es gibt eine App für Apple und Google Geräte, sowie eine Weboberfläche.

    Was du dafür brauchst ist ein kleiner MiniPC. Vermutlich reicht ein Raspberry Pi 5 schon aus.

    Installation

    Mit der Anleitung tue ich mich tatsächlich schwer. Ich sag dir mal, wie es bei mir läuft. Solltest du dies bei dir ähnlich aufsetzen wollen, kannst du dich melden.

    Ich nutze Proxmox und habe dort einen Priviligierten LXC am laufen. Der LXC hat eine Anbindung zu einem Netzlaufwerk. Ich nutze hier das SMB Protokoll da dies System übergreifend ist. Unter iOS, MacOS, Linux, Androide und Windows wird die SMB Freigaben erkannt. Möchte ich an meine Fotos ohne den „Umweg“ über die Webseite oder App, kann ich mein Netzlaufwerk aufrufen und die nötigen Fotos dort raus kopieren. Dies ist z.B. eine gute Option wenn du einen NAS zu Hause im Einsatz hast. Immich bietet dir eine schöne grafische Weboberfläche, die Daten selbst sind auf dem NAS gesichert.

    Ich greife auf mein Immich über mein internes Netzwerk zu. Von unterwegs nutze ich einen VPN mit OnDemond Einstellung. Ich bin praktisch mit meinem Handy immer zu Hause und aus dem Grund habe ich keinen Reverse Proxy dazwischen geschaltet, ist aber möglich.

    Docker und Dockge installation

    Ausgehend von einem Linux System auf Debian.

    # System Aktualisierung
    apt update && apt upgrade -y && apt autoremove -y && reboot
    
    # Installation von Docker 
    ## 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
    ## Ordner erstellen
    mkdir -p /opt/stacks /opt/dockge
    
    ## und ins Verzeichnis wechseln
    cd /opt/dockge
    
    ## Nun das Compose Skript herunterladen
    curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml
    
    ## nun noch den Container ausrollen
    docker compose up -d
    
    ## Dockge ist unter erreichbar
    http://192.168.IP.IP:5001

    Installation von Immich

    Von der GitHub Seite habe ich mir das Skript herunter geladen und unter Dockge auf +Compose geklickt. Dort folgendes Skript eingefügt:

    #
    # WARNING: Make sure to use the docker-compose.yml of the current release:
    #
    # https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
    #
    # The compose file on main may not be compatible with the latest release.
    #
    
    name: immich
    services:
      immich-server:
        container_name: immich_server
        image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
        # extends:
        #   file: hwaccel.transcoding.yml
        #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
        volumes:
          # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
          - ${UPLOAD_LOCATION}:/usr/src/app/upload
          - /etc/localtime:/etc/localtime:ro
        env_file:
          - .env
        ports:
          - 2283:2283
        depends_on:
          - redis
          - database
        restart: always
        healthcheck:
          disable: false
      immich-machine-learning:
        container_name: immich_machine_learning
        # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
        # Example tag: ${IMMICH_VERSION:-release}-cuda
        image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
        # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
        #   file: hwaccel.ml.yml
        #   service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
        volumes:
          - model-cache:/cache
        env_file:
          - .env
        restart: always
        healthcheck:
          disable: false
      redis:
        container_name: immich_redis
        image: docker.io/redis:6.2-alpine@sha256:905c4ee67b8e0aa955331960d2aa745781e6bd89afc44a8584bfd13bc890f0ae
        healthcheck:
          test: redis-cli ping || exit 1
        restart: always
      database:
        container_name: immich_postgres
        image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
        environment:
          POSTGRES_PASSWORD: ${DB_PASSWORD}
          POSTGRES_USER: ${DB_USERNAME}
          POSTGRES_DB: ${DB_DATABASE_NAME}
          POSTGRES_INITDB_ARGS: --data-checksums
        volumes:
          # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
          - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
        healthcheck:
          test: pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" ||
            exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}"
            --username="$${POSTGRES_USER}" --tuples-only --no-align
            --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM
            pg_stat_database')"; echo "checksum failure count is $$Chksum"; [
            "$$Chksum" = '0' ] || exit 1
          interval: 5m
          start_interval: 30s
          start_period: 5m
        command: postgres -c shared_preload_libraries=vectors.so -c
          'search_path="$$user", public, vectors' -c logging_collector=on -c
          max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on
        restart: always
    volumes:
      model-cache: null
    networks: {}

    und nun noch die .env Datei. Diese muss bearbeitet werden und zwar an folgenden Punkten:

    UPLOAD_LOCATION –> Hier dein bevorzugtes Verzeichnis eintragen. Wie oben beschrieben, nutze ich eine SMB Freigabe die unter /mnt/immich zu finden ist.

    DB_DATA_LOCATION –> Das Datenbank Verzeichnis habe ich gelassen. Kann optional angepasst werden.

    TZ –> Die Zeitzone habe ich auf Deutsch gestellt. (Europe/Berlin)

    DB_PASSWORD –> Das Datenbank Passwort sollte keine Sonderzeichen beinhalten. Nur a-Z, A-Z und 0-9.

    DB_USERNAME –> Optional kann man dies noch anpassen.
    DB_DATABASE_NAME –> Optional kann man die noch anpassen.

    # 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=./upload
    ## Es kann wie bei mir ein Verweis auf einen gemounteten Ordner gemacht werden. Beispiel: /mnt/immich/upload
    # The location where your database files are stored
    DB_DATA_LOCATION=./datenbank
    
    # 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=PASSWORT
    
    # The values below this line do not need to be changed
    ###################################################################################
    DB_USERNAME=postgres
    DB_DATABASE_NAME=immich

    Nun auf Deploy und der Container wird erstellt. In Immich kann ich dir 2 Einstellungen noch empfehlen. Unter Verwaltung – Einstellungen – Speichervorlage – Speichervorlagen-Engine aktivieren.

    Diese Einstellung legt einen Ordner an nach deinen Einstellungen. Zum Beispiel /2025/Januar/ Foto.jpg oder /2025/2025-01-31/Foto.jpg

    Meine Vorlage sieht so aus:

    {{y}}/{{y}}-{{MM}}-{{dd}}/{{y}}-{{MM}}-{{dd}}_{{H}}-{{mm}}-{{ss}}-{{filename}}
    
    /2022/2022-02-03/2022-02-03_4-56-05-IMAGE_56437.jpg

    Eine zweite Einstellung ist der User Name. Nach der Installation wird der Ordner Admin genannt. Diesen habe ich geändert in meinen Namen. Dies kannst du unter Kontoeinstellungen – Konto – Speicherpfad.

  • The Booze of Monkey Island – Der Klassiker kostenlos zum Downloaden

    The Booze of Monkey Island – Der Klassiker kostenlos zum Downloaden

    Die Kinder der 80-90er Jahren kennen alle das Spiel oder zumindest den Titel: Monkey Island.

    Die Spiele aus der Serie sind im Comic-Look durch die Firma LucasFilm Games erschienen. Ich selbst hatte damals mein erstes Monkey Island noch auf Disketten. Das waren Datenträger mit ich meine 2,4MB. Auch was eine Nostalgie in der ich mich hier gerade befinde.

    Doch ich habe nie Monkey Island durchgespielt. Das kann ich nun nachholen. Aus der Reihe ist nun ein Teil kostenlos erhältlich: The Booze of Monkey Island

    Das Spiel selbst gibt es für die gängigen Betriebssysteme Windows, MacOS und Linux.

    Den Link zum Spiel The Booze of Monkey Island

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

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