Docker Verschieben von /var/lib/docker

Da auf meinem Server einige Container laufen, wurde durch mein Rollout des Containers Tubearchivist der Platz langsam eng.

Hier habe ich mich entschlossen, den Standardspeicherplatz von Docker auf eine der 6 TB Datenpools zu verschieben. Das Umschreiben des Servicekonfigurationsdatei innerhalb von SystemD wäre hier der falsche Weg. Der richtige Weg ist hier JSON-Konfigurationsdatei des Daemon von Docker umzuschreiben. Falls diese noch nicht angelegt ist, muss diese angelegt werden.

Erstellen des neuen Datenspeicherplatzes für Docker

mkdir /data/IronWolf1/DOCKER_DATA

Stoppen des Dockerdienstes

systemctl stop docker && systemctl status docker && docker ps

Kopieren der Daten in das neue Verzeichnis

rsync -avxP /var/lib/docker/ /data/IronWolf1/DOCKER_DATA

Erstellen der Datei /etc/docker/daemon.json

{
"data-root": "/data/IronWolf1/DOCKER_DATA"
}

Neustarten des Dienstes Docker

systemctl restart docker.service

Überprüfen, ob der Standardspeicherort übernommen wurde. Hierzu habe ich Vaultwarden als Beispiel genommen

docker inspect vaultwarden/server:latest |grep WorkDir
"WorkDir": "/data/IronWolf1/DOCKER_DATA/overlay2/b419d698e9ba693188a2f517f53891702a25ea20f974993aca879206818ab328/work"

Der Inhalt des alten Verzeichnisses /var/lib/docker kann nun gelöscht werden

Invidious: The media could not be loaded format not supported

Invidious ist eineSoftware, die es ermöglicht, Videos von YouTube anzusehen, ohne direkt die offizielle YouTube-Website, oder App zu verwenden. Die selbstgehostete Software ermöglicht eine werbefreie Nutzung von Youtube und schützt die Privatsphäre der Nutzer, indem es Tracking durch Google verhindert. Invidious bietet die weiteren Funktionen wie das Herunterladen von Videos, das Ansehen ohne Anmeldung und die Möglichkeit, nur den Audiostream abzuspielen.

Ich hatte nun etwas länger meine private Instanz auf dem Homeserver genutzt und stieß auf den Fehler
„The media could not be loaded, either because the server or network failed or because the format is not supported“.

Damit die Software wieder produktiv arbeitet, muss hier ein weiterer Container erstellt und die Datei docker-compose.yml für Euren Stack umgeschrieben werden.

Als Erstes wird ein einzelner Container via

 docker run quay.io/invidious/youtube-trusted-session-generator

gestartet und nach einem Start die Ausgabewerte des Containers für visitor_data und po_token kopiert.
Dieser Container beendet sich nach der Ausgabe von selbst und sollte nicht detached gestartet werden.

docker run quay.io/invidious/youtube-trusted-session-generator
[INFO] internally launching GUI (X11 environment)
[INFO] starting Xvfb
[INFO] launching chromium instance
[INFO] launching browser.
[INFO] waiting 10 seconds for the page to fully load.
visitor_data: TOLLERHASHWERT1
po_token: TOLLERHASHWERT2
successfully removed temp profile /tmp/uc_3aimnef0

Jene Werte habe ich, inklusive des neuen Containers, in die Datei docker-compose.yml eingepflegt.

