Schlagwort: Anleitung

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