NEWS
BackItUp - InfluxDB2 - Grafana
-
Moin,
ich kämpfe gerade mit der Aufgabe ein Backup vom iobroker, Influx, Garfana zu machen.
Alles ganz frisch installiert nur zwei adapter zusätzlich.
Influxdb2 ansprechbar über adapter (opendtu) und in grafana eingehängt.
Login über die webgui bei Influx und Grafana funktioniertErstmal das Backup alles lokal auf dem iobroker-server.
- Der iobroker funktioniert das backup.
- Influx geht nicht - habe die gleichen logindaten genutzt wie beim Influxadapter.
- Grafana geht auch nicht - habe ich die richtige Version von Grafana (OSS) ?? - habe einen Service-User anlegen müssen für den Token, den Abschnitt API finde ich in der OSS nicht.
Wenn das alles aml klappt, will ich das Backup auf die Syno ziehen. (CIF)
Habe dort einen Benutzer angelegt und wollte das backup in einen extra unterordner laufen lassen. Das funktioniert überhaupt nicht - aber das später.Was mach ich alles falsch ??
Started iobroker ... [DEBUG] [iobroker] start with {"type":"creator","workDir":"/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js","time":"22:00","debugging":true,"slaveBackup":"Single","everyXDays":"1","deleteBackupAfter":0,"ignoreErrors":false,"dir":"/opt/iobroker","influxDB":{"enabled":true,"type":"creator","ftp":{"enabled":false,"type":"storage","source":"local","host":"","debugging":true,"deleteOldBackup":false,"ownDir":false,"dir":"/backupDir","dirMinimal":"/backupDir/iobroker","user":"","pass":"****","port":"21","secure":false,"ignoreErrors":false},"cifs":{"enabled":false,"mountType":"CIFS","type":"storage","source":"local","mount":"192.168.115.200","debugging":true,"fileDir":"/opt/iobroker/iobroker-data/backitup","wakeOnLAN":false,"macAd":"20:DE:20:DE:20:DE","wolTime":"25","smb":"vers=3.0","sudo":true,"cifsDomain":"","clientInodes":false,"deleteOldBackup":false,"ownDir":true,"dir":"/systembkp/iobroker","dirMinimal":"/systembkp/iobroker","user":"iobroker","pass":"****","ignoreErrors":false},"dropbox":{"enabled":false,"type":"storage","source":"local","debugging":true,"deleteOldBackup":false,"accessToken":"****","dropboxAccessJson":"","dropboxTokenType":"custom","ownDir":false,"dir":"/backupDir","dirMinimal":"/backupDir/iobroker","ignoreErrors":false},"onedrive":{"enabled":false,"type":"storage","source":"local","debugging":true,"deleteOldBackup":false,"onedriveAccessJson":"****","ownDir":false,"dir":"backupDir","dirMinimal":"backupDir/iobroker","ignoreErrors":false},"webdav":{"enabled":false,"type":"storage","source":"local","debugging":true,"deleteOldBackup":false,"username":"username","pass":"****","url":"https://example.com/remote.php/dav/files/username/","ownDir":false,"dir":"/backupDir","dirMinimal":"/backupDir/iobroker","signedCertificates":true,"ignoreErrors":false},"googledrive":{"enabled":false,"type":"storage","source":"local","debugging":true,"deleteOldBackup":false,"newToken":false,"ownDir":false,"dir":"/backupDir","dirMinimal":"/backupDir/iobroker","ignoreErrors":false,"accessJson":"****"},"nameSuffix":"","slaveSuffix":"","hostType":"Single","deleteBackupAfter":5,"dbName":"iobroker","host":"localhost","port":"8086","dbversion":"2.x","token":"mUmGIBnZfnm8t86qZs0jIcOsfBrtH61R8T9-zdF6JXGp53DU7CW9nFvVcDgCx0HCaJEVsYx5yYQOkiGwkbFhjA==","protocol":"http","exe":"","dbType":"local","influxDBEvents":[],"influxDBMulti":false,"ignoreErrors":false,"deleteDataBase":false},"grafana":{"enabled":true,"type":"creator","ftp":{"enabled":false,"type":"storage","source":"local","host":"","debugging":true,"deleteOldBackup":false,"ownDir":false,"dir":"/backupDir","dirMinimal":"/backupDir/iobroker","user":"","pass":"****","port":"21","secure":false,"ignoreErrors":false},"cifs":{"enabled":false,"mountType":"CIFS","type":"storage","source":"local","mount":"192.168.115.200","debugging":true,"fileDir":"/opt/iobroker/iobroker-data/backitup","wakeOnLAN":false,"macAd":"20:DE:20:DE:20:DE","wolTime":"25","smb":"vers=3.0","sudo":true,"cifsDomain":"","clientInodes":false,"deleteOldBackup":false,"ownDir":true,"dir":"/systembkp/iobroker","dirMinimal":"/systembkp/iobroker","user":"iobroker","pass":"****","ignoreErrors":false},"dropbox":{"enabled":false,"type":"storage","source":"local","debugging":true,"deleteOldBackup":false,"accessToken":"****","dropboxAccessJson":"","dropboxTokenType":"custom","ownDir":false,"dir":"/backupDir","dirMinimal":"/backupDir/iobroker","ignoreErrors":false},"onedrive":{"enabled":false,"type":"storage","source":"local","debugging":true,"deleteOldBackup":false,"onedriveAccessJson":"****","ownDir":false,"dir":"backupDir","dirMinimal":"backupDir/iobroker","ignoreErrors":false},"webdav":{"enabled":false,"type":"storage","source":"local","debugging":true,"deleteOldBackup":false,"username":"username","pass":"****","url":"https://example.com/remote.php/dav/files/username/","ownDir":false,"dir":"/backupDir","dirMinimal":"/backupDir/iobroker","signedCertificates":true,"ignoreErrors":false},"googledrive":{"enabled":false,"type":"storage","source":"local","debugging":true,"deleteOldBackup":false,"newToken":false,"ownDir":false,"dir":"/backupDir","dirMinimal":"/backupDir/iobroker","ignoreErrors":false,"accessJson":"****"},"host":"localhost","port":"3000","protocol":"http","username":"admin","pass":"****","apiKey":"****","nameSuffix":"","slaveSuffix":"","hostType":"Single","ignoreErrors":false,"signedCertificates":true},"historyHTML":{"enabled":true,"type":"message","entriesNumber":"25","ignoreErrors":false,"systemLang":"de"},"historyJSON":{"enabled":true,"type":"message","entriesNumber":"25","ignoreErrors":false,"systemLang":"de"},"telegram":{"enabled":true,"notificationsType":"E-Mail","type":"message","instance":"","SilentNotice":false,"NoticeType":"longTelegramNotice","User":"none","onlyError":false,"telegramWaiting":0,"hostName":"","ignoreErrors":false,"systemLang":"de"},"email":{"enabled":true,"notificationsType":"E-Mail","type":"message","instance":"","NoticeType":"shortEmailNotice","emailReceiver":"arnematysik@live.de","emailSender":"whs40service@gmail.com","onlyError":false,"emailWaiting":0,"hostName":"","ignoreErrors":false,"systemLang":"de"},"pushover":{"enabled":true,"notificationsType":"E-Mail","type":"message","instance":"","SilentNotice":false,"NoticeType":"longPushoverNotice","deviceID":"","onlyError":false,"pushoverWaiting":0,"hostName":"","ignoreErrors":false,"systemLang":"de"},"whatsapp":{"enabled":true,"notificationsType":"E-Mail","type":"message","instance":"","NoticeType":"longWhatsappNotice","onlyError":false,"whatsappWaiting":0,"hostName":"","ignoreErrors":false,"systemLang":"de"},"signal":{"enabled":true,"notificationsType":"E-Mail","type":"message","instance":"","NoticeType":"longSignalNotice","onlyError":false,"signalWaiting":0,"hostName":"","ignoreErrors":false,"systemLang":"de"},"matrix":{"enabled":true,"notificationsType":"E-Mail","type":"message","instance":"","NoticeType":"longMatrixNotice","onlyError":false,"matrixWaiting":0,"hostName":"","ignoreErrors":false,"systemLang":"de"},"backupDir":"/opt/iobroker/backups"} [DEBUG] [iobroker] - host.debian 229 states saved [DEBUG] [iobroker] - host.debian 295 objects saved [DEBUG] [iobroker] - Backup created: /opt/iobroker/backups/iobroker_2023_06_06-07_37_02_backupiobroker.tar.gz [DEBUG] [iobroker] - done [DEBUG] [influxDB] - InfluxDB-Backup started ... [DEBUG] [influxDB] - Start InfluxDB Backup ... [DEBUG] [influxDB] - InfluxDB Backup tmp directory created [DEBUG] [influxDB] - Try deleting the InfluxDB tmp directory: "/opt/iobroker/backups/influxDB_2023_06_06-07_37_05_backupiobroker" [DEBUG] [influxDB] - InfluxDB tmp directory "/opt/iobroker/backups/influxDB_2023_06_06-07_37_05_backupiobroker" successfully deleted [DEBUG] [influxDB] - [ERROR] [influxDB] - Error: Command failed: influx backup --bucket iobroker -t mUmGIBnZfnm8t86qZs0jIcOsfBrtH61R8T9-zdF6JXGp53DU7CW9nFvVcDgCx0HCaJEVsYx5yYQOkiGwkbFhjA== "/opt/iobroker/backups/influxDB_2023_06_06-07_37_05_backupiobroker" /bin/sh: 1: influx: not found
-
Welches influxdb hast du installiert?
Passendes influx-cli-Paket lokal drauf? -
-
@thomas-braun
moin,
oh schon eine AntwortUsing username "superuser". superuser@192.168.115.30's password: Linux debian 6.1.0-0.deb11.7-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.20-2~bpo11+1 (2023-04-23) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Jun 6 09:15:34 2023 from 192.168.115.175 superuser@debian:~$ sudo apt update && apt policy influxdb* [sudo] password for superuser: Get:1 file:/var/cache/openmediavault/archives InRelease Ign:1 file:/var/cache/openmediavault/archives InRelease Get:2 file:/var/cache/openmediavault/archives Release Ign:2 file:/var/cache/openmediavault/archives Release Get:3 file:/var/cache/openmediavault/archives Packages Ign:3 file:/var/cache/openmediavault/archives Packages Get:4 file:/var/cache/openmediavault/archives Translation-en Ign:4 file:/var/cache/openmediavault/archives Translation-en Get:3 file:/var/cache/openmediavault/archives Packages Ign:3 file:/var/cache/openmediavault/archives Packages Get:4 file:/var/cache/openmediavault/archives Translation-en Ign:4 file:/var/cache/openmediavault/archives Translation-en Get:3 file:/var/cache/openmediavault/archives Packages Ign:3 file:/var/cache/openmediavault/archives Packages Get:4 file:/var/cache/openmediavault/archives Translation-en Ign:4 file:/var/cache/openmediavault/archives Translation-en Get:3 file:/var/cache/openmediavault/archives Packages Ign:3 file:/var/cache/openmediavault/archives Packages Get:4 file:/var/cache/openmediavault/archives Translation-en Ign:4 file:/var/cache/openmediavault/archives Translation-en Get:3 file:/var/cache/openmediavault/archives Packages Ign:3 file:/var/cache/openmediavault/archives Packages Get:4 file:/var/cache/openmediavault/archives Translation-en Ign:4 file:/var/cache/openmediavault/archives Translation-en Get:3 file:/var/cache/openmediavault/archives Packages Ign:3 file:/var/cache/openmediavault/archives Packages Get:4 file:/var/cache/openmediavault/archives Translation-en Ign:4 file:/var/cache/openmediavault/archives Translation-en Get:3 file:/var/cache/openmediavault/archives Packages Get:4 file:/var/cache/openmediavault/archives Translation-en Ign:4 file:/var/cache/openmediavault/archives Translation-en Hit:5 http://httpredir.debian.org/debian bullseye-backports InRelease Hit:6 http://deb.debian.org/debian bullseye InRelease Hit:7 http://security.debian.org/debian-security bullseye-security InRelease Hit:8 http://packages.openmediavault.org/public shaitan InRelease Hit:9 http://deb.debian.org/debian bullseye-updates InRelease Hit:10 https://openmediavault.github.io/packages shaitan InRelease Hit:11 https://openmediavault-plugin-developers.github.io/packages/debian shaitan InRelease Hit:12 https://repos.influxdata.com/debian stable InRelease Hit:13 https://deb.nodesource.com/node_18.x bullseye InRelease Get:14 https://packages.grafana.com/oss/deb stable InRelease [5983 B] Get:15 https://packages.grafana.com/oss/deb stable/main amd64 Packages [126 kB] Err:15 https://packages.grafana.com/oss/deb stable/main amd64 Packages File has unexpected size (125436 != 125733). Mirror sync in progress? [IP: 146.75.118.217 443] Hashes of expected file: - Filesize:125733 [weak] - SHA512:54b19f202f85e626ac2cf8cbb0fcf75947d05515732c2839f193e5436868f3d0465c5069bef2e9a75a8d1a5969dd8b86a7290ff8a62d1e4559f3276d0ccc9e4a - SHA256:580ea16e03163044801faf39c982a4cc09eb90c75debd175a092b9494993c09c - SHA1:ed185a8297f1896766059d2d133c0d7a6472625b [weak] - MD5Sum:b590fc85a94168e1c7abb67d7b9533b9 [weak] Release file created at: Tue, 06 Jun 2023 07:10:32 +0000 Reading package lists... Done E: Failed to fetch https://packages.grafana.com/oss/deb/dists/stable/main/binary-amd64/Packages.bz2 File has unexpected size (125436 != 125733). Mirror sync in progress? [IP: 146.75.118.217 443] Hashes of expected file: - Filesize:125733 [weak] - SHA512:54b19f202f85e626ac2cf8cbb0fcf75947d05515732c2839f193e5436868f3d0465c5069bef2e9a75a8d1a5969dd8b86a7290ff8a62d1e4559f3276d0ccc9e4a - SHA256:580ea16e03163044801faf39c982a4cc09eb90c75debd175a092b9494993c09c - SHA1:ed185a8297f1896766059d2d133c0d7a6472625b [weak] - MD5Sum:b590fc85a94168e1c7abb67d7b9533b9 [weak] Release file created at: Tue, 06 Jun 2023 07:10:32 +0000 E: Some index files failed to download. They have been ignored, or old ones used instead.
superuser@debian:~$ influxd version InfluxDB v2.7.1 (git: 407fa622e9) build_date: 2023-04-28T13:24:27Z
superuser@debian:~$ sudo grafana-cli -v grafana cli version 9.5.2 superuser@debian:~$ sudo grafana-server -v Version 9.5.2 (commit: cfcea75916, branch: HEAD)
-
Dein Paketmanager ist kaputt.
-
@thomas-braun
ups, wie das - ich dachte es ist alles so schön grün ??
Könnte durch die OMV-Installation passiert sein.Das CLI-Paket habe ich noch nicht installiert - habe es jetzt gelesen - muß man extra machen.
-
@friedhofsblond sagte in BackItUp - InfluxDB2 - Grafana:
ups, wie das -
Das weiß ich nicht, was da gefrickelt wurde.
ich dachte es ist alles so schön grün ??
apt ist nicht 'grün'. Außer du meinst die Schriftfarbe in deinem Terminal.
Ich kenn jetzt openmediavault nicht, aber
file:/var/cache/openmediavault/archives
macht als Quelle für Pakete wenig Sinn. Wo kommt das her?
cat /etc/apt/sources.list cat /etc/apt/sources.list.d/*
-
@thomas-braun
naja, habe erst eine frische Debian-neinst minimal installiert.
Dann den OMV6 drauf zu Administration des Servers.
Da wird viel über installscripts gemacht - ich denke da kommt das her.
(ehrlich gesagt brauch ich das eigentlich nicht im IObroker kann man ja auch viel über die Kiste sehen)
Muß ich halt den kram wie IP-Netzwerkeingabe manuell machen.
Dann nochmal anfangen.
Soll ich influxdb 2.1 (wie in der Docu von Backitup) oder die neue 2.7 installieren?
Grafana die OSS-Version war wohl auch nicht richtig oder? -
@friedhofsblond sagte in BackItUp - InfluxDB2 - Grafana:
Soll ich influxdb 2.1 (wie in der Docu von Backitup) oder die neue 2.7 installieren?
Immer die aktuelle Version aus deinem Paketmanager. Dazu muss der aber halt funktionieren.
Grafana die OSS-Version war wohl auch nicht richtig oder?
Doch, die OSS-Version ist richtig.
-
@thomas-braun sagte in BackItUp - InfluxDB2 - Grafana:
mmer die aktuelle Version aus deinem Paketmanager. Dazu muss der aber halt funktionieren.
OK, aber meist muß man doch erst die Quelle manuell hinzufügen - liegen doch nicht von Hause aus im Debian - oder?
-
@friedhofsblond sagte in BackItUp - InfluxDB2 - Grafana:
Soll ich influxdb 2.1 (wie in der Docu von Backitup) oder die neue 2.7 installieren?
Grafana die OSS-Version war wohl auch nicht richtig oder?Die Versionen sind egal... Backitup unterscheidet da nicht
Bei dir fehlt influx-cli und zu Grafana kann ich nix sagen, da du keinen Log dazu gepostet hast -
Richtig. Hier finden sich ein paar der gängigsten Repos inkl. der Schlüssel usw.:
https://forum.iobroker.net/topic/59231/phantastische-repositories-und-wo-sie-zu-finden-sind
-
@simatec
in den zwei Kästen und sind nochmal die Versionen Influx und Grafana.
oben.
In der Grafana-Version sieht man aber das API-Schlüssel Menü nicht.
Hier ein Grafana vom Solaranzeiger 9.4.7:
Hier das was ich installiert habe 9.5.2:
-
@friedhofsblond Du benötigst einen Service Account mit die Rolle "Admin"
Dort wird dann der Token generiert.influxdb-cli fehlt bei dir... Das musst du installieren.
Steht in der Doku von Backitup beschrieben -
@friedhofsblond sagte in BackItUp - InfluxDB2 - Grafana:
@simatec
in den zwei Kästen und sind nochmal die Versionen Influx und Grafana.
oben.
In der Grafana-Version sieht man aber das API-Schlüssel Menü nicht.
Hier ein Grafana vom Solaranzeiger 9.4.7:
Hier das was ich installiert habe 9.5.2:
Moin,
in der aktuellen Version findest Du das hier
Wozu erschließt sich mir nicht, denn ich kann auch ohne das meine Panels/Dashboards anschauen, oder ist das für den BackitUp adapter, den kenne ich nicht, da bei mir alles in LXC Containern läuft und ich die Backupe
Im zweiten Bild gibt es noch den Link zur Beschreibung https://grafana.com/docs/grafana/latest/administration/service-accounts/
VG
Bernd -
@dp20eic
da gehts schon wieder los.
1:1 von influx kopiert. - warum kann ich die Datei nicht entpacken?
Die Datei liegt jetzt im homeverzeichnis von Superuser
Sorry ich altsuperuser@debian:~$ wget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.7.3-linux-amd64.tar.gz --2023-06-06 11:47:57-- https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.7.3-linux-amd64.tar.gz Auflösen des Hostnamens dl.influxdata.com (dl.influxdata.com)… 13.224.189.83, 13.224.189.2, 13.224.189.72, ... Verbindungsaufbau zu dl.influxdata.com (dl.influxdata.com)|13.224.189.83|:443 … verbunden. HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK Länge: 11454321 (11M) [application/x-tar] Wird in »influxdb2-client-2.7.3-linux-amd64.tar.gz« gespeichert. influxdb2-client-2.7.3-linux-amd64.t 100%[====================================================================>] 10,92M 47,9MB/s in 0,2s 2023-06-06 11:47:58 (47,9 MB/s) - »influxdb2-client-2.7.3-linux-amd64.tar.gz« gespeichert [11454321/11454321] superuser@debian:~$ tar xvzf path/to/influxdb2-client-2.7.3-linux-amd64.tar.gz tar (child): path/to/influxdb2-client-2.7.3-linux-amd64.tar.gz: Funktion open fehlgeschlagen: Datei oder Verzeichnis nicht gefunden tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error is not recoverable: exiting now superuser@debian:~$
-
@friedhofsblond sagte in BackItUp - InfluxDB2 - Grafana:
1:1 von influx kopiert. - warum kann ich die Datei nicht entpacken?
Die Datei liegt jetzt im homeverzeichnis von SuperuserWeil man das nicht so macht.
Man verwendet seinen Paketmanager, man verwendet seinen Paketmanager, man verwendet seinen Paketmanager, man verwendet seinen Paketmanager, man verwendet seinen Paketmanager, man verwendet seinen Paketmanager, man verwendet seinen Paketmanager, man verwendet seinen Paketmanager, man verwendet seinen Paketmanager, man verwendet seinen Paketmanager, man verwendet seinen Paketmanager, man verwendet seinen Paketmanager!Jedenfalls wenn man den nicht zuvor schon irgendwie kaputtgefummelt hat.
-
@friedhofsblond sagte in BackItUp - InfluxDB2 - Grafana:
1:1 von influx kopiert. - warum kann ich die Datei nicht entpacken?
Moin,
wieso entpacken, @Thomas-Braun sagte doch, Du sollst das aus/vom Repository installieren.
Und wenn man dann schon etwas von einer Web-Seite kopiert, dann muss man das auch lesen, denn den Pfad
path/to/
gibt es unter Linux nicht, außer Du hast ihn Dir angelegt.tar xvzf path/to/influxdb2-client-2.7.3-linux-amd64.tar.gz
Aber das ist alles Kokolores, wenn Deine Repos korrekt sind und funktionieren, dann
sudo apt install influxdb2-cli
VG
BerndP.S.: @Thomas-Braunwar schneller
-
Auf die Ausgaben zu
cat /etc/apt/sources.list cat /etc/apt/sources.list.d/*
warte ich immer noch, da könnte man vielleicht sehen warum apt kaputt ist und wo es da klemmt.
-
@thomas-braun
so meine Lieben
Ich bin doch schon wieder auf einem frischen System.
(habe verschiedene abgespeicherte Images die ich via Acronis komlett widerherstellen kann)
Also ganz frisches Debian 11 - minimal ohne Desktop - also alles per Console.
Alles strikt nach Docu abgearbeitet.
So wie es z.B. hier steht:Sorry ich bin ein alter Copy-Paste Arbeiter und muß mir das "Zeugs" zusammensuchen.
Habt Mitleid ...Auf die Ausgaben zu:
Linux debian 5.10.0-23-amd64 #1 SMP Debian 5.10.179-1 (2023-05-12) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Jun 6 11:46:10 2023 from 192.168.115.175 superuser@debian:~$ cat /etc/apt/sources.list # deb cdrom:[Debian GNU/Linux 11.7.0 _Bullseye_ - Unofficial amd64 NETINST with firmware 20230429-11:49]/ bullseye contrib main non-free #deb cdrom:[Debian GNU/Linux 11.7.0 _Bullseye_ - Unofficial amd64 NETINST with f irmware 20230429-11:49]/ bullseye contrib main non-free deb http://deb.debian.org/debian/ bullseye main non-free contrib deb-src http://deb.debian.org/debian/ bullseye main non-free contrib deb http://security.debian.org/debian-security bullseye-security main contrib no n-free deb-src http://security.debian.org/debian-security bullseye-security main contri b non-free # bullseye-updates, to get updates before a point release is made; # see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_ and_backports deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free deb-src http://deb.debian.org/debian/ bullseye-updates main contrib non-free # This system was installed using small removable media # (e.g. netinst, live or single CD). The matching "deb cdrom" # entries were disabled at the end of the installation process. # For information about how to configure apt package sources, # see the sources.list(5) manual.
superuser@debian:~$ cat /etc/apt/sources.list.d/* deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x bullseye main deb-src [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x bullseye main