Allen meinen Leserinnen und Lesern wünsche ich ein gesundes und friedliches Jahr 2024.
2024_chatgpt.png
Vor einem Jahr habe ich das Böse (X) verlassen 😉 Link
Debian Server im Netz am Start? Kann nicht schaden, den Kernel zu aktualisieren und die Maschine einmal durchzustarten.
[SECURITY] [DSA 5658-1] linux security update favicon(lists.debian.org)
Eines meiner absoluten Lieblingstools feiert den 10. Geburtstag.
Link Preview Image Happy Ten Year Anniversary!Ten years ago (yesterday), the restic project started: Happy Anniversary!
faviconrestic forum (forum.restic.net)
Ich habe mich schon unzählige Stunden mit Restic beschäftigt, alleine schon beim Erstellen meines Flask UI für Restic 🤓
a2b208ef-a9dc-4f8f-afe1-38944cc76b45-image.png
Auf die nächsten 10 🎉
So frisch von der MongoDB Front und wieder viel gelernt, weil beim Üben macht man Fehler 🙂
Oben war ja mongodump & mongorestore von der KI empfohlen. Hier das wie ich es gemacht habe.
mongodump frank@redis-stack:~$ mongodump -u frank -p '<password>' --host 192.168.3.9 --authenticationDatabase admin -d portfolio -o mongodump/ 2024-04-06T09:29:25.174+0200 writing portfolio.stockList to mongodump/portfolio/stockList.bson 2024-04-06T09:29:25.175+0200 writing portfolio.users to mongodump/portfolio/users.bson 2024-04-06T09:29:25.175+0200 done dumping portfolio.stockList (8 documents) 2024-04-06T09:29:25.176+0200 writing portfolio.total_sum to mongodump/portfolio/total_sum.bson 2024-04-06T09:29:25.177+0200 done dumping portfolio.total_sum (1 document) 2024-04-06T09:29:25.177+0200 writing portfolio.old_total_sum to mongodump/portfolio/old_total_sum.bson 2024-04-06T09:29:25.177+0200 writing portfolio.stocks to mongodump/portfolio/stocks.bson 2024-04-06T09:29:25.177+0200 done dumping portfolio.users (4 documents) 2024-04-06T09:29:25.178+0200 writing portfolio.settings to mongodump/portfolio/settings.bson 2024-04-06T09:29:25.178+0200 done dumping portfolio.settings (1 document) 2024-04-06T09:29:25.179+0200 done dumping portfolio.old_total_sum (1 document) 2024-04-06T09:29:25.179+0200 done dumping portfolio.stocks (34 documents) mongorestore mongorestore -u frank -p '<password>' --host 192.168.3.9 --authenticationDatabase admin -d portfolio mongodump/meineDatenbank/Hier wird die Datensicherung mongodump/meineDatenbank/ in die neue Datenbank portfolio transferiert.
Grund für das Ganze? Mich hatte der Datenbank Name meineDatenbank gestört.
BenutzerrechteJetzt der Teil wo man schnell was falsch machen kann 🙂 Ich hatte also die neue Datenbank, konnte sie aber nicht lesen. Fehlten halt die Rechte. Ich hatte dann so was hier gemacht.
db.updateUser("frank", { roles: [ { role: "readWrite", db: "meineDatenbank" }, { role: "readWrite", db: "portfolio" }]})Ging auch prima, kam ein ok zurück. Nun das Problem, ich hatte beim Einrichten, den User frank als admin benutzt. Durch den oben abgesetzten Befehl (frank ist ja admin), wurden die neuen Rechte gesetzt und die Rechte als Admin entzogen!! Das war jetzt nicht wirklich das was ich gebrauchen konnte. LOL
Ich hatte jetzt keine Kontrolle mehr über die DB. Das war aber nicht so wirklich kompliziert, das wieder zu ändern. Die Authentication temporär abstellen. Also /etc/mongod.conf editieren und
#security: security.authorization: enabledeben mal auskommentieren. Den Daemon neustarten und anmelden an der DB.
mongosh --host 192.168.3.9Danach neuen User anlegen
db.createUser({ user: "<name>", pwd: "<password>", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })mongod.conf wieder ändern und neustarten. Danach hat man wieder eine DB mit Authentifizierung und einen neuen Admin. Ich bin diesmal, man lernt ja, anders vorgegangen. Es gibt nun einen Admin für die DB und einen User zum Benutzen der Datenbanken! So wie man es auch auf einem produktiven System auch machen würde. Wenn ich jetzt mal was an den Benutzerrechten des Users ändere, kann mir das mit dem Admin nicht mehr passieren. Hoffe ich 🙂
Ich hatte bei meinen Python Projekten drei Datenbanken am Start, als Beispiel Redis DB 0, 1, 2
Nun wollte ich das mal zusammenfassen, da ich das so nicht mehr brauche. Also alle Keys in DB 0. So soll das am Ende aussehen.
c17e4998-859d-4c6d-bcc5-7ff244b9a817-grafik.png
settings, stock_list und stocks waren jeweils in einer eigenen DB. Die beiden STRING Werte dienen nur zum Zwischenspeichern, sind hier jetzt mal nicht so wichtig. Nur, wie kopiert man denn nun den KEY aus der einen DB in die andere? Es war eine lange Sitzung mit Chat_GPT da klemmte es doch öfter. Aber, am Ende stand der Erfolg 🙂
Auf dem Redis Datenbank Server habe ich folgendes Script erstellt.
#!/bin/bash # Define Redis host and optional authentication password REDIS_HOST="192.168.3.9" REDIS_PASSWORD="PASSWORD" # Remove or leave empty if no password # Function to execute Redis command with optional authentication execute_redis_command() { if [ -n "$REDIS_PASSWORD" ]; then redis-cli -h $REDIS_HOST -a $REDIS_PASSWORD "$@" else redis-cli -h $REDIS_HOST "$@" fi } # Fetch all fields (and their values) from the source hash in database 1 mapfile -t fields_values < <(execute_redis_command -n 2 HGETALL stock_list) # Loop through the fields_values array # Bash arrays are zero-indexed, fields_values contains field name followed by value, so we increment by 2 for ((i=0; i<${#fields_values[@]}; i+=2)); do field="${fields_values[i]}" value="${fields_values[i+1]}" # Use HSET to insert the field-value pair into the target database (database 0) execute_redis_command -n 0 HSET stock_list "$field" "$value" done echo "All fields from DB 1 copied to DB 0 successfully."Als erstes mal ein Hinweis. Sollten im Passwort Sonderzeichen sein, geht das so nicht. Dann muss man das so lösen.
redis-cli -h $REDIS_HOST -a 'PASSWORD' "$@"Ich denke, das sollte als Hinweis reichen. Was macht das Script?
# Fetch all fields (and their values) from the source hash in database 1 mapfile -t fields_values < <(execute_redis_command -n 2 HGETALL stock_list)Wir holen alle Fields und ihre Daten von der Datenbank 1 für den KEY stock_list. Dann loopen wir da durch
# Use HSET to insert the field-value pair into the target database (database 0) execute_redis_command -n 0 HSET stock_list "$field" "$value"Und hiermit speichern wir dann die Daten in Datenbank 0 unter dem KEY Namen stock_list. Das hat soweit super geklappt, außer das ich immer eine leer Zeile in der Datenbank unter Fields hatte. Hab sie einfach gelöscht. Wenn man mal Langeweile hat, kann man mal suchen warum das so ist 😉
Am Ende hatte ich dann meine drei Datenbanken alle zu einer zusammengefasst. Eine Sünde aus meiner Anfangszeit ausgebessert. Nun hatte ich ja auch drei Datenbank Klassen, die jeweils die Redis Connection initialisiert hatten. Den dreifachen Code konnte ich auch gut entsorgen. So sah er aus.
class PortfolioSettings: def __init__(self, host=config.SERVER_IP, port=6379, db=None): if db is None: # If db is not provided explicitly, use TEST_MODE to decide if config.TEST_MODE == 1: db = config.TEST[0] else: db = config.LIVE[0] # Verwende einen Connection Pool self.pool = redis.ConnectionPool( host=host, port=port, db=db, password=config.REDIS_PASSWORD, # Auto-Reconnect einstellen retry_on_timeout=True, # Optional: Weitere Einstellungen wie maximale Wiederverbindungsversuche, # Timeout-Werte, etc. können hier konfiguriert werden health_check_interval=30 # Überprüft die Verbindung alle 30 Sekunden ) # self.client = redis.StrictRedis(host=host, port=port, db=db, password=config.REDIS_PASSWORD) self.client = redis.Redis(connection_pool=self.pool)Danach so
class PortfolioSettings: def __init__(self, connection_pool=config.shared_redis_pool): self.client = redis.Redis(connection_pool=connection_pool)Und unter meiner config.py initialisiere ich das Ganze so.
# Initialize a single shared connection pool shared_redis_pool = redis.ConnectionPool( host=redis_host_ip, port=6379, db=LIVE[0] if TEST_MODE == 0 else TEST[0], password=REDIS_PASSWORD, retry_on_timeout=True, health_check_interval=30 )Und wie immer, seid vorsichtig mit dem REDIS Passwort! Auf einem produktiven System danach bitte gut aufräumen. Für mich aktuell nicht so wichtig, der Server läuft hier lokal.
Ein Artikel von Heise zum Thema
Link Preview Image Datenbankanbieter Redis ändert sein Lizenzmodell – erneutDie No-SQL-Datenbank wird künftig nach einem dualen Modell lizenziert: Redis Source Available License Version 2 oder Server-Side Public License Version 1.
faviconDeveloper (www.heise.de)
Die Antwort von ChatGPT wie der Redis ConnectionPool funktioniert. Ein paar Dinge finde ich komisch.
Link Preview Image ChatGPTChatGPT is a free-to-use AI system. Use it for engaging conversations, gain insights, automate tasks, and witness the future of AI, all in one place.
favicon(chat.openai.com)
Für meine Flask & Python Projekt nutze ich schon lange Redis. Redis ist ein "in-memory data store" Normalerweise läuft dafür ein Docker Container auf meinem Haupt-PC, den ich mal vor langer Zeit aufgesetzt hatte. So weit lief auch alles gut.
Bedingt durch den Versuch, die Flask Anwendung auf meinem 2. PC zu installieren, ergaben sich einige neue Erkenntnisse. Ich hatte dann erst auf dem 2. PC ebenfalls mit einem Docker Container rum gespielt, dabei hatte ich aber das Problem das meine Datenbank nicht akzeptiert wurde.
Ich habe lange gebraucht um zu kapieren, das Redis ungleich Redis Stack ist. Und damals, wo ich den Docker Container aufgesetzt hatte, hatte ich Redis Stack installiert.
Redis Stack Server lets you build applications with searchable JSON and time series data models, and extended probabilistic data structures.
Quelle: https://redis.io/
Ich habe gerade nochmal in der DB nachgesehen, ich nutze keine dieser zusätzlichen Funktionen. Also müsste ich die Daten alle mühsam extrahieren und in einer einfachen Redis DB wieder installieren.
Ok, es war also klar das ich einen Redis Stack Server an zentraler Stelle in meinem Netzwerk bräuchte, damit ich von jedem PC aus darauf zugreifen könnte. Als Ort fällt mir da natürlich mein Proxmox ein.
Bei ersten Versuchen der Installation von Redis Stack schnell drüber gestolpert, das es das aktuell nur für Debian 11 gibt. Ja, die Docker Generation 🙂 Da ich das aber nicht als Docker laufen lassen wollte, musste ich wohl oder übel ein Debian 11 aufsetzen.
Es gibt auch noch zwei Versionen von Redis Stack
Redis Stack Server Redis StackRedis Stack enthält auch noch die Desktop Application RedisInsight, das ist eine Redis GUI. Damit kann man sich die DB ansehen und auch bearbeiten. Das läuft lokal auf meinem Haupt-PC, brauche ich also nicht auf einem Server. Der Server hat ja auch keine GUI. Also war klar, ich brauchte einen Redis Stack Server.
Zur Installation von Redis Stack Server, findet man das hier auf redis.io
Kurze Zeit später lief die Debian 11 VM mit Redis Stack Server.
frank@redis-stack:~$ pstree systemd─┬─agetty ├─cron ├─dbus-daemon ├─dhclient───3*[{dhclient}] ├─qemu-ga───{qemu-ga} ├─redis-server───8*[{redis-server}] ├─rsyslogd───3*[{rsyslogd}] ├─sshd───sshd───sshd───bash───pstree ├─systemd───(sd-pam) ├─systemd-journal ├─systemd-logind ├─systemd-timesyn───{systemd-timesyn} └─systemd-udevdInteressant bei Redis ist immer, wo liegt die Konfigurations Datei und wo die Datenbank? Dazu sollte man sich als erstes immer mal den SystemD Dienst ansschauen.
redis-stack-server.service
[Unit] Description=Redis stack server Documentation=https://redis.io/ After=network.target [Service] Type=simple User=redis ExecStart=/opt/redis-stack/bin/redis-server /etc/redis-stack.conf WorkingDirectory=/var/lib/redis-stack UMask=0077 [Install] WantedBy=multi-user.targetDas erste was ich gemacht habe, sen User geändert. Stand auf nobody(?) oder so. Ich habe erst mal einen User dafür angelegt.
useradd -M -s /usr/sbin/nologin redisDie Konfiguration findet man unter
/etc/redis-stack.confSo sieht meine aus
port 6379 daemonize no requirepass <PASSWORD> save 60 1 #save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir /var/lib/redis-stack loadmodule /opt/redis-stack/lib/rediscompat.so loadmodule /opt/redis-stack/lib/redisearch.so loadmodule /opt/redis-stack/lib/redistimeseries.so loadmodule /opt/redis-stack/lib/rejson.so loadmodule /opt/redis-stack/lib/redisbloom.so loadmodule /opt/redis-stack/lib/redisgears.so v8-plugin-path /opt/redis-stack/lib/libredisgears_v8_plugin.soMit diesen beiden Zeilen
dbfilename dump.rdb dir /var/lib/redis-stacklegt man fest, wo die Datenbank liegt. Unter /var/lib/redis-stack/ findet man dann die Datenbank dump.rdb. Bitte darauf achten, das die Dateiberechtigungen alle passen.
chown -R redis:redis /var/lib/redis-stack/Nach einem Neustart, sollte die Redis Datenbank nun mit meiner Datenbank laufen.
systemctl restart redis-stack-server.serviceWie testet man die Verbindung?
Einmal kann man das lokal machen. Mit dem Tool redis-cli
root@redis-stack:/var/lib/redis-stack# redis-cli 127.0.0.1:6379>Wenn man jetzt die Datenbank auswählen möchte, kommt das
127.0.0.1:6379> SELECT 0 (error) NOAUTH Authentication required.Ok, die Datenbank ist mittels Passwort geschützt. Mit AUTH kann man sich authentifizieren.
127.0.0.1:6379> AUTH <PASSWORD> OKDanach kann man dann die Datenbank wählen und schauen ob was drin ist.
127.0.0.1:6379> SELECT 0 OK 127.0.0.1:6379> KEYS * 1) "settings" 127.0.0.1:6379>Das kann man auch von extern machen, da aktuell die Redis Datenbank auf alle Netzwerkverbindungen lauscht. Wenn man das nicht möchte, kann man das auch entsprechend einstellen. Hier nicht erläutert.
Von extern, muss man dann den Host angeben.
frank@debian:~$ redis-cli -h 192.168.3.9 192.168.3.9:6379>Rest, siehe oben. Danach weiß man ob alles so weit funktioniert. Und zum Schluss noch ein Screenshot vom RedisInsight Tool.
Screenshot_20240319_143044.png
So als Hobby Entwickler hat man manchmal harte Aufgaben 🙂
Ich habe eines meiner Flask-Projekte mal auf meinem Testrechner versuchsweise installiert um zu schauen, ob das klappt und wo es überall hakt.
Repo clonenMein Projekt liegt auf gitlab.com und ist nicht privat. Somit ist der Zugriff nicht trivial. Man benötigt einen Access Token, den man sich folgendermaßen erstellen kann.
Man klickt auf das Icon und dann auf Preferences. Danach auf Access Tokens. Dort erstellt man sich einen.
Bevor man das Projekt holt, legt man einen Ordner an und wechselt in dieses Verzeichnis. Dann kann man sich das Projekt holen.
git clone <Repo-URL>Danach wird man nach dem Benutzer und dem Token gefragt. Um diese Abfrage in Zukunft zu verhindern, kann man folgenden Git Befehl benutzen.
git config --global credential.helper storeOk, nun war das Repo auf meinem Rechner.
Virtuelle UmgebungUm mit Python und seinen ganzen Paketen vernünftig arbeiten zu können, benötigt man eine virtuelle Umgebung. Stellt Euch das bitte wie einen Container vor, ein installiertes Paket liegt nur dort und ist für das Hauptsystem meines Rechners nicht vorhanden. Es gibt mehrere Möglichkeiten das zu verwalten, ich mache das wie folgt. Wir befinden uns in dem geclonten Verzeichnis.
python3.11 -m venv .venvDamit wird die virtuelle Umgebung angelegt. Dazu wird automatisch der Ordner .venv erzeugt. Wenn man mal Probleme hat, kann man diesen auch löschen und von vorne beginnen.
Diese Umgebung muss aktiviert werden.
source .venv/bin/activateAuf der Kommandozeile wird das jetzt angezeigt, das man sich in der virtuellen Umgebung befindet. Das ist sehr unterschiedlich von Distribution zu Distribution und auch abhängig davon welche Konsole man benutzt.
Python ModuleWenn man jetzt die Anwendung mit
python app.pystartet, bekommt man eine Fehlermeldung.
ModulNotFoundError: No module named 'flask'Ok, da wir uns in einer virtuellen Umgebung befindet, sind dort keinerlei Module installiert. Das heißt, wir müssen das jetzt nachholen. Dazu habe ich auf dem Entwicklungsrechner folgenden Befehl benutzt.
pip freeze > requirements.txtDieser Befehl schaut nach, welche Module installiert sind und erzeugt eine Liste. Ein Auszug
amqp==5.2.0 appdirs==1.4.4 argon2==0.1.10 argon2-cffi==23.1.0 argon2-cffi-bindings==21.2.0 asgiref==3.7.2 asttokens==2.4.1 async-timeout==4.0.3Diese Datei befindet sich jetzt innerhalb des Repositorys. Aufpassen, bei mir war das noch unter 'Unversioned Files' was mir doch ein paar Probleme bereitet hatte.
Ok, wie installieren wir jetzt die Module? Mit
pip install -r requirements.txtwerden die dann alle installiert. Danach sollte das Projekt laufen.
Andere AbhängigkeitenMein Projekt nutzt selbst signierte Zertifikate für den Webbrowser, der die Anwendung anzeigt.
############################################### # Main loop ############################################### if __name__ == "__main__": app.run(debug=True, ssl_context=('cert.pem', 'key.pem'))Die kann man mit folgendem Befehl eben erzeugen.
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodesDanach war das auch erledigt. Ein weitere Abhängigkeit war das Redis Datenbank Passwort. Dieses habe ich in einer .env abgelegt. Inhalt
REDIS_PASSWORD = '<PASSWORD>'Danach lief die Anwendung. Zu dem Redis Datenbank Problem, was mir dann aufgefallen ist, gibt es einen extra Beitrag.
VorsichtDas ist so nicht für den produktiven Einsatz gedacht.
debug=TrueDa fehlt noch einiges für, aber das ist hier auch nur ein Entwicklungsrechner.
Ich hatte ja hier schon mal geschrieben, das es noch nicht so viele Distributionen gibt, mit denen man Plasma 6 von KDE nutzen kann. Meine Wahl fiel auf Manjaro.
Flott mal auf meinen Testrechner installiert. Ich nutzte zur Installation ein Btrfs Dateisystem.
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a device; this may # be used with UUID= as a more robust way to name devices that works even if # disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> UUID=9868-EB93 /boot/efi vfat umask=0077 0 2 /dev/mapper/luks-5336cabc-29f1-4af2-8a31-dd411a9a1599 / btrfs subvol=/@,defaults,discard=async,ssd 0 0 /dev/mapper/luks-5336cabc-29f1-4af2-8a31-dd411a9a1599 /home btrfs subvol=/@home,defaults,discard=async,ssd 0 0 /dev/mapper/luks-5336cabc-29f1-4af2-8a31-dd411a9a1599 /var/cache btrfs subvol=/@cache,defaults,discard=async,ssd 0 0 /dev/mapper/luks-5336cabc-29f1-4af2-8a31-dd411a9a1599 /var/log btrfs subvol=/@log,defaults,discard=async,ssd 0 0 /dev/mapper/luks-3a8e1aea-0d01-4e45-940f-63af54c3d7f0 swap swap defaults,noatime 0 0 tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0Ich habe ja schon mal sehr lange Manjaro genutzt, ebenfalls mit Btrfs. Eine recht angenehme Sache waren die Timeshift Updates bevor Updates installiert werden. Diese kann man über das Grub Startmenü wieder laden, wenn mal was schief geht Super praktisch 😊
:: Pre-transaction-Hooks werden gestartet … (1/1) Creating Timeshift snapshot before upgrade... First run mode (config file not found) Selected default snapshot type: BTRFS Using system disk as snapshot device for creating snapshots in BTRFS mode Mounted '/dev/dm-0 (nvme0n1p2)' at '/run/timeshift/15779/backup' btrfs: Quotas are not enabled Creating new backup...(BTRFS) Saving to device: /dev/dm-0, mounted at path: /run/timeshift/15779/backup Created directory: /run/timeshift/15779/backup/timeshift-btrfs/snapshots/2024-03-14_20-47-33 Created subvolume snapshot: /run/timeshift/15779/backup/timeshift-btrfs/snapshots/2024-03-14_20-47-33/@ Created control file: /run/timeshift/15779/backup/timeshift-btrfs/snapshots/2024-03-14_20-47-33/info.json BTRFS Snapshot saved successfully (0s) Tagged snapshot '2024-03-14_20-47-33': ondemand ------------------------------------------------------------------------------ First run mode (config file not found) Selected default snapshot type: BTRFS Mounted '/dev/dm-0 (nvme0n1p2)' at '/run/timeshift/15930/backup' btrfs: Quotas are not enabled Selected default snapshot device: /dev/dm-0 ------------------------------------------------------------------------------ Removing snapshot: 2024-03-12_20-20-55 Deleting subvolume: @ (Id:263) Deleted subvolume: @ (Id:263) Deleted directory: /run/timeshift/15930/backup/timeshift-btrfs/snapshots/2024-03-12_20-20-55 Removed snapshot: 2024-03-12_20-20-55 ------------------------------------------------------------------------------ GRUB-Konfigurationsdatei wird erstellt … Thema gefunden: /usr/share/grub/themes/manjaro/theme.txt Linux-Abbild gefunden: /boot/vmlinuz-6.6-x86_64 Initrd-Abbild gefunden: /boot/amd-ucode.img /boot/initramfs-6.6-x86_64.img Found initrd fallback image: /boot/initramfs-6.6-x86_64-fallback.img Warnung: Zur Erkennung anderer bootfähiger Partitionen wird os-prober ausgeführt. Dessen Ausgabe wird zur Erkennung bootfähiger Programmdateien und Erzeugen neuer Boot-Einträge verwendet. Bootmenü-Eintrag für UEFI-Firmware-Einstellungen wird hinzugefügt … Detecting snapshots ... Found snapshot: 2024-03-14 20:47:33 | timeshift-btrfs/snapshots/2024-03-14_20-47-33/@ | ondemand | {timeshift-autosnap} {created before upgrade} | Found snapshot: 2024-03-14 20:46:53 | timeshift-btrfs/snapshots/2024-03-14_20-46-53/@ | ondemand | {timeshift-autosnap} {created before upgrade} | Found snapshot: 2024-03-12 20:23:38 | timeshift-btrfs/snapshots/2024-03-12_20-23-38/@ | ondemand | {timeshift-autosnap} {created before upgrade} | Found 3 snapshot(s) Unmount /tmp/grub-btrfs.FegL2qXeFN .. Success Found memtest86+ image: /boot/memtest86+/memtest.bin Found memtest86+ EFI image: /boot/memtest86+/memtest.efi abgeschlossenUnd das Tool auf dem Desktop.
Screenshot_20240314_212303.png
Nach der Installation hatte ich aber nur eine Plasma 5 Installation. Kurz im Internet gesucht, ich muss in den Unstable Zweig wechseln.
sudo pacman-mirrors --api --set-branch unstable sudo pacman-mirrors --fasttrack 5 && sudo pacman -SyuWenn die vielen Pakete dann heruntergeladen und installiert sind, einfach mal kurz durchstarten. Danach was komisches, ich hatte den falschen Login Screen. Beim Updaten der ganzen Pakete kamen einige Fragen zu Paketen, ich hatte die mutig mal alle mit Ja beantwortet. Das ist aber nicht so wirklich das Problem, unter Einstellungen - Farben & Designs - Startbildschirm, kann man das wieder gerade rücken.
Nun habe ich also ein Manjaro mit Plasma 6 🙂
Screenshot_20240312_202507.png
Ok, was ich gerade bemerke ist ein ganz alter Bug, oder ich verstehe was falsch.
Screenshot_20240314_205446.png
Ich habe zwei Test Icons erstellt eines mit dem Namen links_oben.txt und eines mit rechts_unten.txt. Aber, wenn ich neustarte sieht es dann so aus. Sprich, die Icons sind dann immer wieder durcheinander bzw. dann sortiert. Da ich das Chaos liebe, muss das aber anders gehen....
Noch was, was ich sehr spannend finde. Mit Spectacle kann man jetzt auch Videoaufnahmen machen. Dann testen wir doch mal eben..
Kurzes Video aufgenommen, irgendwas von YT. Das Resultat ist ein .webm File. Beim Ansehen hatte ich den Eindruck, das es ruckt. Und nein, sonst ruckt da nichts.
...wird fortgesetzt...
Da ja mittlerweile von KDE der Desktop Plasma 6 da ist und ich es ja auch schon recht intensiv mit KDE neon ausprobiert habe, hatte ich überlegt womit ich das noch testen kann.
KDE neon hat ja da beim Aktualisieren des Systems eine unangenehme Eigenschaft, die mich an M$ erinnert. Und ich möchte das so auch nicht unterstützen, auch nicht zum Testen. Also, musste ich mir die Frage beantworten, welche Distributionen gibt es aktuell, die Plasma 6 als Desktop anbieten?
KDE neonMeine ersten Gehversuche -> https://linux-nerds.org/topic/1558/kde-neon-6-0?_=1710271732637
ManjaroScreenshot_20240312_202507.png
Interessanterweise ist Plasma 6 da noch im Unstable Zweig. Also habe ich das aktuelle Manjaro installiert. Danach musste ich auf den Unstable Zweig umstellen.
sudo pacman-mirrors --api --set-branch unstable sudo pacman-mirrors --fasttrack 5 && sudo pacman -SyuWenn die vielen Pakete dann heruntergeladen und installiert sind, einfach mal kurz durchstarten. Danach was komisches ich hatte den falschen Login Screen. Beim Updaten der ganzen Pakete kamen einige Fragen zu Paketen, ich hatte die mutig mal alle mit Ja beantwortet. Das ist aber nicht so wirklich das Problem, unter Einstellungen - Farben & Designs - Startbildschirm, kann man das wieder gerade rücken.
Link Preview Image Manjaro DownloadsFind a suitable Manjaro edition for your hardware.
favicon(manjaro.org)
ArchMan könnte noch das "Original" nehmen - Arch Linux Bin da nicht im Thema, weiß aber vom Mitlesen im Netz das dort auch Plasma 6 mit am Start ist. Die sind ja immer sehr aktuell.
KubuntuSieht auch nicht so aus, evt. in einem Testing Zweig? https://kubuntu.org/tag/plasma/
DebianBis das in meinem aktuellen Debian auftaucht wird noch viel Wasser den Rhein runterfließen....
https://www.debian.org/
Da müsste es auch was geben, aber das was die dort treiben lädt mich nicht ein, dieses System zu testen. https://www.opensuse.org/
Fedora KDEHatte gelesen, erst ab 40 ist es drin? https://fedoraproject.org/spins/
In einem anderen Thread werde ich über meine Erfahrungen mit Manjaro und KDE Plasma 6 berichten. Ich habe ja gewisse Erfahrungswerte, habe Manjaro ja relativ lang auch auf meinem Haupt-PC eingesetzt.
Neues Release mit vielen Verbesserungen.
Link Preview Image NodeBB 3.7.0Hello Everyone ! Today we are releasing NodeBB 3.7.0. Please read below for all the changes in this release. Accessibility improvements One of the main feat...
faviconNodeBB Community (community.nodebb.org)
Foren aktualisiert, keine besonderen Vorkommnisse... 😊
Heute gibt es mal 1.30.4 & 1.30.5 zusammen. Alles in allem nur kleinere Änderungen.
Link Preview Image Release 1.30.5 · dani-garcia/vaultwardenUnofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs - Release 1.30.5 · dani-garcia/vaultwarden
faviconGitHub (github.com)
root@vaultwarden-4gb-fsn1-1:~# vaultwarden --version vaultwarden 1.30.5Ich habe ja damals mit PyWebIO ein Restic UI gebaut. Das gibt es auch auf gitlab.com
Dieses PyWebIO ist schon ein tolles Tool, weil man den Python Code nicht verlässt. Aber, es hat zu viele Einschränkungen, die man dann nicht, oder nur sehr mühsam umgehen kann. Also war ich auf der Suche nach neuen Herausforderungen 🙂
Zwei Frameworks die ich kannte, waren Django und Flask. Meine Wahl fiel auf Flask. Und nun fand ich mich wieder in Dingen, die ich vor langer Zeit zuletzt benutzt hatte. HTML, CSS und Javascript. Ich musste mich also wieder durch viele Themengebiete wühlen. Dank der Hilfe von ChatGPT, der mir einiges wieder erklären musste, habe ich dann aber mein Tool wieder so hinbekommen, wie ich es gerne haben wollte.
Ich wollte es heute mal anhand einiger Screenshots vorstellen. Die Funktionalität ist wie beim alten Tool. Habe es aber ein wenig angepasst und viel mehr Funktionen ins Dashboard gepackt. Somit ist von dort aus, fast alles zu erreichen.
Dashboarddashboard.png
Dashboard mit Hamburger Menühamburger_menue.png
Add Backupadd_backup.png
Add Backup with RESTadd_backup_with_REST.png
Edit Backupedit_backup.png
Aboutabout.png
AllgemeinesDas Tool ist unter
https://127.0.0.1:5050/dashboardmit selbstsignierten Zertifikaten erreichbar.
Restic UI Flask nutzt als Backend zur Datenspeicherung eine Redis Datenbank. Ja, ist etwas auf mich zugeschnitten, ich habe hier immer eine Redis DB laufen, noch für andere Sachen.
ToDoDen Code sauber machen, da liegt noch zu viel Müll rum. Danch werde ich den, wenn ich alles nochmal auf Fehler geprüft habe, auf Gitlab veröffentlichen. Vielleicht hilft es dem ein oder anderen 😉
Ich mach mal mit OBS ein Video davon.
Heute mal in die bestehende Installation meine Intel ARC A580 GPU eingesteckt. Wollte mal schauen ob das gut klappt. Da die Treiber ja im Kernel vorhanden sind, habe ich keinerlei Probleme erwartet. Und so war es auch. Neustart und fertig. Im BIOS natürlich vorher umgestellt, das sie auch benutzt wird, habe ja einen AMD Prozessor mit eingebauter GPU im CPU-Sockel stecken.
Screenshot_20240303_101728.png
Die Wechselfunktion (oben links in der Ecke) um die virtuellen Desktops zu wechseln und zu bearbeiten ist richtig gut geworden.
Screenshot_20240303_101809.png
Und auch ein Ärgernis auf meiner KDE Plasma Installation scheint weg zu sein. Wenn ich ein Programm zur Arbeitsfläche hinzugefügt hatte, wurde die Position immer irgendwann zurückgesetzt. Beispiel, Icon des Programmes rechts unten abgelegt. Irgendwann tauchte es dann in der normalen Ansicht (alphabetisch) sortiert, links oben, wieder auf. Sehr nerviger Bug.
Mist, jetzt habe ich auch noch Streamlit gefunden. Jetzt geht mir langsam die Zeit aus...
Und hier taucht es dann auf -> https://www.debian.org/News/2024/20240210
Kamil hat doch immer noch irgendein Projekt am Laufen, so das ab und zu neue Kernel reinkommen.
Link Preview Image Release 6.8.0-rc3-1188-ayufan · ayufan-rock64/linux-mainline-kernelLinux kernel source tree. Contribute to ayufan-rock64/linux-mainline-kernel development by creating an account on GitHub.
faviconGitHub (github.com)
Ein 6.7er kam heute auch noch.
Link Preview Image Release 6.7.0-1186-ayufan · ayufan-rock64/linux-mainline-kernelLinux kernel source tree. Contribute to ayufan-rock64/linux-mainline-kernel development by creating an account on GitHub.
faviconGitHub (github.com)
Läuft der RockPro64 bei Euch noch? Muss gestehen, bei mir liegt er nur noch rum.
Für den, der sich alle Änderungen ansehen möchten -> https://github.com/nextcloud/server/releases
Heute die letzte Unstable Edition von KDE Neon installiert. Es gab folgende Version.
neon-unstable-20240201-2132.isoMeldet sich bei mir immer noch nur als DEV Version und nicht als RC2 🤔 Wenn einer einen Tipp für mich hat....
Der Installer soll mich ja nicht mehr interessieren, aber mir ist aufgefallen, das er jetzt den Standort hinbekommt.
Ansonsten läuft es soweit rund. Habt ihr schon mal einen Firefox ohne Addblocker benutzt? Grausam! Kann mir gar nicht vorstellen, so was in meinem Leben nochmal zu benutzen.
Ist noch schnell was hinterher gekommen.
Link Preview Image Release 1.30.3 · dani-garcia/vaultwardenUnofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs - Release 1.30.3 · dani-garcia/vaultwarden
faviconGitHub (github.com)
root@:~# vaultwarden -v vaultwarden 1.30.3Diskussionen, die woanders nicht reinpassen
Beiträge zu anderen kleinen Platinen