Etherpad unter Ubuntu installieren

Bei Etherpad handelt es sich um einen Editor für kollaboratives Schreiben, welcher selbst gehostet werden kann. Soll Etherpad unter Ubuntu gehostet werden, muss im ersten Schritt Node.js installiert werden:

apt install -y libssl-dev
curl -sL https://deb.nodesource.com/setup_14.x | bash -
apt install -y nodejs

Anschließend wird ein Nutzer für Etherpad angelegt und in diesen gewechselt werden und dort der Quellcode für Etherpad heruntergeladen und initial einmal gestartet und dann mittels Strg + C wieder beendet:

adduser --disabled-login --gecos "" etherpad
su - etherpad
git clone --branch master https://github.com/ether/etherpad-lite.git
cd etherpad-lite
npm install sqlite3
src/bin/run.sh

Nun werden einige Konfigurationen vorgenommen. Im Groben werden die Datenbank, die Authentifikation, Vorbereitungen für den Reverse Proxy, die Nutzer und die maximale Länge von einzufügendem Inhalt und das Log konfiguriert:

nano etherpad-lite/settings.json

Die Änderungen sind in ihrer Reihenfolge in der Konfigurationsdatei angegeben:

...

"dbType": "sqlite",
"dbSettings": {
  "filename": "var/sqlite.db"
},

...

"requireAuthentication": true,

...

"trustProxy": true,

...

"users": {
"admin": {
  // 1) "password" can be replaced with "hash" if you install ep_hash_auth
  // 2) please note that if password is null, the user will not be created
  "password": "example",
  "is_admin": true
},
"user": {
  // 1) "password" can be replaced with "hash" if you install ep_hash_auth
  // 2) please note that if password is null, the user will not be created
  "password": "example",
  "is_admin": false
}
},

...

"socketIo": {
/*
 * Maximum permitted client message size (in bytes). All messages from
 * clients that are larger than this will be rejected. Large values make it
 * possible to paste large amounts of text, and plugins may require a larger
 * value to work properly, but increasing the value increases susceptibility
 * to denial of service attacks (malicious clients can exhaust memory).
 */
"maxHttpBufferSize": 1048576
},

...

