Archiv des Autors: marove

Dualboot mit Windows 10 (Bitlocker) und Arch Linux (LUKS Container)

Na da hab ich mir ja mal wieder was vorgenommen. Das neue Business-Notebook meines neuen Arbeitgeber ist eingetroffen. Leider komme ich bei meinem Arbeiten nicht um Windows 10 herum, aber ich kann es mir nicht nehmen lassen mir ein Linux auf der Kiste zu installieren.

Aufgrund von Sicherheitsrichtlinien müssen beide Systeme verschlüsselt sein. Windows 10 mit Bitlocker (AES 256-bit) und Arch Linux mit einem AES 512-bit LUKS-Container.

Die Konfiguration

Das Windows 10 kommt mit einer 250 GB Partition bereits von meiner IT. Daher muss ich lediglich das Linux installieren ohne das Windows zu zerstören.

Die Konfiguration der Festplatte

Auf die Festplatte kommt (bzw. ist) eine UEFI Partition (Bootloader). Von dort kann man dann entweder ins Windows booten oder in einen verschlüsselten LUKS Container mit Arch Linux und einer kleinen SWAP-Partition.

Vorbereitung

Bitlocker deaktivieren

Zunächst muss Bitlocker deaktiviert werden. Leider habe ich keine Informationen, warum das so ist, nur „das Internet“ berichtet sonst von Problemen. Mit Admin-Rechten kann man das ganz einfach im Windows erledigen. Bitlocker kann danach wieder aktiviert werden.

SATA Operation auf AHCI stellen

Damit Linux die Platte erkennt und die Geschwindigkeit der SSD vollumfänglich ausgenutzt werden kann, muss im BIOS die SATA Operation auf AHCI gestellt werden. Unter Dell unter „System Configuration“ -> „SATA Operation“ -> „AHCI“

