vdradmin-go als vdradmin(-am) Alternative
Ich benutze vdradmin-am jetzt schon seit etlichen Jahren um meinen VDR (Video Disc Recorder) zu steuern. Hauptsächlich um Sendungen aufzuzeichnen und zu guggen, was so um Fernsehen läuft. Für Live-TV nehme ich den VDR so gut wie nicht her, da ich alles aufzeichne, was ich anschauen will. vdradmin-am hat jetzt doch schon einige Jahre auf dem Buckel und ist in Perl geschrieben. Ich hatte schon seit Jahren die Idee, dass mal in Go neu zu schreiben, aber war zeitlich etwas schwierig. Mit KI sieht die Sache jetzt anders aus. Es hat mich zwar trotz KI einige Abende und Wochenenden gekostet, bis alles soweit lief, wie ich das wollte, aber jetzt habe ich tatsächlich vdradmin-go fertig.
Man kann von KI halten was man will, aber mich fasziniert das immer wieder, was man damit machen kann. Ich hab jetzt genau den vdradmin, denn ich schon immer haben wollte. Die Hauptziele waren hauptsächlich:
- Moderne Architektur: Hexagonale Architektur (ports & adapters)
- Clean code, geschrieben in Go und Go best practices
- Moderne UI: Modernes CSS, minimales JavaScript und wo man es doch braucht htmx für die Interaktion
- Themes: Sind schon über 30 fertige Themes drin und lässt sich auch leicht um Neue erweitern
- Archiv: Wenn ich eine Sendung archivieren will, brauche ich jetzt bloß auf den Archiv Button zu drücken bei der Aufnahme und schon wird das Ganze im Hintergrund in .mp4 oder .mkv konvertiert. Danach sind die Aufnahmen erheblich kleiner als die ganzen .ts files. Das System ist allerdings ziemlich meinen Bedürfnissen angepasst.
- Das Konfigurationsdatei ist eine YAML-Datei, dass man entweder selber editiert oder über die UI ändert.
- Fernsehen kann man direkt im Browser. Das benötigt dann das vdr-streamdev-server Plugin und auch ffmpeg.
- Damit das mit der EPG Suche etwas besser klappt, wird das vdr-epgsearch Plugin benötigt.
Ansonsten ist das Ganze ein Go Binary und damit kann man dann schon Einiges anfangen. Die o.g. Plugins und ffmpeg sollte man trotzdem installieren, damit man die volle Funktionalität hat. Und so sieht das Ganze dann aus (oben das "Dark" und unten "Spaceship Grey Dark" Theme):
Posted at 10:29nachm. Feb. 16, 2026 by cetixx in News | Kommentare [0]
Eigenen Kubernetes Cluster bei Scaleway hosten
Gab schon länger kein Update mehr auf meiner Seite, aber ich war mit anderen Dingen beschäftigt ;-) U.a. habe ich einige Posts für mein englisches Blog geschrieben, wie man seinen eigenen Kubernetes Cluster mit Hilfe von Ansible bei Scaleway hochzieht, den man produktiv durchaus einsetzen kann und das für nicht allzu viel Geld.
Hier eine Übersicht über meine bisherigen Posts:
Kubernetes the not so hard way with Ansible (at Scaleway) - Part 1 - The basics
Kubernetes the not so hard way with Ansible (at Scaleway) - Part 2 - Harden the instances
Kubernetes the not so hard way with Ansible (at Scaleway) - Part 3 - Peervpn
Kubernetes the not so hard way with Ansible (at Scaleway) - Part 4 - Certificate authority (CA) [updated for K8s v1.8]
Kubernetes the not so hard way with Ansible (at Scaleway) - Part 5 - etcd cluster [updated for K8s v1.8]
Kubernetes the not so hard way with Ansible (at Scaleway) - Part 6 - Control plane [updated for K8s v1.8]
Kubernetes the not so hard way with Ansible (at Scaleway) - Part 7 - The worker [updated for K8s v1.8]
Kubernetes the not so hard way with Ansible (at Scaleway) - Part 8 - Ingress with Traefik
Kubernetes the not so hard way with Ansible (at Scaleway) - Part 9 - Upgrading Kubernetes
Kubernetes the not so hard way with Ansible (at Scaleway) - Part 10 - Network policies with kube-router
Posted at 10:56nachm. Dez. 04, 2017 by cetixx in Links | Kommentare [0]
m4a Dateien in mp3 konvertieren mit ffmpeg unter Linux
Mit folgender Kommandozeile kann man mit ffmpeg m4a Sounddateien ins mp3 Format umwandeln:
find . -type f -name '*.m4a' -exec bash -c 'ffmpeg -i "$0" "${0/%m4a/mp3}"' '{}' \;
Mit find suchen wir uns erst mal alle m4a Dateien und für jede Datei wird eine neue Bash Shell gestartet. Diese startet ffmpeg, übergibt die gefundene Datei an ffmpeg als Input (-i). Dahinter wird die Zieldatei angegeben. Dabei ersetzen wir die Dateiendung m4a durch mp3.
Posted at 07:34nachm. Dez. 28, 2016 by cetixx in Tipps | Kommentare [0]
KDE Plasma Display Helligkeit (Display Brightness)
Wenn bei KDE Plasma mal wieder der Helligkeitsregler (Screen / Display brightness) versagt und genau nichts macht (was bei mir unter Archlinux ab und an passiert) und man auf das nächste Update wartet, kann man sich der weilen so behelfen, das man die Hintergrundbeleuchtung per Kommandozeile einstellt. Z.B.:
echo 700 > /sys/class/backlight/gmux_backlight/brightness
In meinem Fall steht hier gmux_backlight (MacBook Pro, der unter Linux läuft). Bei anderen muss man unter /sys/class/backlight/ einfach schauen, welche Backlights angezeigt werden (z.B. intel_backlight). Den aktuellen Wert kann man sich mit cat /sys/class/backlight/*/brightness ausgeben lassen. Für das gmux_backlight war der Wert bei mir bei 1023. Am Besten geht man in 100erter Schritten nach unten bis man die gewünschte Helligkeit eingestellt hat.
Posted at 08:44nachm. Nov. 07, 2016 by cetixx in Tipps | Kommentare [0]
Website jetzt mit über HTTPS erreichbar
Hat ne Weile gedauert, aber jetzt ist tauceti.net endlich nur noch über eine sichere https-Verbindung erreichbar. Verwendet habe ich ein kostenloses Let's Encrypt Zertifikat. Das Ganze kann man mit Hilfe von Certbot relativ einfach einrichten. Einfach Webserver (z.B. nginx, Apache, ...) und Betriebssystem auswählen und schon bekommt man entsprechende Informationen, was man es einrichten muss. Entweder ziemlich automatisiert (hier sind nur ein paar Handgriffe notwendig) oder mit ein bisschen mehr Handarbeit, aber dafür mehr Eingriffsmöglichkeiten während der Einrichtung.
Die Zertifkate sind jeweils 3 Monate gültig und man richtet sich am Besten einen Cronjob o.ä. ein, der dann automatisiert ein neues Zertifikat einrichtet, bevor das Alte abläuft.
Posted at 10:53nachm. Nov. 03, 2016 by cetixx in General | Kommentare [0]
Google Storage mit s3cmd und aws cli benutzen
Wenn man s3md mit Google Cloud Storage benutzen will, muss man in dessen Konfigurationsdatei .s3cfg Folgendes anpassen:
access_key = xxx
secret_key = xxx
host_base = storage.googleapis.com
host_bucket = %(bucket).storage.googleapis.com
xxx muss man natürlich durch seine entsprechenden Keys ersetzen, die man sich über die Google Console/UI (Storage -> Settings -> Interoperability) erstellen kann (nachdem man den interoperable access aktiviert hat natürlich). Diese Keys sind pro Projektmitglied und nicht pro Projekt (also jeder hat seinen eigenen Key).
Bei der AWS CLI (aws Kommando) konnte ich die Einstellungen in .aws/config irgendwie nicht nutzen. Hier half nur die Keys als Env. Variable zu setzen und den Endpoint zu ändern:
export AWS_ACCESS_KEY_ID=xxx
export AWS_SECRET_ACCESS_KEY=xxx
aws s3 --endpoint-url https://storage.googleapis.com ls
Auch hier natürlich xxx entsprechend ändern.
Posted at 09:59vorm. Okt. 20, 2016 by cetixx in Tipps | Kommentare [0]
How it feels to learn JavaScript in 2016
Ein wirklich lustiger Artikel über JavaScript Frontend-Entwicklung.
Posted at 11:37vorm. Okt. 11, 2016 by cetixx in General | Kommentare [0]
nc (netcat) als primitiver Portscanner
Wenn man kurz mal wissen möchte, ob z.B. eine Portrange offen ist, geht das recht flott mit nc (netcat) z.B.:
nc -w 2 -zv 10.0.0.1 30000-30003
Connection to 10.0.0.1 30000 port [tcp/*] succeeded!
Connection to 10.0.0.1 30001 port [tcp/*] succeeded!
Connection to 10.0.0.1 30002 port [tcp/*] succeeded!
Connection to 10.0.0.1 30003 port [tcp/*] succeeded!
Mit -w geben wir ein Timeout von 2 Sek. an, damit wir nicht so lange warten müssen. -z prüft, ob der Port offen ist, -v macht nc etwas gesprächiger und hinten gibt man dann noch die IP und die Port(s) an.
Posted at 01:17nachm. März 24, 2016 by cetixx in General | Kommentare [1]
Läuft Docker Container im privilegierten Modus?
Wie findet man raus, ob ein Docker Container im privilegierten Modus läuft?
docker inspect --format='{{.HostConfig.Privileged}}' <container id>
Posted at 01:13nachm. März 24, 2016 by cetixx in Books | Kommentare [0]
PID eines Prozesses auf dem Docker Host einem Docker Container zuordnen
Wenn man auf einem Server Docker am Laufen hat, sieht man vielleicht mal Prozesse auf diesem Host mit top, ps o.ä. mit hoher CPU-Belastung. Nun möchte man wissen, in welchem Container dieser Prozess läuft. Das findet man mit folgendem Kommando raus.
sudo docker ps -q | sudo xargs docker inspect --format '{{.State.Pid}}, {{.Id}}'
Die erste Spalte zeigt die PID an und dahinter die Container ID.
Posted at 03:00nachm. März 01, 2016 by cetixx in General | Kommentare [0]
Ersatz für KDE Quadkonsole
Bei KDE 4 hatte ich immer u.a. die KDE App Quadkonsole im Einsatz. Wird aber leider schon länger nicht mehr weiterentwickelt und unter Archlinux mit KDE Plasma 5 klappte das mit selber kompilieren auch nicht so wirklich. Als Ersatz habe ich Terminator gefunden, eine Konsole mit der man das Konsolenfenster in mehrere Teile splitten kann.
Posted at 01:25vorm. Sep. 08, 2015 by cetixx in Tipps | Kommentare [0]
Audex - KDE CD Ripper
Ein wirklich gutes Programm zum CD rippen unter KDE ist Audex. Alles Mögliche lässt sich einfach und praktisch über die GUI einstellen inkl. der Dateinamen usw. Ziemlich durchdacht.
Posted at 01:32nachm. Aug. 31, 2015 by cetixx in Links | Kommentare [0]
Wo ist mein Speicherplatz hin?
cd /in/ein/verzeichnis
du -h . | grep -P '^[0-9\.]+G
Alternativ das Tool ncdu installieren...
Posted at 12:55vorm. Aug. 08, 2015 by cetixx in Tipps | Kommentare [0]
Gentoo - Alle installierten Pakete auflisten
equery list "*"
Posted at 12:55vorm. Aug. 08, 2015 by cetixx in Tipps | Kommentare [0]
Muguet - DNS Server & Reverse Proxy für Docker
Muguet ist ein DNS Server & Reverse Proxy für Docker, der automatisch generierte Hostnamen zu Conainter IPs auflöst. Außerdem enthält Muguet einen Reverse Proxy, der den Zugriff auf Web-Apps in den Container auf Port 80 ermöglicht.
Posted at 12:54vorm. Aug. 08, 2015 by cetixx in Links | Kommentare [0]