Installation

yaourt -S --noconfirm smartgit

Openrepo

Oft bewegt man sich in der Konsole in einem Git Repository und möchte dieses mit SmartGit verwenden. Normalerweise öffnet man SmartGit und verwendet Open Repository um ein existierendes Repository zu öffnen. Es gibt aber den CLI Parameter open. Dieser öffnet das Repository das als Parameter übergeben worden ist. Hier mag SmartGit keine Verzeichnisse die per Symlink geöffnet werden (z.B. Angabe von .). Das Eval von $(pwd) zur Hilfe wandelt das aktuelle Verzeichnis in einen absoluten Pfad um. Das ganze in ein Shell Skript openrepo verpackt, macht es jetzt sehr einfach ein Repository aus dem Verzeichnis heraus zu öffnen.

#!/bin/bash

#
# opens git repository in current dir in smartgit
#
smartgit --open $(pwd)

Pfade anpassen

Das Skript liegt im lokalen bin Pfad im Homeverzeichnisses (~/bin). Damit der Pfad beim starten einer shell eingebunden wird, empfiehlt es sich ein Skript local-user-bin.sh im /etc/profiles.d-Verzeichnis anzulegen mit folgendem Inhalt:

# If user ID is greater than or equal to 1000 & if ~/bin exists and is a directory & if ~/bin is not already in your $PATH
# then export ~/bin to your $PATH.
if [[ $UID -ge 1000 && -d $HOME/bin && -z $(echo $PATH | grep -o $HOME/bin) ]]
then
    export PATH="${PATH}:$HOME/bin"
fi

DNS von Cloudflare

Unter der Quad 1 Adresse 1.1.1.1 ist der neue und schnelle DNS Server von Cloudflare zu erreichen.

Geschwindigkeit

Der DNS Server ist wohl schneller als andere bekannte Server (wie z.B. Google mit 8.8.8.8 oder 9.9.9.9).

Router Einstellung überprüfen

Viele Router erlauben die Angabe eines separaten DNS Servers. Ich hatte den Verdacht, dass der Router meine Einstellung ignoriert. Wie lässt sich das ganze überprüfen? Nach kurzer Recherche im Netz bin ich auf dig gestoßen.

dig +trace google.com

Der Parameter +trace listet alle Hops der verwendeten DNS Server auf. Hier die Ausgabe, wenn ich in der /etc/resolv.conf den DNS Server 1.1.1.1 direkt eintrage. Wie erwartet wird als Zwischenstation der Server 1.1.1.1 verwendet.

[sascha@manjaro ~]$ dig +trace google.com

; <<>> DiG 9.12.1 <<>> +trace google.com
;; global options: +cmd
.                       3395    IN      NS      a.root-servers.net.
.                       3395    IN      NS      b.root-servers.net.
.                       3395    IN      NS      c.root-servers.net.
.                       3395    IN      NS      d.root-servers.net.
.                       3395    IN      NS      e.root-servers.net.
.                       3395    IN      NS      f.root-servers.net.
.                       3395    IN      NS      g.root-servers.net.
.                       3395    IN      NS      h.root-servers.net.
.                       3395    IN      NS      i.root-servers.net.
.                       3395    IN      NS      j.root-servers.net.
.                       3395    IN      NS      k.root-servers.net.
.                       3395    IN      NS      l.root-servers.net.
.                       3395    IN      NS      m.root-servers.net.
.                       3395    IN      RRSIG   NS 8 0 518400 20180531050000 20180518040000 39570 . psZtuQna4T48aHPAQmNtzhKWnQo0EZqjKWVbRQDUWyoBf4ANirz7Urjh qT6Ckuqgt481ZO3PLoYcC7+5QZ8UIBn/we0Iv9MLqFSkJvCLkQkh0GnR AfGcsKBcGWoVECSIyilAXyD5+6fiFj50qnjdOVVym6na5xBQ+e4CRKVs zbPJF1wOjVYIUPdo6tbfWDF6Jpw6cIQ78zJvLTgZ6dhAv8RTWxANwdAI 69iuG0+AEMKAJ+MYl7kPKQ5rIEjwI3KbW9UrZ75VuhmTE8VJF77k1eLb rTe03OLIDFiFPxnQWBR2myYiPdRogRZ+owM0U1pkZavf4Ku8M7hWrm9X GuM14A==
;; Received 717 bytes from 1.1.1.1#53(1.1.1.1) in 23 ms