ACHTUNG: Ist das Windows 10 bereits vorinstalliert und wurde dieses mit „RAID on“ installiert, muss das Windows erst für AHCI vorbereitet werden, ansonsten startet das Betriebssystem nicht mehr. Dazu wie folgt vorgehen (vgl. https://mauriceneumann.de/ahci-modus-nachtraeglich-in-windows-10-aktivieren/):

  1. BIOS zunächst nicht umstellen und z.B. im „RAID on“ Modus belassen
  2. Windows 10 starten
  3. Eingabeaufforderung (cmd.exe) als Administrator öffnen
  4. Abgesicherten Modus mit folgenden Befehl aktivieren: bcdedit /set {current} safeboot minimal
  5. PC neustarten
  6. Beim Neustart ins BIOS wechseln (Oft mit der Taste Entf oder F2)
  7. Wechsel von IDE oder RAID on auf den AHCI Modus. Einstellung speichern
  8. Windows 10 wird jetzt im abgesicherten Modus gestartet
  9. Eingabeaufforderung (cmd.exe) als Administrator öffnen
  10. Abgesicherten Modus mit folgenden Befehl beenden: bcdedit /deletevalue {current} safeboot
  11. PC neustarten
  12. Der AHCI Modus ist jetzt aktiviert

Hinweis für Thunderbolt Docking Stationen

Mein Dell Latitude 5501 hat eine WD19TB Dockingstation welche mit Thunderbolt angeschlossen wird. Diese wurde nach der Umstellung auf AHCI nicht mehr erkannt. Die Lösung: Im BIOS muss das Security Level auf „none“ gestellt werden.

Das Security Level muss aber für Linux sowieso herabgesetzt werden, da sonst Geräte an der Dockingstation nicht erkannt werden, bzw. alle Geräte am Thunderbolt nicht erkannt werden (vgl. https://eischmann.wordpress.com/2017/06/29/thunderbolt-security-levels-and-linux-desktop/).

Secureboot deaktivieren

Eine Installation von Arch Linux mit USB-Stick mit Secureboot ist zwar möglich. Es wird aber nicht empfohlen (vgl. https://wiki.archlinux.de/title/UEFI_Installation). Es können wohl auch weitere Probleme auftreten.

Installations-Medium erstellen

Und natürlich müssen wir auch noch Linux irgendwie installieren können. Daher brauchen wir einen leeren USB Stick und ein Arch-Image. Image herunterladen und dann mit DD auf einen leeren USB-Stick schreiben:

 dd bs=4M if=path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync

(https://wiki.archlinux.org/index.php/USB_flash_installation_media#BIOS_and_UEFI_bootable_USB) Danach kann der USB-Stick angesteckt werden und (meistens) mit F12 beim Systemstart (temporäres Bootmedium einstellen) davon gebootet werden.

Installation von Arch Linux im LUKS Container

Eine Linux-root-Konsole sollte am Bildschirm erscheinen. Im Grunde ist alles im sehr ausführlichen Arch Wiki beschrieben. Leider sind die einzelnen Artikel aber teilweise leicht versteckt und es gibt Diskrepanzen zwischen den Übersetzungen. Einige Punkte sind nur im deutschen Wiki beschrieben, Anderes nur im englischen Wiki. Ich halte mich gerne an den Beginners guide: https://wiki.archlinux.org/index.php/Installation_guide

Ab jetzt folgt eine Kurzzusammenfassung. Im Beginners Guide ist alles ausführlicher Beschrieben.

Deutsches Tastaturlayout laden:

loadkeys de-latin1

Freien Speicherplatz partitionieren

Zunächst kann mit dem Befehl

fdisk -l

eine Übersicht geschaffen werden. Wie Windows die Partitionen angelegt hat. Bei mir ist eine 1TB NVME Festplatte verbaut bei der Windows drei Partitionen angelegt hat:

  • /dev/nvme0n1p1: EFI System – Die Partiton für den UEFI Bootloader
  • /dev/nvme0n1p2: Microsoft reserved – Reservierter Speicher für Sicherungsdaten von Microsoft
  • /dev/nvme0n1p3: Microsoft basic data – Die C-Partition für Windows 10

Damit sind 250GB belegt und es bleiben noch 750GB für Linux. Mit

gdisk /dev/nvme0n1

können die weiteren Partitionen angelegt werden. Die Wichtigsten Befehle:

p      # Print der aktuellen Tabelle
o      # Neue Tabelle anlegen
n      # Neue Partition erstellen
w      # Schreibe Tabelle auf die Festplatte

Da wir nur eine Partition für den LUKS-Container brauchen (siehe Bild oben) reicht es, wenn wir eine neue Partition über die restlichen 750GB des Speichers erstellen:

n [Enter]
Partition number (default 4): [Enter]
First sector: [Enter]
Last sector: [Enter]
Hex code or GUID: 8E00 (Für Linux LVM) [Enter]
p (Um nochmal alles anzuzeigen)
w (schreiben der Tabelle auf die Festplatte)

Mit „p“ kann man sich jetzt nochmal die gesamte Tabelle anzeigen lassen. Eine vierte Partition für Linux LVM sollte angelegt worden sein. Mit „w“ kann die Tabelle auf die Festplatte geschrieben werden.

Verschlüsselten LUKS Container mit LVM anlegen

Nun erstellen wir den verschlüsselten Container auf /dev/nvme0n1p4 mit LUKS.
Mehr Infos: https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#LVM_on_LUKS
Mehr Infos zu cryptsetup: https://wiki.archlinux.org/index.php/Dm-crypt/Device_encryption#Encryption_options_for_LUKS_mode

Die soeben angelegte Partition unter /dev/nvme0n1p4 wird nun verschlüsselt. Dazu können verschiedene Algorithmen und Schlüssellängen gewählt werden. Welche Algorithmen auf dem System am schnellsten funktionieren, kann mit einem Benchmark ermittelt werden:

cryptsetup benchmark

In meinem Fall fällt die Auswahl auf aes-xts-plain64 mit 512-bit Schlüssellänge:

cryptsetup luksFormat -c aes-xts-plain64 -s 512 /dev/nvme0n1p4

Nun einfach der Anweisung auf dem Bildschirm folgen. Bitte sicherstellen, dass auch die richtige Partition ausgewählt wird, da LUKS alles verschlüsselt. Anschließend muss der Container wieder geöffnet werden und auf LVM gemapped werden.

# Öffnet verschlüsselten Cotainer wieder und mapped auf "lvm"
cryptsetup open --type luks /dev/nvme0n1p4 lvm

Mit dem Befehl „lsblk“ kann man Prüfen ob alles geklappt hat.

LVM innerhalb des LUKS-Containers erstellen

Wir haben zwar jetzt einen (offenen) verschlüsselten Container, haben darin aber noch kein LVM. Dieses wird mit den folgenden Befehlen erstellt:

vgcreate main /dev/mapper/lvm       # Erstelle Volume Group auf /dev/mapper/lvm mit Namen "main"
lvcreate -L 32G main -n swap        # Erstelle 32GB SWAP
lvcreate -l 100%FREE main -n root   # Erstelle root mit Rest

Achtet bitte beim letzten Befehl darauf: Ein kleines „-l“ kein „-L“. Zum Swap: Ich halte mich nach wie vor daran: 2x RAM-Größe = SWAP-Größe. Mit dem Befehl „lsblk“ kann man wieder Prüfen ob alles geklappt hat.

Filesystem erstellen

Jetzt fehlt nur noch das Filesystem auf den innerhalb des Containers erstellten Partitionen:

mkfs.ext4 /dev/mapper/main-root
mkswap /dev/mapper/main-swap

Festplatten mounten

Nun müssen lediglich die Partitionen an der richtigen Stelle gemounted werden und die Installation kann beginnen:

mount /dev/mapper/main-root /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
swapon /dev/mapper/main-swap

Ab jetzt kann mit https://wiki.archlinux.org/index.php/Installation_guide#Installation fortgefahren werden, bis man zum Kernel kommt (Befehl mkinitcpio -P).

Hooks für Linux-Kernel anpassen

Folgende Datei muss angepasst werden: /etc/mkinitcpio.conf

HOOKS="base udev autodetect modconf block keyboard keymap encrypt lvm2 filesystems fsck shutdown"

Die Reihenfolge ist dabei extrem wichtig! Danach folgenden Befehl ausführen:

mkinitcpio -p linux

systemd bootctl konfigurieren (ehemals Gummiboot)

Zunächst müssen zwei Pakete nachinstalliert werden

pacman -S lvm2 dhcpcd

Diese sind später wichtig für ein funktionierendes Internet und der entschlüsselung des lvm. Näheres zu den Folgenden Befehlen ist hier zu finden: https://wiki.archlinux.de/title/UEFI_Installation#systemd_bootctl_.28ehemals_Gummiboot.29

Nun bootctl auf die EFI-Partition installieren

bootctl install

Anschließend die Datei /boot/loader/entries/arch-uefi.conf mit folgendem Inhalt erstellen:

title    Arch Linux
linux    /vmlinuz-linux
initrd   /initramfs-linux.img
options  cryptdevice=/dev/nvme0n1p4:main root=/dev/mapper/main-root lang=de locale=de_DE.UTF-8

Außerdem noch den Fallback anlegen: /boot/loader/entries/arch-uefi-fallback.conf

title    Arch Linux Fallback
linux    /vmlinuz-linux
initrd   /initramfs-linux-fallback.img
options  cryptdevice=/dev/nvme0n1p4:main root=/dev/mapper/main-root lang=de locale=de_DE.UTF-8

Nun noch die Datei /boot/loader/loader.conf bearbeiten und folgende Einträge anpassen/ergänzen:

default   arch-uefi 
timeout   3

Damit wird lediglich festgelegt, welches der Default ist und wie viele Sekunden (timeout) gewartet wird.

Das wars! Jetzt kann Linux gestartet werden.

Bitlocker wieder aktivieren

Bitlocker kann nun im Windows wieder aktiviert werden. Achtung: Es kann vorkommen, dass Bitlocker eine neue Partition anlegt. Dadurch verschiebt sich der LUKS Container (z.B. von nvme0n1p4 auf nvme0n1p5 und Linux könnte nicht mehr starten wollen mit dem Fehler „Not a valid LUKS container“. Dazu muss dann die Konfiguration /boot/loader/entries/arch-uefi.conf bzw. /boot/loader/entries/arch-uefi-fallback.conf nochmal angepasst werden.

Wandern in Schottland

Zusammen mit zwei Freunden war ich 3 Wochen in Schottland um dort mit Zelt und Rucksack das Land zu bereisen. Ich bin wiedermal viel zu spät dran, um alle Eindrücke auf „Papier“ zu bringen, aber dafür gibts ein paar Anekdoten und viele Bilder vom Wandern in Schottland.

Anreise mit der Bahn

Dank der Überzeugungskraft von einer der Mitreisenden, sind wir mit dem Zug von Regensburg nach London gefahren. Zunächst zu den Fakten:

  • Kosten: Insgesamt hat die Bahnreise 238,80 € pro Person gekostet. Ist man realistisch und rechnet die Kosten für extra Gepäck, Bahnreise zum/vom Flughafen, etc. mit ein, kämen wir mit dem Flugzeug auf einen vergleichbaren, wenn nicht etwas günstigeren Preis.
  • Zeit: Das ist wohl der Knackpunkt. Die Reise hat 12 Stunden (pro Richtung) gedauert. Wenn ich hier realistisch bin, hätte diese mit dem dem Flugzeug wohl 5-6 Stunden gedauert. Im Vergleich zum fliegen, war es hier aber tatsächlich deutlich entspannter.
Thematisch passend waren wir natürlich auch beim „Harry Potter Zug“. Sind damit aber leider nicht gefahren 😉

Zusammenfassend würde ich beim nächsten Mal wahrscheinlich wieder mit dem Zug fahren. Lediglich die Reservierung der Züge und das Buchen der Tickets war ein absoluter Graus! Hier haben wir nach längerer Recherche dann loco2.com kennengelernt. Eine gute Seite mit gutem Interface. Deutlich besser als bahn.de und am Ende haben wir dann doch wieder Bahn.de-Tickets erhalten ;).

Die Menschen und das Land

Kennengelernt haben wir viele Menschen. Sowohl Engländer als auch Schotten und hatten auch mit der schottischen Polizei zu tun. Natürlich kann ich nur von den Menschen sprechen die ich kennengelernt habe, aber irgendwie hatten alle Engländer einen leichten Schlag. So wurde uns z.B. empfohlen zu behaupten wir kämen aus Frankreich, weil uns sonst alle hassen würden (war natürlich nicht der Fall).

Die Schotten wiederum kann man sehr schön mit den Bayern vergleichen. Klingen komisch, kleiden sich komisch, sind manchmal etwas grummelig, aber doch irgendwie ganz herzlich wenn man sie mal kennenlernt. Grundsätzlich aber deutlich entspannter! So trägt die Schottische Polizei nicht mal Schusswaffen mit der Begründung, die Waffengesetze seien so streng, dass die Gegenseite meisten auch nichts anderes hätte ;).

Blick auf Loch Lomond

Das Land war einfach nur unglaublich. Sowohl in Schottland (vor allem die Highlands!) als auch England (hier sind die Nationalparks sehr zu empfehlen) bietet wunderschöne Hotspots. Die schönsten Orte waren allerdings mindestens einen Tagesmarsch von der Zivilisation entfernt.

Bothys und das Hinterland

Die schönste Tour war allerdings die 3-Tagestour ins Hinterland von Schottland. Die Reise führte uns auf den zweithöchsten Berg Schottlands, zum schönsten Loch in Schottland und anschließend auf einer traumhaft schönen Tour zurück in die Zivilisation. Das besondere: Wir waren mindestens eine Tagestour von der Zivilisation entfernt. In der Nacht zuvor hat unser Zeit einen Riss bekommen und das ganze hat mich ein wenig auf den Boden der Wirklichkeit zurück geholt: Haben wir wirklich an alles gedacht? Was wenn sich jemand was bricht/etwas passiert? Wir waren aber tatsächlich gut ausgerüstet. Das Zelt kam dank Bothys nicht zum Einsatz und die fehlende Zivilisation hat allen so unendlich gut getan.

Eine winzige Bothy auf der 3-Tages-Tour

Bothys haben wir tatsächlich erst einen Tag vor der Reise kennengelernt: Ein kostenloses Hüttensystem in Schottland von dem quasi keiner weiß. Niemand darf in einer Bothy abgewiesen werden, niemand kann dir aber garantieren, dass ein Platz frei ist. Die Bothys sind völlig unterschiedliche. Es gibt sie mit mehreren Stockwerken und Kunst an der Wand oder auch nur ein Raum und statt Plumpsklo einen Spaten. So eine sieht man im Foto oben. Wir hatten das Zelt immer dabei, sollten wir mal keinen Platz bekommen, aber wir hatten immer Glück.

Wir wollen die Bilder sehen!

Jaja hier kommen sie auch schon 🙂

Bonuslevel: Verschlusssysteme

Als kleinen Bonus gibts eine kleine Auswahl von Verschlusssystemen von Türen/Toren und Zäunen in Schottland. Im Gegensatz zu England waren in Schottland quasi alle Türen und Tore unverschlossen. Und in der Form und Ausprägung der Verschlusssysteme sind die Schotten wirklich kreativ geworden. Das hat mir gefallen :).

Chaos Communication Camp 2019: Licht vs. Staub

Man kommt nach 9 Tagen Chaos Communication Camp nach Hause und ist irgendwie noch immer nicht ganz in der normalen Welt angekommen. Es war einfach unglaublich. Die Lichter, die Farben, die Menschen die man kennen lernen durfte! Und alles bedeckt mit einer leichten Staub-/Dreckschicht ob des heißen Wetters.

Irgendwie fällt es mir gerade noch etwas schwer, das erlebte in Worte zu fassen. Es gibt viel zum nachdenken und überlegen und 1000 neue Ideen. Es war wunderschön! Nun genug der gestammelten Worte und Kamera ab für ein paar Eindrücke.

Moskau – Rammstein, Metro und die Katzen

tl;dr: Moskau & Rammstein waren genial! Unten sind die Bilder!

Was war denn das? Eigentlich ging es nur wegen eines Kurztrips (4 Tage) nach Moskau, angefühlt hat es sich aber wie 2 Wochen. Eine traumhaft schöne Stadt, tolle Menschen, Katzen (!) und Rammstein. Besser gehts fast nicht :).

Moskau und die Metro

Zuerst mal: Wie toll ist denn bitte diese Metro? Wir sind am Weißrussischen Bahnhof vom Flughafenexpress angekommen (extrem pünktlich) und sind direkt in die Ubahn (Metro): Ticketverkauf gestaltet sich extrem einfach. Nicht wie in Deutschland erst mal die Zone festlegen, oder den Tag oder den Aszendenten Jupiters sondern eines der folgenden Möglichkeiten wählen:

  • Einfache Fahrt (55 Rubel, 0,80 €)
  • Tagesticket (auch für mehrere Tage, 3 Tage ~240 Rubel)
  • Gruppenticket

Das wars. Super einfach zu bestellen, mega günstig und auch ohne Russisch einwandfrei möglich :). Und dann kommt man in diese Metro und traut seinen Augen nicht mehr! Kunst, wunderschöne Wandarbeiten und alles blitzeblank.