version: "3"
services:
  invidious:
    image: quay.io/invidious/invidious:latest
    container_name: invidious
    restart: unless-stopped
    ports:
      - "4000:3000"
    environment:
      INVIDIOUS_CONFIG: |
        db:
          dbname: invidious
          user: kemal
          password: kemal
          host: invidious-db
          port: 5432
        check_tables: true
        signature_server: inv_sig_helper:12999
        visitor_data: TOLLERHASHWERT1
        po_token: TOLLERHASHWERT2
        quality: dash

        registration_enabled: false
        top_enabled: false
        related_videos: false
        comments: ["",""]
        login_enabled: false
        domain: TOLLERFQDN
        hmac_key: "BLABLABLABLABLA"

    depends_on:
      - invidious-db
    logging:
      options:
        max-size: "1G"
        max-file: "4"

  inv_sig_helper:
    image: quay.io/invidious/inv-sig-helper:latest
    init: true
    command: ["--tcp", "0.0.0.0:12999"]
    environment:
      - RUST_LOG=info
    restart: unless-stopped
    cap_drop:
      - ALL
    read_only: true
    security_opt:
      - no-new-privileges:true
  invidious-db:
    image: docker.io/library/postgres:14
    restart: unless-stopped
    container_name: invidious-db
    volumes:
      - ./postgresdata:/var/lib/postgresql/data
      - ./config/sql:/config/sql
      - ./docker/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh
    environment:
      POSTGRES_DB: invidious
      POSTGRES_USER: kemal
      POSTGRES_PASSWORD: kemal
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
    networks:
      - default

Weiterführende Informationen bezüglich einem Fehler mit sigv_helper und kontobasierter Authentifizierung finden sich in der Issue 4947 auf Github

Viel Spaß mit Invidious.

Eine komplette Sitzung in der Shell aufnehmen

Ein Abschnitt, welcher gute Dienste leisten kann.
Ich hatte den Abschnitt vorübergehend immer in die Datei /etc/bash.bashrc hinzugefügt. Ich fand Ihn perfekt, wenn ein Drittanbieter auf dem Server via SSH arbeiten verrichten musste. Vorher sollte der Drittanbieter informiert werden, dass seine Arbeit überwacht wird . Funktioniert natürlich nicht, wenn mit ansible und ähnlichen gearbeitet wird 😉

if [ "x$SESSION_RECORD" = "x" ]
then
timestamp=`date "+%m%d%Y%H%M"`
output=/var/log/session/session.$USER.$$.$timestamp
SESSION_RECORD=started
export SESSION_RECORD
script -t -f -q 2>${output}.timing $output
exit
fi

Nach 5 Jahren, raus aus dem Homeoffice

people sitting on chair in front of computer
Foto von Israel Andrade auf unsplash

Ich habe nun über 5 Jahre im Homeoffice gearbeitet. Hier habe ich die vielen Vorteile, sowie aber auch die Nachteile genossen. Fasziniert habe ich die Empfehlungen der letzten zwei Jahre für die Arbeit im Homeoffice verfolgt, aber mich aus dem Thema herausgehalten. Vieles war für uns nicht so umsetzbar und hätte auch nicht so zu uns gepasst. Ich kann nur aus unseren Erfahrungen den Tip geben, dass man sich selbst einmal das Habitat schaffen sollte, in welchem der Workflow für Euch passt. Der Rest ergibt sich dann ganz von selbst.

Weiterlesen

TinyTinyRSS Plugin macOS CTRL to ⌘ Command

Da es unter macOS Catalina keine CTRL-Taste gibt, ist es nicht möglich mit dem Feedreader TinyTinyRSS via Tastenkürzel CTRL + ↑ bzw CTRL + ↓durch die Artikel zu blättern. Um diesen Fehler zu beheben gibt es ein Plugin auf Github . Es liest den UserAgent des Browsers aus und mappt die Taste CTRL auf die Taste ⌘/Command.

Weiterlesen

PlayStation 4 Remote Play unter Linux und macOS

Es ist wie eine Vorweihnacht. RemotePlay auf der Playstation 4 ist nun über die Opensourcesoftware Chiaki möglich. Da ich leider noch nicht die neue Version des RasperryPis besitze kann ich nicht sagen wie Gut auf diesem der Client läuft. Ich werde auf jeden Fall nach dem Umzug die Software einmal in meinem HomeOffice in dem internen Netzwerk testen.


Bis jetzt stehen als Download ein App-Image für Linux und eine DMG-Datei zur Verfügung. Ich habe zu dem Thema eine kleine Anleitung verfasst
PS4 to Linux Remote Play streaming