com.                    172800  IN      NS      e.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    172800  IN      NS      j.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    172800  IN      NS      i.gtld-servers.net.
com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      g.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      NS      k.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      d.gtld-servers.net.
com.                    86400   IN      DS      30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.                    86400   IN      RRSIG   DS 8 1 86400 20180531050000 20180518040000 39570 . fmyvl32YT59pYWAytqMy0LygfSPxwOVkecnTRqgS5x3Aqp1DquqI71We IbDte4ynlZ3WUOcVfOwYSBXrrfyzUxtAPNJgPm3yN2Qg9di6wqgoU8EB 3xapRgkn8WL1PoHDp58hOJP48/mqdkzslvfCqupNSMrZdscONVxpUQxZ NBjlmJ84ItBljqN5CD6Y21NEF80AvO0Dt1NI42hmvf2kyqqmvfyNJMAT 12BHOifxxhuuMsmE60a7XFo8RXBvBAFLF38L5Xgw9Ugp/IbNEwfJY5Cd P9nXFL0ECucUmId6Dc57pqnPMYOqqnhqTqLI7PLCW2skD5kuFHcX5O9Z D4EPXw==
;; Received 1170 bytes from 198.41.0.4#53(a.root-servers.net) in 52 ms

google.com.             172800  IN      NS      ns2.google.com.
google.com.             172800  IN      NS      ns1.google.com.
google.com.             172800  IN      NS      ns3.google.com.
google.com.             172800  IN      NS      ns4.google.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A  NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20180524044604 20180517033604 36707 com. mj3CI+FBMRijjX08qU/2W6bUPfVM33uf+Cn3sEadXviVBzGOcgwhXrvm GTTLUWLECm1j4I8+ALiWOsVGQM1pN2+xmK/Ed60oLiRSxlsYDJfZFzka 2H4HlxzOPnNNSXourkv8GJghwqxPnqoLRlfhKFB03ifnvv2kdcwVj5H9 rNs=
S849LHDDSVU9A9N2FIRO5NKMQB321BEP.com. 86400 IN NSEC3 1 1 0 - S84CEFMDU6ABFSN4V0L2VLLOASCD5IV2  NS DS RRSIG
S849LHDDSVU9A9N2FIRO5NKMQB321BEP.com. 86400 IN RRSIG NSEC3 8 2 86400 20180525051007 20180518040007 36707 com. MKlqmcYrMRkMA/pzk3g0/Z6pCbJ47y94ie7DMK1uoBa3u7m8GVWMackv s+gymEghFvgrm0El+iQdohQ5gZWayVhHwzsMx8OtNFDJasTR3ztWAzON pNnORavjkfOJpI3Hs0Y3QMxK7DFHPsp5EPuDSTrUH1E6uvPOmLvB+EPO Jek=
;; Received 772 bytes from 192.31.80.30#53(d.gtld-servers.net) in 30 ms

google.com.             300     IN      A       172.217.17.142
;; Received 44 bytes from 216.239.38.10#53(ns4.google.com) in 38 ms

Hingegen wenn der Router verwendet wird, dann taucht der Server 1.1.1.1 nicht auf. Ihr solltet die Einstellungen in eurem Router überprüfen, wenn ihr Wert auf Daten-schutz/sicherheit legt.

[sascha@manjaro ~]$ dig +trace google.com