Es war einfach ein Traum. Alle zwei Minuten fuhr eine UBahn, das System ist leicht verstanden und man kann sich quasi nicht verlaufen. Sowas wünscht man sich in jeder Großstadt.

Katzen-Café perfekt umgesetzt

Ich möchte gar nicht so viel über Moskau erzählen, das kann man in jedem Reiseführer nachlesen. Eine Sache fand ich aber schön und das Konzept war zumindest mir neu: Sogenannte Anti-Cafés: Orte an denen man nicht für die Dienstleistung oder das Produkt bezahlt sondern für die Zeit die man dort verbringt. Perfekt umgesetzt im Anti-Café Котокафе „Котофейня“ Einem Katzencafé.

Als wäre die Vorstellung Katzen streicheln zu können nicht schon gut genug, verfolgt das Café auch noch ein geniales Konzept:

Die etwa 20-24 Katzen werden aus Tierheimen/Sheltern geholt. Es sind zumeist Katzen die dort keine neue Familie gefunden haben, weil Sie zu dünn, krank, verletzt o.Ä. sind. Im Café haben die Katzen dann ein schönes Leben, werden versorgt und von vielen Menschen gestreichelt. Wenn sie darauf keinen Bock haben, sind die Rückzugsmöglichkeiten zahlreich vorhanden. Möchte ein Besucher einer Katze ein neues Zuhause geben muss er durch eine art „Check“ (ich habe an dieser Stelle nicht genau nachgefragt) und kann dann die Katze adoptieren. So wurden schon über 100 Katzen vermittelt. Geniale Idee!

Rammstein!

Argh! Was für eine Band. Natürlich ist die Musik speziell, das muss nicht allen gefallen. Aber diese Show? Ich habe selten noch nie etwas imposanteres gesehen.

Auch hier will ich weniger über die Show reden, da lasse ich die Fotos reden. Das Drum-Herum war allerdings schon etwas anders als in Deutschland: Überall (!!) Hundertschaften (!!) von „Polizisten“. Ich verwende Anführungszeichen, da nicht sofort ersichtlich war, dass es sich um Polizei handelt, ich hatte eher den Eindruck, es würde sich um das Militär handeln.

Das hinterlies zumindest ein komisches Gefühl. Später wurden die Polizisten als Wegeleitsystem zurück zur Metro verwendet. Hier habe ich eigentlich erwartet, dass wir zumindest eine Stunde warten müssten, da gerade 50000 Menschen dort hin strömen. Pustekuchen! Alles Reibungslos, alles ohne Problem und warten.

Fotos

Und jetzt Schluss mit dem Gequatsche und endlich kommen wir zu den Fotos.

Finanzübersicht mit Jameica und Hibiscus

Im laufe eines Lebens sammeln sich doch so einige Konten, Ausgaben, Kredite etc an. Um nicht den Überblick zu verlieren, nutze ich für mich die Plattform Jameica mit dem Banking-Plugin Hibiscus. Dieser Artikel soll eine kleine Übersicht bieten und meine Erfahrungen zusammenfassen.