"logconfig" :
{ "appenders": [
    { "type": "console"
    //, "category": "access"// only logs pad access
    }

  , { "type": "file"
  , "filename": "etherpad.log"
  , "maxLogSize": 1024000
  , "backups": 3 // how many log files there're gonna be at max
    }

...

Anschließend wird der Kontext des Nutzers etherpad verlassen und eine neue Service-Unit für systemd angelegt:

exit
nano /etc/systemd/system/etherpad.service

Diese wird mit folgendem Inhalt befüllt:

[Unit]
Description=Etherpad
After=syslog.target
After=network.target

[Service]
Type=simple
User=etherpad
Group=etherpad
Environment="NODE_ENV=production"
ExecStart=/home/etherpad/etherpad-lite/src/bin/run.sh
Restart=always

[Install]
WantedBy=multi-user.target

Nachdem die Datei angelegt wurde, kann der Service aktiviert und gestartet werden:

systemctl enable etherpad
systemctl start etherpad

Lokal ist der Service nun per HTTP unter dem Port 9001 erreichbar. Damit der Service auch von außen erreichbar ist, kann Nginx als Reverse Proxy konfiguriert werden. Dazu muss die entsprechende Konfiguration hinterlegt werden:

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    ssl_certificate        /etc/letsencrypt/live/example.org/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/example.org/privkey.pem;

    server_name example.org;

    client_max_body_size 512m;

    location / {

        # Set proxy headers
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # These are important to support WebSockets
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";

        # Make sure to set your Etherpad port number
        proxy_pass http://localhost:9001;
    }
}

Damit steht Etherpad auch von außen unter der entsprechenden Domain zur Verfügung und kann benutzt werden.

Same-Origin-Policy im Firefox für lokale Dateien deaktivieren

Der Zugriff auf lokale Dateien im Firefox ist aufgrund der Same-Origin-Policy im Normalfall nicht möglich. So kann z.B. eine lokale Datei nicht per AJAX nachgeladen werden:

Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf file:///path/to/file/test.json. (Grund: CORS-Anfrage war nicht http).

Das Feature an sich ist sinnvoll, doch manchmal soll dieses für Entwicklerzwecke abgeschaltet werden. Dies kann über den Aufruf von about:config erreicht werden.

about:config wird aufgerufen

In den Einstellungen findet sich das Attribut:

privacy.file_unique_origin

Wird dieser Wert auf false gesetzt können die Dateien lokal unter Aufhebung der Same-Origin-Policy geladen werden.

Übernahme von Änderungen für den Fibaro Motion Sensor unter Homee funktioniert nicht

Für meine Heimautomation mittels Homee nutze ich unter anderem den Fibaro Motion Sensor in der Z-Wave-Variante. Dieser leuchtet, sobald eine Bewegung erkannt wird. Glücklicherweise kann diese Funktionalität unter Homee für das Gerät abgestellt werden. Allerdings kann es passieren, dass die Einstellung in Homee zwar geändert wurde, aber die Änderung beim Gerät nicht ankommt.

Der geöffnete Fibaro Motion Sensor

Hintergrund hierfür ist, dass die batteriebetriebenen Geräte einmal manuell aufgeweckt werden müssen, nachdem die Änderung vorgenommen wurde, damit diese zeitnah übernommen wird. Bei dem Fibaro Motion Sensor geschieht dies, nachdem er geöffnet wurde, über den verbauten Taster, welcher dreimal schnell hintereinander gedrückt werden muss. Anschließend leuchtet die LED des Sensors auf und die Einstellung sollte übernommen worden sein.

Konvertierung von CBR- oder CBZ-Dateien in Calibre führt zu schwarzweißen Bildern

Mittels Calibre ist es unter andere möglich Bücher und Dokumente in andere Formate zu konvertieren. Wer allerdings versucht CBR- oder CBZ-Dateien zu konvertieren, wird feststellen dass diese in der konvertierten Version schwarzweiß sind.

Die Eingabeoptionen in den Einstellungen von Calibre

Grund hierfür ist eine Option, welche sich in den Einstellungen unter dem Punkt Konvertierung -> Eingabeoptionen befindet. Dort findet sich in den Einstellungen für Comic-Eingabe der Punkt Umwandlung von Bildern zu schwarz-weiß deaktivieren. Nachdem dieser aktiviert wurde und die Konvertierung erneut vorgenommen wurde, werden die Originalfarben verwendet und eine Konvertierung in Schwarzweiß findet nicht statt.

Festplatten unter macOS sicher überschreiben

Grundsätzlich sollten Daten auf Festplatten und verschlüsselt gespeichert werden. Natürlich kann es trotzdem nicht schaden diese sicher zu überschreiben, wenn sie z.B. verkauft werden sollen. Unter macOS kann hierfür das Festplattendienstprogramm genutzt werden.

Über die Sicherheitsoptionen kann die sichere Löschung der Festplatte konfiguriert werden

Wenn dort die Optionen zum Löschen der Festplatte ausgewählt wird, so erhält der Nutzer eine Auswahl des Dateisystems und der neuen Bezeichnung. Daneben befindet sich dort der Button mit der Beschriftung Sicherheitsoptionen. Wird dieser gedrückt, öffnet sich ein Dialog, in welchem die Löschung der Festplatte konfiguriert werden kann. Dort kann anschließend die zweite Option aktiviert werden. Diese beschreibt die Festplatte mit zufälligen Daten und überschreibt sie anschließend mit Nullen, was bei heutigen Festplatten mehr als ausreichend ist um sicherzustellen das keine bestehenden Daten mehr auf dieser gefunden werden können.

Bei SSDs sollte berücksichtigt werden, das hier durch das Wear-Leveling bestimmte Bereiche nicht erreichbar sind, da diese vom Controller der SSD verwaltet werden. Hier ist es unter Umständen hilfreich eine höhere Sicherheitsstufe beim Löschen zu benutzen, da somit die SSD öfter überschrieben wird und somit unter Umständen auch solche Bereiche überschrieben werden, welche beim ersten Mal nicht erreicht werden konnten.