; <<>> DiG 9.12.1 <<>> +trace google.com
;; global options: +cmd
.                       2671    IN      NS      a.root-servers.net.
.                       2671    IN      NS      b.root-servers.net.
.                       2671    IN      NS      c.root-servers.net.
.                       2671    IN      NS      d.root-servers.net.
.                       2671    IN      NS      e.root-servers.net.
.                       2671    IN      NS      f.root-servers.net.
.                       2671    IN      NS      g.root-servers.net.
.                       2671    IN      NS      h.root-servers.net.
.                       2671    IN      NS      i.root-servers.net.
.                       2671    IN      NS      j.root-servers.net.
.                       2671    IN      NS      k.root-servers.net.
.                       2671    IN      NS      l.root-servers.net.
.                       2671    IN      NS      m.root-servers.net.
.                       2671    IN      RRSIG   NS 8 0 518400 20180531050000 20180518040000 39570 . psZtuQna4T48aHPAQmNtzhKWnQo0EZqjKWVbRQDUWyoBf4ANirz7Urjh qT6Ckuqgt481ZO3PLoYcC7+5QZ8UIBn/we0Iv9MLqFSkJvCLkQkh0GnR AfGcsKBcGWoVECSIyilAXyD5+6fiFj50qnjdOVVym6na5xBQ+e4CRKVs zbPJF1wOjVYIUPdo6tbfWDF6Jpw6cIQ78zJvLTgZ6dhAv8RTWxANwdAI 69iuG0+AEMKAJ+MYl7kPKQ5rIEjwI3KbW9UrZ75VuhmTE8VJF77k1eLb rTe03OLIDFiFPxnQWBR2myYiPdRogRZ+owM0U1pkZavf4Ku8M7hWrm9X GuM14A==
;; Received 717 bytes from 192.168.2.1#53(192.168.2.1) in 26 ms

com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      d.gtld-servers.net.
com.                    172800  IN      NS      e.gtld-servers.net.
com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      g.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      i.gtld-servers.net.
com.                    172800  IN      NS      j.gtld-servers.net.
com.                    172800  IN      NS      k.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    86400   IN      DS      30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.                    86400   IN      RRSIG   DS 8 1 86400 20180531050000 20180518040000 39570 . fmyvl32YT59pYWAytqMy0LygfSPxwOVkecnTRqgS5x3Aqp1DquqI71We IbDte4ynlZ3WUOcVfOwYSBXrrfyzUxtAPNJgPm3yN2Qg9di6wqgoU8EB 3xapRgkn8WL1PoHDp58hOJP48/mqdkzslvfCqupNSMrZdscONVxpUQxZ NBjlmJ84ItBljqN5CD6Y21NEF80AvO0Dt1NI42hmvf2kyqqmvfyNJMAT 12BHOifxxhuuMsmE60a7XFo8RXBvBAFLF38L5Xgw9Ugp/IbNEwfJY5Cd P9nXFL0ECucUmId6Dc57pqnPMYOqqnhqTqLI7PLCW2skD5kuFHcX5O9Z D4EPXw==
;; Received 1170 bytes from 198.97.190.53#53(h.root-servers.net) in 131 ms

google.com.             172800  IN      NS      ns2.google.com.
google.com.             172800  IN      NS      ns1.google.com.
google.com.             172800  IN      NS      ns3.google.com.
google.com.             172800  IN      NS      ns4.google.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A  NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20180524044604 20180517033604 36707 com. mj3CI+FBMRijjX08qU/2W6bUPfVM33uf+Cn3sEadXviVBzGOcgwhXrvm GTTLUWLECm1j4I8+ALiWOsVGQM1pN2+xmK/Ed60oLiRSxlsYDJfZFzka 2H4HlxzOPnNNSXourkv8GJghwqxPnqoLRlfhKFB03ifnvv2kdcwVj5H9 rNs=
S849LHDDSVU9A9N2FIRO5NKMQB321BEP.com. 86400 IN NSEC3 1 1 0 - S84CEFMDU6ABFSN4V0L2VLLOASCD5IV2  NS DS RRSIG
S849LHDDSVU9A9N2FIRO5NKMQB321BEP.com. 86400 IN RRSIG NSEC3 8 2 86400 20180525051007 20180518040007 36707 com. MKlqmcYrMRkMA/pzk3g0/Z6pCbJ47y94ie7DMK1uoBa3u7m8GVWMackv s+gymEghFvgrm0El+iQdohQ5gZWayVhHwzsMx8OtNFDJasTR3ztWAzON pNnORavjkfOJpI3Hs0Y3QMxK7DFHPsp5EPuDSTrUH1E6uvPOmLvB+EPO Jek=
;; Received 772 bytes from 192.48.79.30#53(j.gtld-servers.net) in 34 ms

google.com.             300     IN      A       172.217.17.142
;; Received 44 bytes from 216.239.36.10#53(ns3.google.com) in 35 ms

Ich habe das ganze auf einem alten Router von Vodafone getestet. Es handelt sich um eine EasyBox 602 mit der aktuellsten Firmware.

Gitea als Webfrontend für GIT