Screenshot Jameica mit Hibiscus (Quelle: https://www.willuhn.de/products/hibiscus/screenshots.php)

Die Jameica-Plattform ist eine freie Laufzeit-Umgebung für Java-Anwendungen, die in Form von Plugins implementiert werden können. Sie stellt ein Framework für die ganzen Plugins zur Verfügung. Hibiscus ist eine freie Homebanking-Anwendung, die vor allem für Banken interessant ist, die HBCI (vgl. API der Banken) nutzten. Durch andere Plugins können aber auch andere Banken mit erfasst werden.

Ich werde hier meine persönliche Anwendung der Software vorstellen. Man kann die Software auch für komplett andere Dinge nutzen, z.B. der Verwaltung eines Vereins. Jameica in Verbindung mit Hibiscus sieht zwar eher „altbacken“ aus, bietet aber alle Funktionen die man benötigt. Außerdem ist man nicht auf ein Betriebssystem angewiesen (vgl. Starmoney) bzw. muss für die Finanzsoftware Geld ausgeben.

Hinweis: Bei den Screenshots habe ich sehr viel verpixelt. Meist habe ich aber einen Eintrag als Beispiel unverpixelt gelassen.

Übersicht der Transaktionen

Um eine vollständige Übersicht aller Finanztransaktionen seiner Banken zu erfassen, müssen diese erst erfasst werden. Das ist schon etwas komplexer, da man gegen die verschiedenen Bank-APIs sprechen muss. Ist es eine „normale“ Bank wie Sparkasse, ING Diba etc. ist das relativ leicht: Im Wiki des Entwicklers finden sich Anleitungen und Einstellungen für die meisten Banken: https://www.willuhn.de/wiki/doku.php?id=support:list:banken

Möchte man allerdings „Sonderbanken“ hinzufügen, gestaltet sich dies etwas schwerer und es sind weitere Plugins nötig. Bei mir sind dies z.B. die Landesbank Berlin (Kreditkarte) oder meine diversen Paypalkonten. Auch viele Bausparer nutzen nicht das HBCI verfahren.

Bisher habe ich es lediglich bei Wüstenrot nicht geschafft die Übersicht in meine Transaktions-Liste zu bringen.

Übersicht der Konten in Hibiscus

Sind alle Konten bzw. Bank-Zugänge eingerichtet ruft Hibiscus (nur durch User-Aktion) alle Transaktionen ab. Dies kann einige Zeit dauern, da hier mit der API der jeweiligen Bank gesprochen wird. Bereits erfasste Transaktionen bleiben in einer SLQlite Datenbank gespeichert. Die Daten sind außerdem mit einem Masterpasswort verschlüsselt. Jameica selbst erstellt auch automatisch bei jedem schließen ein Backup. Um die Sicherung dieses Backups müsst ihr euch natürlich selbst kümmern.

Im Screenshot „sieht“ man die Übersicht der Konten. Hier werden die wichtigsten Informationen zusammengefasst. Ich habe auch eine Kreditkarte (zu erkennen an der roten Bilanz). Dieses Konto ist über ein Script eingebunden. Das Script erfasst dabei die aktuellen Ausgaben (Minusbilanz) und der noch zur Verfügung stehende Kredit. Die Übersicht schafft schnell einen Überblick über das gesamte zur Verfügung stehende Vermögen.

Im Übrigen können hier auch historische Daten erfasst werden. Wenn ihr z.B. eine Bank kündigt, bleiben die Transaktionen erhalten. Der Bankzugang wird dann einfach stillgelegt.

Die Transaktionen

Die Übersicht der Transaktionen bietet eine Fülle an Funktionen die im täglichen Gebrauch sehr praktisch sind.

Suche

Natürlich kann man innerhalb der Transaktionen suchen. Nun hört sich das zunächst überflüssig an, denn meisten reicht ja eine Übersicht. Wer aber am Jahresende seine Steuer machen möchte, kann hier in den Transaktionen suchen, wann etwas passiert ist und in welcher Höhe. Leider dauert die Suche bei vielen Transaktionen aufgrund der Speicherung in SQLite leider relativ lange.

Flags

Ein einfaches Flag „Confirmed“ und „Unconfirmed“ hilft bei der täglichen bzw. wöchentlichen durchschau der Daten. Ich habe einen Onlineshop und muss daher täglich die Transaktionen durchschauen. Das Flag hilft mir dabei nicht die Übersicht zu verlieren. Durch die Durchsicht fallen aber auch Posten auf, die vielleicht schon gar nicht mehr sein müssen (z.B. alte Mitgliedschaften alter Vereine, Abos, etc.) oder unberechtigte Abbuchungen durch Betrüger. Leider passiert auch dies 1-2 mal im Jahr. Wenn man es bemerkt ist das kein Problem, allerdings muss man es auch erst mal bemerken.

Kategorisierung

Jede Transaktion kann einer Kategorie zugeordnet werden. Natürlich auch vollautomatisch. Damit kann man sehr einfach „Unterkonten“ erfassen/erstellen und hat z.B. eine Übersicht über Wiederkehrende Ausgaben.

Bilanz

Ein nettes Gimik: Eine Grafische Auswertung der verschiedenen Konten. Man sieht wie die Tendenz ist, aber viel tatsächlicher Informationsgehalt ist leider nicht enthalten.

Fazit

Ich kann dieses Tool nur jedem Empfehlen. Mit der Fülle an Banken, Konten, Sparplänen, Aktien, Bausparern, Krediten, … kann man schnell die Übersicht verlieren. Jameica in Verbindung mit Hibiscus ist ein einfaches, kostenloses und umfassendes Tool um Licht ins Dunkel zu bringen. Je nachdem wie intensiv man das Tool nutzt, kann man auch weitere Erkenntnisse aus den Bilanzen ziehen.

Vorteile

  • Übersicht aller Transaktionen
  • Nahezu alle Banken
  • Aktive Weiterentwicklung
  • Freie Software
  • Kostenlos

Nachteile

  • Einige kleinere Bugs (bereits gemeldet)
  • Ein paar Banken gibts dann doch nicht
  • Ein wenig Arbeit/Gefrickel bei der Einrichtung ist nötig

Ausblick

Bei der Recherche für diesen Artikel bin ich auf synTAX gestoßen: Eine freie Finanzbuchhaltung für Selbständige und „Nichtbilanzierer“ nach SKR03/04. Die Anwendung läuft als Plugin innerhalb des Frameworks Jameica. Na das hört sich doch super an! Werde ich testen und darüber berichten :).

Sensor all the Things: Günstige Sensoren zur Raumklima-Überwachung selbst bauen/frickeln

Fertiges Sensorpaket

Zwar kann ich mich (noch) nicht mit dem Gedanken der Hausautomatisierung anfreunden, dennoch habe ich schon länger mit dem Gedanken gespielt meine Wohnung mit Sensoren auszustatten. Ich wollte die Zimmer meiner Wohnung möglichst kostengünstig mit praktischen Sensoren ausstatten.

Disclaimer: Ich arbeite hier teilweise mit Geräten die in 220V eingesteckt werden. Wenn ihr nicht wisst was ihr tut: Finger weg! Und sowieso niemals nachmachen!

Die Hardware

Was braucht man alles? Sensoren, Broker, Datenbankserver und Stromversorgung. Alles am besten aus einer Hand. Natürlich gibt es sowas, aber doch ziemlich teuer. Hier die Hardware die ich verwendet habe:

