Schlagwort: Self Host

  • Notion Alternative Anytype (Self-host)

    Notion Alternative Anytype (Self-host)

    Ich habe bereits von Docmost als Notion Alternative geschrieben und Docmost ist auch eine tolle Alternative. Docmost ist im Vergleich zu Notion schlank und übersichtlich. Doch wer mehr Funktionen benötigt, wird wohl immer wieder zu Notion wechseln. Das muss aber nicht sein. Es gibt eine Software, die vom Funktionsumfang an Notion heran kommt: Anytype.

    Loslösen von der USA

    In den Sozialen Medien lese ich immer mehr Beiträge das sich Menschen von US Firmen loslösen wollen. Eine Möglichkeit ist das Hosten durch einen eigenen Server. Dieser kann z.B. über eine On-Demand-VPN oder einem Reverse proxy erreichbar sein.

    Kurz meine Meinung

    Ich habe Spaß am Selbst Hosten und mache das gerne. Der Lerneffekt ist enorm. Allerdings bleibt die Verantwortung bei mir. Bei einem Datenverlust, ist viel Arbeit futsch. Der Cloud Service aus der USA ist mit der beste. Das Apple Ökosystem funktioniert hervorragend. Möchte ich mich also komplett lösen von der USA? – Nein. Doch wo ich es mir zutraue, probiere ich mich gerne aus.

    Installation

    Voraussetzung

    Bei mir läuft Anytype in einem LXC auf Proxmox. Auf dem ist Docker und Docker Compose installiert. Ein weiteres Programm was wir benötigen ist make. Da komme ich aber noch zu.
    Vielleicht noch interessant zu wissen: Die meisten Docker Container laufen über eine Web GUI. Für Anytype benötigst du deren Software. Also kannst du die auch schon mal herunterladen und installieren.

    Ok, starten wir

    Logge dich per SSH auf deinen Server ein und schau, in welches Verzeichnis du Anytype installieren möchtest.
    Nun Klonen wir das Git Repo

    git clone https://github.com/anyproto/any-sync-dockercompose.git

    und wechseln in das neu erstellte Verzeichnis

    cd any-sync-dockercompose  

    Wir erstellen nun eine Versteckte Datei. In dieser steht die Serveradresse. Pass die bitte für dich an.

    echo 'EXTERNAL_LISTEN_HOSTS=192.168.2.123' >> .env.override

    Nun rollen wir die Container aus mit

    make start

    Bei mir war make nicht installiert. Dies kannst du mit Root Rechten tun

    apt install make

    Die Installation von Anytype dauert eine ganze weile. Es werden einige Container ausgerollt.

    Nun benötigen wir noch eine yml Datei. Diese finden wir, wenn wir in den Ordner etc springen.

    cd etc 

    Hier finden wir die Datei client.yml. Diese Datei ist für uns wichtig. An diese Daten kommst du mit nano, vi oder über cat.

    cat client.yml

    Diesen Code kopierst du von der Stelle id bis consensus und fügst den z.B. in Visual Studio Code ein. Datei absichern als .yml Datei. Diese brauchst du später um dich mit Anytype zu verbinden (auch auf dem Smartphone und Tablett).

    Das war es nun schon.

    Starte nun Anytype und drücke oben rechts auf das Zahnrad. Hier stellst du Deutsch und Selbst gehostet ein. Die Datei die du gerade gespeichert hast, fügst du in Selbst gehostete Konfiguration ein.

    Wenn du noch keinen Tresor hast, kannst du nun einen erstellen. Die angezeigten Wörter sind wichtig. Gut abspeichern. Verlierst du die, musst du einen neuen Tresor erstellen und deine Daten sind weg.

    Herzlichen Glückwunsch. Nun hast du Anytype.
    Wie oben schon geschrieben, Anytype verbindet sich im Heimnetz. Eine Syncronisation erfolgt somit über diese Installation nur dann, wenn du im heimischen Netzwerk bist. Das kann z.B. über eine VPN möglich sein oder du musst warten, bis du wieder zu Hause bist. Deine Daten auf dem Smartphone sind Lokal auf dem Gerät gespeichert. Bei Notion soll eine Verbindung zum Internet Voraussetzung sein.

    Quelle

    Der Quellcode von Anytype ist Teilweise Open Source.

    Quelle: https://github.com/anyproto/any-sync-dockercompose

  • 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

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

  • 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

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