Gitea ist ein auf Gogs basierender Fork für GIT. Aktuell ist Gitea in der Version 1.4.1 verfügbar.

NginX als Reverse Proxy

Betreibt man mehrere Domains/Webdienste auf einem Server (Port 80), so muss eine Anfrage an den passenden Dienst/Port weitergeleitet werden. Hierfür verwendet man einen Reverse Proxy. Ich habe hier auf der Arch Box einen NginX laufen.

Fehler beim pushen großer Commits

Gibt es einen Fehler beim pushen eines Commit mit dem Fehlercode 413, der so aussieht…

413 Request Entity Too Large

dann muss die Konfiguration von NginX angepsasst werden. Diese befindet sich unter /etc/nginx/nginx.conf. Für jeden Dienst gibt es genau einen Server Abschnitt in der Konfiguration.

server {
    listen 80;
    server_name git.xxxx.de;
    client_max_body_size 100M; # Push large objects to gitea

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

Damit es nicht zu einer Fehlermeldung kommt, muss der Parameter client_max_body_size angepasst werden. Ich habe hier die maximale Größe auf 100MB beschränkt. Dieses sollte für die allermeisten Anwendungen eines Git-Repositorys reichen.

Ascii Art sind auch heute noch nett anzusehen. Auch in der Dokumentation im Quelltext oder der Banner von Spring Boot werden sie noch verwendet.

Installation unter Arch Linux

yaourt --noconfirm -S figlet figlet-fonts ascii-design

Fonts Pfad anpassen

Die Fonts für figlet befinden sich unterhalb des Verzeichnisses /usr/share/figlet/fonts/. Dieses muss beim ersten Start der Anwendung Ascii Design angegeben werden.

Font

Für Quelltexte finde ich den Font Banner3 cool.

Die Modularisierung und die damit tief eingreifenden Änderungen in das Java System führen dazu das nicht alle Java Programme auf anhieb unter Java 9 einwandfrei laufen. Unter Archlinux ist eine Paralellinstallation von verschiedenen Java Versionen gleichzeit möglich.

Installation Java 9

pacman -S jdk9-openjdk

Verwaltung der Java Versionen

Die verschiedenen Versionen verwaltet Arch Linux über eine kleines Skript (/usr/bin/archlinux-java). Die aktuell vorhandenen Versionen und aktivierte Version kann man über status anzeigen lassen.

[sascha@Laptop ~]$ archlinux-java status
Available Java environments:
java-8-jdk (default)
java-9-jdk
java-9-openjdk

Das Skript passt die Links /usr/lib/jvm/default und /usr/lib/jvm/default-runtime. Die Links sollten nur über das Hilfsskript aktualisiert werden.

Programme mit einer anderen Java Version starten

Programme die nur mit einer bestimmten Version starten können weiterhin mit Hilfe der Umgebungsvariablen gestartet werden. Hierzu kann wiederum ein kleines Skript genutzt werden.

#!/bin/sh
export PATH=/usr/lib/jvm/java-8-openjdk/jre/bin/:$PATH
exec "$@"

Auruf mit ~/bin/jre8 Pfad_zur_Anwendung Parameter

Duck DNS (www.duckdns.org) bietet eine einfache, schnelle und vor allem eine kostenlose Möglichkeit ein DNS Eintrag zu erhalten. Eine Registration ist nicht nötig, wenn man z.B. über einen Google Account (OAuth2) verfügt. Hier genügt es sich mit dem Button anzumelden.

Unter dem Link „install“ finden sich für die gängigsten Router, Betriebssystem und weitere Programme Installationsanleitungen.

Beispiel Fritzbox mit 2 SubDomains

  • Anmeldung an der Fritzbox
  • Internet –> Freigaben –> Dynanic DNS
  • Benutzerdefiniert
  • Benutzername ist die Emailadresse mit der man sich registriert hat
  • Domainname eine der SubDomains eintragen
  • Update URL –> https://www.duckdns.org/update?domains=SubDomain1,SubDomain2&token=XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&ip=<ipaddr>&ipv6=<ip6addr>

Es muss nur die SubDomain angegeben werden. Mehrere Domains können per Komma getrennt gelistet werden. Den Update-Link inklusive Token aus der Installastionsanleitung kopieren und die Domains anpassen. ipaddr und ipv6addr sind Platzhalter in der Fritzbox und müssen genauso übergeben werden.