Plattform

Ideal wäre ein Grundsystem mit WLAN, Platz für Sensoren, einer stabilen Stromversorgung und idealerweise noch ein schönes Gehäuse dazu. Zum Glück gibt es so etwas Ähnliches schon:

Sonoff Socket S20

Die S20 gibt es für ~10 Euro bei Aliexpress und bieten fast alles was wir brauchen. Darin enthalten ist ein ESP der für WLAN sorgt und die Zwischensteckdose ist sogar schaltbar. Dieses Feature ignoriere ich aber zunächst, da ich derzeit noch keinen Sinn darin sehe, meine Wohnung zu automatisieren. Die S20 sind robust verbaut und wenn man diese aufschraubt, kann man man 4 Pins erreichen, an die Sensoren angeschlossen werden können: Fast perfekt

Leider ist das Gehäuse vollständig geschlossen, weswegen ich die 4 Pins für die Sensoren nach außen gelegt habe.

Sensoren

Bei der Wahl der Sensoren habe ich mich aufgrund der limitierten Pin-Anzahl für I²C Sensoren entschieden. Diese können parallel zueinander an die 4 Pins gehängt werden. Mögliche Sensoren (eine Auswahl):

  • BMP280
    • Luftdruck
    • Temperatur
    • Luftfeuchtigkeit
    • ~2-3 Euro
  • BH1750
    • Helligkeit
    • ~1-2 Euro
  • CCS811
    • Luftqualität
    • ~10 Euro
  • BME680
    • Luftdruck
    • Temperatur
    • Luftfeuchtigkeit
    • Luftqualität
    • ~15 Euro

Ich hab mich zunächst mal nur für BMP280 (sehr günstig und sehr praktisch) und den BH1750 (kostet fast nix, ich weiß noch nicht was ich mit den Werten anfange) entschieden.

Die Luftqualitätssensoren habe ich bestellt und ein Test steht noch aus. Allerdings bin ich noch nicht ganz überzeugt. Ich hätte gerne einen C0x Sensor aber sowas ist einfach super teuer.

Hardware zusammenbauen

Im Grunde muss für die Vorbereitung der Hardware einige Kabel angelötet werden, die Sensoren aufgesteckt werden und eine neue Firmware konfiguriert werden.

S20 vorbereiten und neue Firmware flashen

Der Sonoff S20 kann über das Lösen von drei Schrauben geöffnet werden. Anschließend kann man auf der Platine vier Anschlussmöglichkeiten. Da es absolut nicht zu empfehlen ist, bei geöffnetem Gehäuse die S20 mit Strom zu versorgen. Die Anschlüsse können über vier Kabel und einem kleinen Loch nach draußen geführt werden.

Die Platine eines Sonoff S20 mit aufgelöteten Kabeln

Verbesserungsidee für die Profis: Vierpolige Klinkenstecker bzw. -buchsen eigenen sich hervorragend um die Anschlüsse sauber nach draußen zu führen.

Das Pinout ist in folgendem Bild zu erkennen:

Pinout Sonoff S20

Firmware konfigurieren

Als Firmware verwende ich ESPEasy (Github, Hauptseite). Dazu benötigt man zunächst die Software aus dem neusten Release von Github: https://github.com/letscontrolit/ESPEasy/releases und den dazu passenden Flasher für ESPs. Da die Anleitung etwas ausführlicher ist und ich dieses noch an einem Beispiel nachvollziehen muss, würde ich zunächst hierauf verzichten und dies noch nachreichen. Wenn ihr es trotzdem vermisst, einfach einen Kommentar schreiben.

Sensorpaket löten

Die angesprochenen I2C Sensoren können parallel angebracht werden und benötigen neben der Stromversorgung nur zwei Leitungen. Zu beachten ist dabei nur:

Sonoff S20Sensor
GNDGND
VCCVIN/VCC
RXSDA
TXSCL
Zwei Sensoren gestapelt

Sonoff S20 konfigurieren

Die neue Firmware stellt ein Webinterface zur Verfügung. Die IP-Adresse wird dabei beim Flashen angezeigt. Solltet ihr verpasst haben, die IP-Adresse zu notieren, könnt ihr in eurem Router nochmal nachsehen oder die IP-Adresse per nmap herausfinden.

Auf die Beschreibung der üblichen Konfigurationen wie WIFI, NTP und Co verzichte ich an dieser Stelle. Hier kann man sich gut durchklicken und die Infos sollten klar sein.

Controller konfigurieren

Für den Controller verwenden wir ein Raspi. Wie dieser konfiguriert wird, ist weiter unten zu sehen. Leider beißt sich hier die Katze in den Schwanz, denn für die Konfiguration benötigt man die IP-Adresse des Controllers. Bitte zunächst also den Raspi fertig einrichten und hier wieder weitermachen. Der Controller ist dazu da, die Daten, die am ESP Easy erfasst werden, weiterzuverarbeiten und zu speichern. Eine Beispielkonfiguration für den Raspi sieht wie folgt aus:

Controller-Konfigratuion für den Raspi

I2C Sensoren aktivieren

Um Pins für die Sensoren frei zu kriegen, muss zunächst der serielle Port abgeschaltet werden. Unter Tools -> Advanced -> Enable Serial Port deaktivieren. Anschließend den Controller neustarten. Danach unter Hardware -> I2C Interface die korrekten Pins einstellen:

Pinbelegung für die Sonoff S20

Wenn die Sensoren angeschlossen sind können diese über Tools -> I2C Scan getestet werden. Die Ausgabe sollte dabei wie folgt aussehen:

I2C Scan bei ESP Easy
I2C Scan bei ESP Easy

Im obigen Beispiel werden zwei Sensoren erkannt und gleich die vermuteten Sensoren angezeigt. In diesem Fall: BH1750 und BMP280. Die Sensoren können nun über Devices konfiguriert werden. Hier ein Beispiel für den BMP280. Zu beachten ist, dass „Send to Controller“ nicht aktiv ist, solange kein Controller konfiguriert ist. Ein Controller muss zunächst installiert werden.

Beispielkonfiguration für BMP280

So können auch noch weitere Sensoren konfiguriert werden. Ob die Sensoren vom ESP Easy unterstützt werden kann im Umfangreichen Wiki nachgelesen werden: https://www.letscontrolit.com/wiki/index.php?title=Devices

Server installieren und konfigurieren

Als Server fungiert ein einfacher Raspberry Pi 3 (35 €). Hier funktioniert aber alles auf dem man folgende Tools installieren kann:

  • InfluxDB
  • Grafana (optional)
  • Telegraf
  • Mosquitto

Ein allgemeiner Hinweis: Ich gehe in diesem Beitrag aus gründen der Komplexität nicht auf die Sicherheit eurere Systeme ein. Bitte informiert euch selbst, wie ihr  

Rasbian installieren

Als Betriebssystem für den Rapsi verwende ich Rasbian. Dazu gibt es offizielle Anleitungen, wie dieses installiert werden kann. In dieser Anleitung verzichte ich darauf.

Mosquitto installieren

Mosquitto ist ein einfacher MQTT message broker. Die Installation und das starten ist dabei relativ einfach:

sudo apt install mosquitto mosquitto-clients
sudo systemctl enable mosquitto.service
sudo systemctl start mosquitto.service

Mosquitto kann über das File /etc/mosquitto/mosquitto.conf konfiguriert werden. Wenn man keine Authentifizierung möchte, reicht die standard-config aus.

InfluxDB installieren

Als Datenbank-Backend verwenden wir InfluxDB. influx ist eine Zeitreihendatenbank und eignet sich besonders gut für die Art der erfassten Daten. Dazu zunächst die Datei
/etc/apt/sources.list.d/influxdb.list mit folgendem Inhalt erstellen:

deb https://repos.influxdata.com/debian stretch stable

Achtung: Hier wird eine Paketquelle aus einer potentiell nicht vertrauenswürdigen Quelle verwendet. Dies ist immer mit Vorsicht zu genießen. Da dies aber die Paketquelle von Influx selbst ist, ist diese relativ vertrauenswürdig.

Nun werden wir root, installieren den RSA-Key von influx und installieren die Datenbank:

sudo su
curl -sL https://repos.influxdata.com/influxdb.key | apt-key add -

apt update
apt install influxdb

Telegraf installieren und konfigurieren

Um die mqtt-Daten zu erfassen, kann Telegraf verwendet werden. Nebenbei erhält man dann auch noch Daten der Auslastung des Raspi. Das Paket telegraf kommt aus den selben Quellen wie die influx-Datenbank.

apt install telegraf

Nach der Installation muss die Config-Datei unter /etc/telegraf/telegraf.conf angepasst werden. Die Meisten Punkte müssen lediglich auskommentiert werden. Wenn keine weiteren Änderungen nötig sind, kann der unten stehende Config-Teil auch einfach ans Ende der Datei kopiert werden.

# Read metrics from MQTT topic(s)
[[inputs.mqtt_consumer]]

## MQTT broker URLs to be used. The format should be scheme://host:port,
## schema can be tcp, ssl, or ws.
servers = ["tcp://localhost:1883"]

## Topics to subscribe to
topics = ["#",]

Anschließend müssen noch beide Services enabled und gestartet werden.

systemctl daemon-reload

systemctl enable influxdb.service
systemctl start influxdb.service

systemctl enable telegraf.service
systemctl start telegraf.service

Grundsätzlich reicht dieses Setup schon aus. Auch können ab jetzt schon die Daten in der InfluxDB gefunden werden. Allerdings wollen wir die Daten auch visuell besser aufbereiten.

Grafana Installieren

Grafana eignet sich hervorragend für die Darstellung der von uns erfassten Daten. Leider ist die Version des grafana im rapsi-repo sehr alt, daher nehmen wir auch hier eine andere Version. Weitere Informationen zur Installation der Paketquellen zu grafana sind hier zu finden: http://docs.grafana.org/installation/debian/ Erstellt dazu /etc/apt/sources.list.d/grafana.list mit folgendem Inhalt:

deb https://packages.grafana.com/oss/deb stable main

Achtung: Hier wird eine Paketquelle aus einer potentiell nicht vertrauenswürdigen Quelle verwendet. Dies ist immer mit Vorsicht zu genießen. Dies ist allerdings der von Grafana selbst gewählte Weg. Nun muss noch der GPG-Key für das Grafana-Paket installiert werden:

curl https://packages.grafana.com/gpg.key | sudo apt-key add -

Anschließend

apt update
apt install grafana
systemctl daemon-reload
systemctl enable grafana-server.service
systemctl start grafana-server.service

Ab jetzt kann man unter der IP-Adresse des Raspis und dem Port :3000 Grafana erreichen:

http://192.168.123.123:3000

Für die weitere Konfiguration einfach dem Webinterface folgen und z.B. einen Benutzer einrichten bzw. Passwörter ändern. Der Standard-Benutzer ist admin mit dem Passwort admin.

Beispiel für Darstellung erfasster Daten

Ab hier sind euch alle Freiheiten gegeben, die erfassten Daten grafisch aufzubereiten. Als Beispiel die Erfassung der Raumtemperatur mit drei Sensoren. Dazu einfach ein „Panel“ hinzufügen und folgende Daten erfassen:

Beispiel für die grafische Aufbereitung der erfassten Daten mit Grafana

Anschließend können noch die Achsen und die Legende bearbeitet werden. Hier empfiehlt es sich die verschiedenen Einstellmöglichkeiten einfach durchzubprobieren. Man hat hier sehr viele Einstellmöglichkeiten. Anschließend sollten die Daten aufbereitet werden und als Grafik dargestellt werden:

Gimiks

Da wir nun Telegraf für die Datenerfassung nutzen, können wir auch die Daten des Rapsi auswerten. Telegraf erfasst alle Daten des Raspi automatisch. Also Load, Temperatur, CPU Auslastung etc. Natürlich ist das nicht nötig, aber wenn wir die Daten schon erfassen, können wir diese doch auch gleich mit Grafana auswerten. Eien tolle Funktion in Grafana: Man kann sich fertige Dashboards hinzufügen. Unter https://grafana.com/dashboards findet man verschiedene fertige Dahsboards mit einer dazugehörigen ID. Beispiele für Telegraf sind z.B. das Dashboard mit der ID 61 oder 928. Dazu einfach seitlich auf das „+“ -> Import Dashboard und anschließend die gewünschte ID eingeben. Im folgenden Dialog muss noch die Datenquelle (InfluxDB) angepasst werden auf telegraf.

Beispiel-Dashboard für Telegraf (928)

Updates

[04.02.2019] Update der Paketquellen und Gimiks

Grafana hat nun endlich selbst eine Paketquelle für das aktuelle Grafana. Dies wurde in der Anleitung ergänzt.

Es gibt jetzt auch die Anleitung wie ich die Prozessdaten des Raspi erfassen kann.

[11.02.2019] Mosquitto ergänzt

Ich habe doch tatsächlich den Teil über Mosquitto vergessen. ist jetzt ergänzt.

Threema Safe Backup mit Nextcloud WebDAV Funktion

Threema ist schon ein sehr toller Messenger, aber leider gibt es in Sachen Backup noch viel zu tun. Ein Schritt in die richtige Richtung ist der Threema Safe. Damit lassen sich grundlegende Einstellungen sichern. Unter anderem:

  • Threema-ID
  • Profildaten
  • Kontakte
  • Einstellungen

Was allerdings nicht gespeichert wird:

  • Chatverläufe
  • Mediendaten

Threema bietet für Threema Safe verschiedene Optionen. So kann man die Daten in der Cloud von Threema speichern, oder in einem eigenen Webdav-Verzeichnis. Da viele die Threema nutzen ausreichend paranoid sind um fremden Cloud-Speichern nicht zu verwenden und auch eine eigene Nextcloud betreiben ist die zweite Option das Mittel der Wahl.

Threema Safe in der eigenen Nextcloud

Die Nextcloud bietet alles, was Threema Safe benötigt. Eine Anleitung wie man dies einrichtet ist im Folgenden zu finden.

Serviceaccount Anlegen

Zunächst einmal sollte ein Service-Account für Threema angelegt werden. Die Threema-App benötigt Login-Daten für das Speichern des Backups. Hierfür sollte man wenn möglich nicht die Daten seinen Haupt-Accounts verwenden.

Neuen Account anlegen: Als Administrator einfach oben rechts auf den Benutzer klicken -> Benutzer -> Neuer Benutzer

Hier einfach einen Benutzernamen (z.B. „threema“ mit einem sicheren Passwort erzeugen. Passwort und Benutzername werden später benötigt.

Ordner-Sturktur anlegen

Threema verlangt eine spezielle Ordner-Sturktur auf dem Server. Legt einen beliebigen Ordner für die Backups an (möglichst ohne Leerzeichen). Innerhalb dieses Ordners MUSS ein Ordner namens „backups“ vorhanden sein. Außerdem muss eine Datei namens „config“ angelegt werden, mit folgendem bzw. ähnlichem Inhalt:

{
   "maxBackupBytes": 52428800,
   "retentionDays": 180
}

maxBackupBytes legt dabei die maximale Backup-Größe fest, retentionDays wie lange dieses Backup aufgehoben werden soll. Die Ordnerstruktur sollte danach etwa so aussehen:

Threema Safe Ordnerstruktur in der Nextcloud (Web-Ansicht)

Threema Safe Konfiguration in der App einstellen

Das schlimmste ist erledigt. Nun nur noch die Einstellungen in die Threema-App übernehmen:

Burger-Menü (oben Links) -> Meine Backups -> Threema Safe

Webdav-Verzeichnis: Das Nextcloud-Verzeichnis kann mit WebDAV über folgenden Link erreicht werden:

https://cloud.website.de/remote.php/dav/files/username/subfolder

Dabei müssen natürlich die URL zur Cloud, der Benutzername und der Subfolder angepasst werden. Als Beispiel meine Konfiguration:

https://cloud.timoswebsite.de/remote.php/dav/files/threema/threema-safe

Username und Passwort wie von euch im ersten Schritt gewählt. Werden die Einstellungen gespeichert fragt Threema noch nach einem Passwort mit dem das Backup auf dem Server verschlüsselt werden soll.

Nun sollte in der Threema-App folgende Ansicht sichtbar sein:

Threema Safe Einstellungen auf dem Handy mit der Nextcloud

Abschließende Hinweise

Threema speichert ab jetzt selbstständig die oben genannten Daten etwa alle 24 Stunden. Aber vorsicht: Dies ist kein vollständiges Backup!

Nach wie vor werden keine Gesprächsverläufe bzw. Mediendateien gesichert. Diese müssen weiterhin über „Meine Backups -> Daten-Backup“ erstellt und vom Handy gesichert werden. Hier muss Threema definitiv noch nacharbeiten.

Getränkekistenregal für Europalette

Heute gibt es mal wieder ein bisschen Spezielleres. Ich verkaufe ja Bier im Internet und benötige für meine Halle ein Regalsystem, in welchem ich viele Bierkisten passen. Fertige Regalsysteme im Netz fangen bei 300 Euro an. Das geht selbst besser.

Bauteile und Kosten

Da ich in der Halle viel Platz nach oben habe, wird das Regalsystem sehr hoch:

  • Höhe: ~2400 mm
  • Breite: ~1300 mm
  • Tiefe: ~400 mm

Die Breite ist so gewählt, dass genau vier Euro-Bierkisten nebeneinander passen und das Ganze auf eine Palette passt.

Insgesamt werden acht 30×50 mm Latten mit einer Länge von 3000 mm benötigt. Im Baumarkt um die Ecke gibt es das sägerau für 1,50 pro Latte. Insgesamt also 12 Euro.

Konstruktion und Zusammenbau

Ich habe zunächst die Latten auf Länge gesägt. Insgesamt werden benötigt:

  • 4x 2390 mm
  • 8x 1200 mm
  • 8x 340 mm

Es ist nicht unbedingt nötig aber die sägerauen Latten sind nicht sonderlich schön. Daher noch eine Runde über den Hobel mit allem.

Wenn alle Latten vorbereitet sind kann der Zusammenbau beginnen.

Die Latten der Voderseite sind 90 mm niedriger als auf der Rückseite. So bekommen die Kästen eine leichte Schräge und die Flaschen können besser entnommen werden. Das Ganze ist so konstruiert, dass auf die Palette nochmal eine Ebene an Kisten normal hingestellt werden kann. Pro Latte passen 4 Kisten, also Pro Regal 24 Kisten. Die Latten müssen viel aushalten, daher am besten mehrere (mindesten 2) Schrauben pro Latte verwenden.

Nachdem Vorder- und Rückseite montiert sind, können beide über Latten auf der Seite (340 mm) verbunden werden. Hier sind die Abstände nicht wichtig. Am besten über die gesamte höhe gleich verteilen.

Montage auf der Palette

Die Montage auf der Palette war relativ einfach. Ich habe diese lediglich mit jeweils 8 langen Schrauben im Holz der Europalette verankert. Bei der Montage des zweiten Regals ist aufgefallen, dass man hier etwas tiefer (etwa 10 cm) ansetzen sollte, da man sonst mit den überstehenden Ecken der Rückseite der Kisten an die des anderen Regals stößt. Dadurch verliert man die unterste Reihe direkt auf der Palette.

Fazit

Mit einfachsten Mitteln und etwa 20 Euro Geldeinsatz bekommt man ein Regal mit extra viel Platz und Stauraum. Das Regal steht jetzt schon mehrere Wochen voll beladen und hält nach wie vor einwandfrei.

gitea – Der bessere Alternative zu gogs (Howto zur Installation)

Hallo Leute,

die Entwicklung schreitet manchmal mit weiten Schritten voran und man muss immer am Ball bleiben um auf dem neusten Stand zu sein. Und so hab ich mir gitea mal etwas genauer angesehen.

Was ist gitea, gogs, gitlab?

gitea ist ein fork von gogs einem wirklich sehr coolem und Ressourcen sparenden github.com Klon. Mit beiden Systemen kann man sich quasi sein ganz persönliches github aufbauen und zwar auf seinen eigenen Servern.

Im übrigen lasse ich gitlab für mich mal vollkommen außen vor, weil es mir kalt über den Rücken läuft, wenn ich an Ruby on Rails Anwendungen denke und zudem gogs/gitea deutlich (!) Ressourcen sparender ist.

Ich selbst betreibe zwei Instanzen von gogs (privat und in der Forschungsgruppe) und möchte in diesem Artikel auch die Erfahrungen mit der Migration teilen.

Warum plötzlich gitea und nicht weiter mit gogs?

Wie bereits gesagt ist gitea ein Klon vom quelloffenen gogs. Die Hauptentwicklung bei gogs hing mehr oder weniger an einer Person und die Entwicklung stagnierte in letzter Zeit enorm. In gitea sind mittlerweile einige Feature eingearbeitet, welche so nicht bei gogs vorkommen. Einige Beispiele:

  • GPG verification
  • 2-Faktor-Authentifizierung
  • OpenID

Vor Allem hat mich die 2-Faktor-Authentifizierung überzeugt. Auch glaube ich, dass die Entwicklung durch mehr Personen einfach mehr leisten und schneller Updates bringt.

Gitea ist ja schön und gut, aber wie migriere ich von gogs?

Ich habe nun insgesamt 2 Instanzen von gitea aufgesetzt:

  • Neuinstallation unter Debian 9 (Stretch)
  • Migration von gogs 0.11.19.* unter Arch

Neuinstallation von gitea unter Debian 9 (Stretch)

Die einfachste Variante ist wohl die Neuinstallation. Alle der folgenden Befehle werden als sudo ausgeführt. Zunächst sollte ein User angelegt werden:

adduser --system git

Stellt sicher, dass git Installiert ist:

apt-get install git

Anschließend Ordner erstellen, gitea herunterladen und rechte anpassen:

mkdir -p /opt/gitea/custom/conf
mkdir /opt/gitea/data
cd /opt/gitea/
wget -O gitea https://dl.gitea.io/gitea/master/gitea-master-linux-amd64
chmod +x gitea
chown -R git:git /opt/gitea/

Die jeweils aktuelle gitea Version findet man unter https://github.com/go-gitea/gitea/releases oder https://dl.gitea.io/gitea/

Nun kann man gitea bereits mit folgendem Befehl starten:

./gitea web

Dieser Befehl legt auch schonmal eine leere config-datei unter /opt/gitea/custom/conf/ an.
Wir möchten gitea aber nicht ständig manuell starten und legen stattdessen ein .service-file für systemd an. Dazu im die Datei /etc/systemd/system/gitea.service mit folgendem Inhalt anlegen:

[Unit]
Description=Gitea
After=syslog.target
After=network.target
After=mariadb.service mysqld.service postgresql.service memcached.service redis.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=git
Group=git
WorkingDirectory=/opt/gitea
ExecStart=/opt/gitea/gitea web
Restart=always

[Install]
WantedBy=multi-user.target

Mit folgenden Befehlen kann nun gitea gestartet, gestopt und enabled werden (Achtung: Vorher den Befehl „systemctl daemon-reload“ ausführen):

systemctl enable gitea.service
systemctl start gitea.service
systemctl stop gitea.service
systemctl status gitea.service

Hier auch noch der Auszug aus meiner nginx-config:

########################################
#
# git.website.tdl
#
########################################

server {
        listen 80;
        listen [::]:80;

        error_log /var/log/nginx/error.log warn;

        server_name git.website.tdl;
        return 301 https://$server_name$request_uri;
}

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

        server_name git.website.tdl;

        error_log /var/log/nginx/error.log warn;

        proxy_cache off;
        ssl_certificate /etc/letsencrypt/live/git.website.tdl/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/git.website.tdl/privkey.pem;
        ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
        add_header X-Frame-Options SAMEORIGIN;
        add_header X-Content-Type-Options nosniff;
        ssl_session_tickets off; # Requires nginx >= 1.5.9
        ssl_stapling on; # Requires nginx >= 1.3.7
        ssl_stapling_verify on; # Requires nginx => 1.3.7
        ssl_trusted_certificate /etc/letsencrypt/live/git.website.tdl/chain.pem;
        resolver 8.8.8.8 8.8.4.4 208.67.222.222 208.67.220.220 valid=300s;
        resolver_timeout 5s;
        ssl_dhparam /etc/nginx/ssl/dhparams.pem;
        
	# Disalow to read .htaccess-Files
        location ~/\.ht {
                deny all;
        }

	client_max_body_size 1G;

	# Configuration for letsencrypt
    	location /.well-known {
		alias /srv/http/git.website.tdl/.well-known;
    	}

        location / {
                proxy_pass http://localhost:3000/;
        }

}

Es wird ein einfacher proxy_pass angelegt. Gitea sollte damit im Internet erreichbar sein. Nun noch wie üblich eine Datenbank anlegen (ich gehe davon aus, das schafft ihr) und man kann auch schon los legen.

Migration unter Arch

Zunächst einmal muss gitea installiert werden. Ich empfehle dabei das gitea aus dem user repository (mehr Infos: https://wiki.archlinux.org/index.php/Gitea) zu nehmen. Ich selbst habe mich dafür entschieden, die installation analog zu der unter Debian zu machen, da ich hier gerne das Upgrade selbst durchführen will.

Leider funktioniert die einfache Migration wie hier beschrieben nicht mehr: https://docs.gitea.io/en-us/upgrade-from-gogs/ Dazu wäre Version 0.9 nötig. Ich habe leider auch keine elegante Variante gefunden. Ich habe zwar die aufgezeigte Migration versucht, aber die Datenbank ist einfach nicht mehr konsistent. Einzige Migrationsmöglichkeit ist es, die Repos einzeln zu migrieren.

Kostenlose S/MIME Zertifikate vom Fraunhofer SIT

Normalerweise halte ich mich ja vor Dingen fern, die „Volks-“ im Namen haben, aber die Volksverschlüsselung des Fraunhofer SIT klingt einfach zu verlockend.

TL:DR; Bei der Volksverschlüsselung erhält man nach Authentifizierung ein für 2 Jahre gültiges S/MIME Zertifikat. Leider ist das Zertifikat selbst signiert, aber das Fraunhofer Institut arbeitet wohl schon an einer Aufnahme in die trusted stores.

Was ist S/MIME?

Secure / Multipurpose Internet Mail Extensions (S/MIME) ist ein toller weg seine Emails zu signieren und zu verschlüsseln. Es ist vergleichbar mit GnuPG ist aber deutlich besser in alle Email-Clients integriert und man benötigt keine Plugins oder Erweiterungen. Mehr dazu hier: http://t3n.de/news/mails-verschlusseln-eigentlich-482381/

Wie bekomme ich das Zertifikat?

Da für das Zertifikat der vollständige Name überprüft werden muss, funktionieren derzeit leider nur folgende Verifikationsmethoden:

  1. Personalausweis: Man nutzt die tollen Funktionen des Personalausweises und hat ein Lesegerät dafür.
  2. Telekom: Man ist Festnetzkunde der Telekom und kann über die Rechnung seinen Namen verifizieren
  3. Registrierungscode: Man findet jemanden vom Fraunhofer auf einer Veranstaltung und lässt sich vom Mitarbeiter verifizieren.

Die letzte Methdoe habe ich gewählt und beschreibe im Folgenden wie man sich das Zertifikat holt.

Leider gibt es die Antrags-Software derzeit nur für Windows. Daher empfehle ich einfach kurz eine Windows VM anzulegen und mit der Software ein Zertifikat beantrage. Das Tool einfach herunterladen, installieren und folgende Identitäsnachweis wählen:

Anschließend Email-Adresse und Antrags-Code auf der Karte eingeben. Nach der Überprüfung wird noch ein Bestätigungscode auf die angegebene Email-Adresse geschickt und schon ist der Antrag fertig.

Vergesst nicht euren Sperrcode sicher aufzuheben. Dieser wird benötigt, wenn das Zertifikat vor dem Ablaufdatum zurückgezogen werden muss.

Zertifikat exportieren

Zum exportieren des Zertifikates, muss links im Menü das Zahnrad ausgewählt werden und anschließend „Zertifikat exportieren“. Achtet darauf, dass ihr ein .p12 Zertifkat exportiert. Dieses kann in der Regel für alle Systeme verwendet werden.

Zertifikat in Thunderbird einbinden

Die Einbindung in Thunderbird ist dann eigentlich ein Kinderspiel. Man geht zu seinen Email-Konten (unter Linux: Bearbeiten -> Konten Einstellungen -> S/MIME-Sicherheit.

Anschließend wählt man für die Digitale Unterschrift und Verschlüsselung das richtige .p12 Zertifikat aus (gibt dann noch ein eventuell vergebenes Passwort ein) und schon wars das.

Es muss dann außerdem unter Bearbeiten -> Einstellungen -> Erweitert -> Zertifikate Verwalten das Zertifikat vom „Fraunhofer SIT“ suchen und bei allen Zertifikaten das „Vertrauen bearbeiten“ und alle drei Häckchen setzen.

Um zu testen, ob alles funktioniert hat, sendet das System automatisch eine verschlüsselte Email. Wenn alles richtig eingerichtet ist, solltet ihr die Nachricht ohne Probleme entschlüsseln können.