Hardware Firewall (Sophos SG105 rev.2)

Da ich immer wieder sehr massiv aus dem Internet angegriffen werde habe ich mich dazu entschieden eine HW Firewall zu installieren.


Als erstes muss man sich Gedanken machen wie die IPs konfiguriert werden sollen. Es sind natürlich zwei getrennte Bereiche und die WAN Seite kann auch nicht als Privates Netz konfiguriert werden. Ich möchte natürlich nicht mein jetzt bestehendes Netzwerk (IPs) umkonfigurieren das wäre ein riesiger Aufwand. Ich denke, ich werde der FritzBox eine neue IP vergeben.

IP FritzBox 192.168.xx.1
Internes Netzwerk 192.168.xxx.1 DHCP bleibt erstmal auf der QNAP
Als DNS nehmen wir estmal die von der Telekom
217.237.150.205
217.237.149.142

Veröffentlicht unter Anleitungen, Installation | Verschlagwortet mit , , , | Kommentare deaktiviert für Hardware Firewall (Sophos SG105 rev.2)

My Ubuntu installation

sudo apt update
sudo apt upgrade

Installation von AnyDesk
https://stephan-lubahn.de/wordpress/?p=667

Installation Enpass
https://stephan-lubahn.de/wordpress/?p=1083

sudo snap install curl
sudo apt-get install leafpad


sudo apt install hwinfo
$ sudo hwinfo

https://download.mediathekview.de/stabil/MediathekView-latest-linux.deb
Ermitteln wo ein Programm instaliert ist -> whereis vlc


Veröffentlicht unter Installation | Kommentare deaktiviert für My Ubuntu installation

Umbau Predator auf SKR und TFT 3.5 V3.0 TMC 2209

Marlin kompilieren

Als Vorbereitung sollte Visual Studio Code installiert werden (diese Beschreibung basiert darauf). https://code.visualstudio.com/download

Nach der Installation sollte PlatformIO instaliert werden

Ich empfehle den Kompletten Marlin Ordner auf dem Desktop abzulegen.

Achtung: Mit dem Öffnen des Druckers verliert Ihr die Garantie. Ihr abreitet an einem elektrischen Gerät an den eine hohe Spannung anliegt 240V. Nur, wenn der Netzstecker gezogen ist darf an dem Gerät gearbeitet werden.

Firmware flaschen

TMC Eingesetzt und TFT Verdrahtet
SKR und BTT TFT angeschlossen

Jumpersettings

Nicht Vergessen den Diaggnose Pin abzuschneiden!

Hier der Link zum Download der erforderlichen STLs für den SKR Halter -> hier

Vor dem Aufspielen der Firmware nicht vergessen, den Jumper auf USB umstellen.

SKR14TURBO_TMC2209_BTT_TFT <- Firmware compieliert

Der Link zu der Frontplatte -> hier

Die Hardware von Amazon -> hier kosten ca. 74€ ohne Treiber

Die Treiber von Amazon -> hier TMC2209

Ich habe mich im Weitesten an die Anleitung von Kris gehalten.

Vor dem Ausbau des alten Boards unbedingt die Kabel beschriften

Predator Bilder Mechanischer Umbau

Die gedrehten Kabel Wichtig!

Abschließend:

1 switch to marlin mode (pree 5 sec the knob)
2 start pronterface
3 M502 -> reset to factory defaults
3 M500 -> Save settings
4 M504 -> EPROM OK
5 M503 -> report settings
6 Menu Delta kalibritation auto 0.027
7 M500
8 Aufheizen bed 90 grad
9 M106
10 Menu Leveling bed
11 M500
12 M504
13 Mit pronterface z- bis zur aulösung z-probe fahren
14 z wert vom display ablesen -> 16.02
15 Probe entfernen dann z runter bis 0.1 fahren
16 z wert vom display ablesen 0.32
17 16.02 – 0.32 = 15.7
18 M851 Z-15.70
19 M500
20 M503
21 Menu auto home
22 Mit pronterface auf nozzel 0.1 fahren
23 M107

M106 -> lüfter an
M107 -> lüfter aus

Veröffentlicht unter 3D Druck | Verschlagwortet mit | Kommentare deaktiviert für Umbau Predator auf SKR und TFT 3.5 V3.0 TMC 2209

Umbau Artillery Sidewinder X1 SKR 1.4 Turbo BL

Zwei Dinge haben mich an dem Originalen Motherboard gestört.
1.) Das gesperrte EPROM (nicht möglich z.B. das PID tuning zu speichern)
2.) Zur Kommunikation zwischen PC und dem X1 ist dieser Buggy Treiber (CH340) nötig

Für Fragen und Anregungen könnt Ihr mir gerne eine E-Mail schreiben 3d-Druck(at)stephan-lubahn.de .

Achtung: Mit dem Öffnen des Druckers verliert Ihr die Garantie. Ihr arbeitet an einem elektrischen Gerät, an den eine hohe Spannung anliegt 240V. Nur, wenn der Netzstecker gezogen ist, darf an dem Gerät gearbeitet werden.

So sah der Sidewinder X1 vor dem Umbau aus. Alles so weit Original bis auf das Magnet Bed.

Was soll alles umgebaut beziehungsweise ersetzt werden:
1.) Das originale Motherboard soll gegen das SKR 1.4 Turbo getauscht werden.
2.) Das Originale Display soll gegen das BTT TFT 3.5 V3.0 getauscht werden.
3.) Die LED soll gegen ein BL Touch (auto leveling) getauscht werden.
4.) Durch den Display tausch muss der Filament run out Sensor neu angeschlossen werden.
5.) Das Glas Bed soll gegen ein gefräststes Magnet Bed getauscht werden.

Vielleicht noch der Tausch der Führung mit linear Schienen.

Es gibt unzählige YT Videos und Anleitungen, keine von denen hat wirklich gepasst.
Meine Vorgehensweise alle Anschlüsse physisch per Sicht verfolgt oder ausgemessen.
Alle Anschlüsse beschriftet. Teilweise habe ich die Anschlüsse durchgemessen.
Inzwischen sind die YT Videos so alt, dass die dort beschriebene Vorgehensweise überholt ist.

Was Ihr alles für den Umbau braucht:

SKR 1.4 Turbo
5 Steppermotor Treiber TM2209
BTT TFT 3.5 V3 (Die mitgelieferten Kabel sind zu kurz ihr braucht FC/FC Stecker ca. 30cm lang).
BL-Touch V3x


Marlin Kompilieren

Ich habe mich letztendlich auf die Version Marlin LTS 2.1.1, alles andere wäre sinnlos gewesen, weil auch dir Firmware des Displays auf neuer 2.0x aufbaut.
Bei SKR Boards muss die Firmware immer firmware.bin heißen.

Test ENDSTOPS M119 ?
Test Z-Probe M48

M43 – display pin status, toggle pins, watch pins, watch endstops & toggle LED, test servo probe

Wichtig!!!! Nach dem Flashen muss am Terminal der Befehl M502 und danach M500 gesendet werden.

Filament Run out Sensor

Send: M412
Recv: echo:Filament runout ON
Recv: ok

Pronterface troubleshooting

Anzeige SD Card not Printing sende M27 S0
Anzeige Permission denyed to /dev/ttyACM0 dan folgendes Probieren
sudo usermod -a -G dialout $USER

Veröffentlicht unter 3D Druck, Anleitungen | Verschlagwortet mit | Kommentare deaktiviert für Umbau Artillery Sidewinder X1 SKR 1.4 Turbo BL

Installation Enpass auf Ubuntu

To install Enpass, add a new repository to /etc/apt/sources.list:

$ echo "deb https://apt.enpass.io/  stable main" | sudo tee /etc/apt/sources.list.d/enpass.list

And import key that is used to sign the release:

$ wget -O - https://apt.enpass.io/keys/enpass-linux.key | sudo tee /etc/apt/trusted.gpg.d/enpass.asc

After that, you can install Enpass as any other software package:

$ sudo apt-get update
$ sudo apt-get install enpass

Sollte es hier zu einer Fehlermeldung kommen bitte über die Ubuntu Software installieren.

finish

Veröffentlicht unter Installation | Verschlagwortet mit , | Kommentare deaktiviert für Installation Enpass auf Ubuntu

Installation Octorint auf Ubuntu 22.04 LTS

Als erstes system Aktualisieren
sudo apt update && sudo apt upgrade
Pyton version überprüfen
python3 -V
Wenn Pyton nicht instaliert ist mit
sudo apt install python3
instalieren.
Folgende Python dependencies werden benötigt

sudo apt install python3-pip
sudo apt install python3-dev
sudo apt install python3-setuptools
sudo apt install python3-venv
sudo apt install git
sudo apt install libyaml-dev
sudo apt install build-essential
Checken ob alles up to date ist pip install pip –upgrade # minu minus upgrade
Ermitteln der IP Adresse: hostname -I

Jetz muss ein neuer User erstellt werden:
Als Beispiel: octo
sudo useradd -m octo
Password (Beispiel)
sudo passwd octo yourpassword
Gruppen zum User Hinzufügen
sudo usermod -a -G tty,dialout octo
User octo anmelden:

su octo
cd ~
cd /home/octo
mkdir OctoPrint && cd OctoPrint

Anlegen des virtual environment:
python3 -m venv venv

Achtung space zwischen den Punkten
. ./venv/bin/activate
pip install –no-cache-dir octoprint #install minu minus


Test der Insallation
su octo
cd ~
cd /home/octo
python3 -m venv venv
. ./venv/bin/activate
~/OctoPrint/venv/bin/octoprint serve
Start OctoPrint user Interface
localhost:5000




Vorbereitung zum Autostart von OctoPrint
Datei erstellen -> octoprint.default

# Configuration for /etc/init.d/octoprint

# The init.d script will only run if this variable non-empty.
OCTOPRINT_USER=octo

# base directory to use
#BASEDIR=/home/octo/.octoprint

# configuration file to use
#CONFIGFILE=/home/octo/.octoprint/config.yaml

# On what port to run daemon, default is 5000
PORT=5000

# Path to the OctoPrint executable, you need to set this to match your installation!
#DAEMON=/home/octo/OctoPrint/venv/bin/octoprint

# What arguments to pass to octoprint, usually no need to touch this
DAEMON_ARGS="--port=$PORT"

# Umask of files octoprint generates, Change this to 000 if running octoprint as its own, separate user
UMASK=022

# Process priority, 0 here will result in a priority 20 process.
# -2 ensures Octoprint has a slight priority over user processes.
NICELEVEL=-2

# Should we run at startup?
START=yes

Datei wurde in Downloads abgespeichert
Datei nach -> /etc/default/octoprint kopieren
Nach downloads wechseln
cd Downloads
sudo cp octoprint.default /etc/default/octoprint


Datei erstellen -> octoprint.init

#!/bin/sh

### BEGIN INIT INFO
# Provides:          octoprint
# Required-Start:    $local_fs networking
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: OctoPrint daemon
# Description:       Starts the OctoPrint daemon with the user specified in
#                    /etc/default/octoprint.
### END INIT INFO

# Author: Sami Olmari & Gina Häußge

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="OctoPrint Daemon"
NAME="OctoPrint"
PKGNAME=octoprint
PIDFILE=/var/run/$PKGNAME.pid
SCRIPTNAME=/etc/init.d/$PKGNAME
DEFAULTS=/etc/default/$PKGNAME

# Read configuration variable file if it is present
[ -r $DEFAULTS ] && . $DEFAULTS

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

# Exit if the DAEMON is not set
if [ -z "$DAEMON" ]
then
    log_warning_msg "Not starting $PKGNAME, DAEMON not set in /etc/default/$PKGNAME."
    exit 0
fi

# Exit if the DAEMON is not installed
[ -x "$DAEMON" ] || exit 0

# Load the VERBOSE setting and other rcS variables
[ -f /etc/default/rcS ] && . /etc/default/rcS

if [ -z "$START" -o "$START" != "yes" ]
then
   log_warning_msg "Not starting $PKGNAME, edit /etc/default/$PKGNAME to start it."
   exit 0
fi

if [ -z "$OCTOPRINT_USER" ]
then
    log_warning_msg "Not starting $PKGNAME, OCTOPRINT_USER not set in /etc/default/$PKGNAME."
    exit 0
fi

COMMAND_ARGS=
if [ -n "$BASEDIR" ]
then
    COMMAND_ARGS="--basedir $BASEDIR $COMMAND_ARGS"
fi

if [ -n "$CONFIGFILE" ]
then
    COMMAND_ARGS="--config $CONFIGFILE $COMMAND_ARGS"
fi

#
# Function to verify if a pid is alive
#
is_alive()
{
   pid=`cat $1` > /dev/null 2>&1
   kill -0 $pid > /dev/null 2>&1
   return $?
}

#
# Function that starts the daemon/service
#
do_start()
{
   # Return
   #   0 if daemon has been started
   #   1 if daemon was already running
   #   2 if daemon could not be started

   is_alive $PIDFILE
   RETVAL="$?"

   if [ $RETVAL != 0 ]; then
       start-stop-daemon --start --background --quiet --pidfile $PIDFILE --make-pidfile \
       --exec $DAEMON --chuid $OCTOPRINT_USER --user $OCTOPRINT_USER --umask $UMASK --nicelevel=$NICELEVEL \
       -- serve $COMMAND_ARGS $DAEMON_ARGS
       RETVAL="$?"
   fi
}

#
# Function that stops the daemon/service
#
do_stop()
{
   # Return
   #   0 if daemon has been stopped
   #   1 if daemon was already stopped
   #   2 if daemon could not be stopped
   #   other if a failure occurred

   start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $OCTOPRINT_USER --pidfile $PIDFILE
   RETVAL="$?"
   [ "$RETVAL" = "2" ] && return 2

   rm -f $PIDFILE

   [ "$RETVAL" = "0"  ] && return 0 || return 1
}

case "$1" in
  start)
   [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
   do_start
   case "$?" in
      0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
      2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
   esac
   ;;
  stop)
   [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
   do_stop
   case "$?" in
      0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
      2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
   esac
   ;;
  status)
   status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
   ;;
  restart)
   log_daemon_msg "Restarting $DESC" "$NAME"
   do_stop
   case "$?" in
     0|1)
      do_start
      case "$?" in
         0) log_end_msg 0 ;;
         1) log_end_msg 1 ;; # Old process is still running
         *) log_end_msg 1 ;; # Failed to start
      esac
      ;;
     *)
        # Failed to stop
      log_end_msg 1
      ;;
   esac
   ;;
  *)
   echo "Usage: $SCRIPTNAME {start|stop|status|restart}" >&2
   exit 3
   ;;
esac

Datei wurde in Downloads abgespeichert
Datei nach -> /etc/init.d/octoprint
sudo cp octoprint.init /etc/init.d/octoprint

Datei erstellen -> octoprint.service

[Unit]
Description=The snappy web interface for your 3D printer
After=network-online.target
Wants=network-online.target

[Service]
Environment="LC_ALL=C.UTF-8"
Environment="LANG=C.UTF-8"
Type=exec
User=octo
ExecStart=/home/octo/OctoPrint/venv/bin/octoprint

[Install]
WantedBy=multi-user.target

Datei wurde in Downloads abgespeichert
Datei nach -> /etc/systemd/system
sudo cp octoprint.service /etc/systemd/system



Enable octoprint service
sudo update-rc.d octoprint defaults

and start it
sudo service octoprint start

sudo systemctl enable octoprint.service

Start OctoPrint user Interface
IP:5000 oder http://localhost:5000

Thats all

Prusa Slicer installieren unter Ubuntu

Wichtig: Nach der Installation über die Ubuntu Software Verwaltung auf den Button
Permissions klicken, sonst kann es vorkommen das z.B. gemountete Netzlauwerke nich geschrieben werden könne.

Troubleshooting

Snap Store lässt sich nicht aktualisieren
killall snap-store
sudo snap refresh




Veröffentlicht unter Installation | Kommentare deaktiviert für Installation Octorint auf Ubuntu 22.04 LTS

Sonnen Batterie / Batterie-Pflege / Tibber / ioBroker

In dieser Beschreibung geht es darum, die Batterie-Pflege vorzuziehen, wenn der Strompreis günstig ist. Alle 30 Tage wird eine Batterie-Pflege von Sonnen initiiert, wenn die Batterie nicht innerhalb der Zeit zu 100% geladen wurde. Hier wird versucht, diese Batterie-Pflege dann einzuleiten, wenn der Strompreis besonders günstig ist.

Voraussetzung ioBroker mit installierten und konfigurierten Sonnen Adapter sowie TibberLink und der Telegram Adapter.
Ich musste feststellen, das bei einem von drei Testläufen das Laden einfach stoppte ohne ersichtlichen Grund. Es war nötig nochmal den Befehl zum Laden mit 3300W abzusetzen.

Vorbereitung:

Verwendete Datenpunkte:

0_userdata.0.Sonnen-Batterie.Tage-seit-full-charge -> number
0_userdata.0.Sonnen-Batterie.StartCharge -> boolean
0_userdata.0.Sonnen-Batterie.Time-Start-Charge -> string
0_userdata.0.Sonnen-Batterie.Time-End-Charge -> string

Berechnung zur Zeit 25 Tage = 25*24*60*60 = 2160000
Zum Test 3 Tage = 260200
getState(’sonnen.0.latestData.secondsSinceFullCharge‘).val >= 260200

Zum Testen ist der Preis noch auf „NORMAL“ gesetzt später dann „CHEAP“

Change Log
V1.0 Start Codierung -> Steuerungs Test der Batterie
V1.1 Automatisches Laden
V1.2 Einführung der Variablen (Datenpunkt 0_userdata.0.Sonnen-Batterie.StartCharge)
V1.3 Zusätzliche if Abfrage Im SOC Bereich
V1.4 Datenpunkte werden automatisch bei Script Start angelegt
V1.5 Zusätzlicher Datenpunkt Erfassung, Datum Uhrzeit Start laden und Ende Laden
V1.6 Nach dem 3. Test hat das Laden bei 26% angehalten ohne ersichtlichen Grund. Zusätzlich SOC <= 100% Setzen des Ladewertes
V1.7 Einführung der Variablen TimeToLoad = 2160000 * 25 Tage*

//**************************************************************************/
//* Script Sonnen-Batterie landen wenn der Strompreis am günstigen ist     */
//* Copyright by stephan-lubahn.de                                         */
//* Keine Garantie oder Haftung für Fehlfunktion oder Erstehung von Kosten */ 
//* License public nur für den Privaten gebrauch. Kommerziell nur mit      */
//* ausdrücklicher Genehmigung                                             */
//* Datenpunkte                                                            */
//* 0_userdata.0.Sonnen-Batterie.Tage-seit-full-charge -> number          */
//* 0_userdata.0.Sonnen-Batterie.StartCharge -> boolean                    */
//* 0_userdata.0.Sonnen-Batterie.Time-Start-Charge -> string               */
//* 0_userdata.0.Sonnen-Batterie.Time-End-Charge -> string                 */
//* Berechnung zur Zeit 25 Tage = 25*24*60*60 = 2160000                    */
//* Version 1.7                                                            */
//**************************************************************************/
// Datenpunkte Anlegen
createState("0_userdata.0.Sonnen-Batterie.StartCharge", false, {
  read: true, 
  write: true, 
  name: "StartCharge", 
  type: "boolean", 
  def: false
});

createState("0_userdata.0.Sonnen-Batterie.Tage-seit-full-charge", 0, {
  read: true, 
  write: true, 
  name: "Tage-seit-full-charge", 
  type: "number", 
  def: 0
});

createState("0_userdata.0.Sonnen-Batterie.Time-Start-Charge", "" , {
  read: true, 
  write: true, 
  name: "Time-Start-Charge", 
  type: "string", 
  def: ""
});

createState("0_userdata.0.Sonnen-Batterie.Time-End-Charge", "" , {
  read: true, 
  write: true, 
  name: "Time-End-Charge", 
  type: "string", 
  def: ""
});

schedule('*/5 * * * *', On_Time );   // Alle 5 Minuten Starten

 function On_Time() {
// Variablen
var TimeToLoad = 2160000;
var Wert1 = getState("sonnen.0.latestData.secondsSinceFullCharge").val;
var Tageseitvollgeladen = Wert1 / 60 / 60 /24;
var Tibberpreiswert =getState("tibberlink.0.Homes.YOUR TIBBER API.CurrentPrice.level").val;
var UserSOC =getState("sonnen.0.status.userSoc").val;
var Charging = getState("0_userdata.0.Sonnen-Batterie.StartCharge").val;
var Zeit = new Date();
let date = "2020-03-23T05:20:44";
setState("0_userdata.0.Sonnen-Batterie.Tage-seit-full-charge",Tageseitvollgeladen);

// Debugging -> Nach test auskommentieren 
// console.log(Wert1);
// console.log(Tageseitvollgeladen);
// console.log(TimeToLoad);
// console.log(Tibberpreiswert);
// console.log(Charging);

if (Charging === false) {
if (getState('sonnen.0.latestData.secondsSinceFullCharge').val >= TimeToLoad) {
 
 sendTo("telegram.0", "send", {
     text: 'Zeit zur Batterie Pflege erreicht'});
console.log('Wert erreicht'); 
 

if (Tibberpreiswert == 'CHEAP') {
    console.log('Preiswert');
    sendTo("telegram.0", "send", {
    text: 'Tibber Preis cheap'});
    // Start charge Sonnen Batt
setState("0_userdata.0.Sonnen-Batterie.StartCharge",true);
setState('sonnen.0.configurations.EM_OperatingMode',1);
setState('sonnen.0.control.discharge', 0); //Als erstes aus Sicherheit discharge auf 0 setzen
setState('sonnen.0.control.charge', 3300); // Die Batterie wird mit maximal 3300 Watt geladen
setState('sonnen.0.configurations.EM_OperatingMode',1);
date = formatDate(Zeit, 'DD.MM.YYYY - hh:mm');
setState("0_userdata.0.Sonnen-Batterie.Time-Start-Charge",date);
}  // Ende Tibber Preis
} // Ende Zeit last charge
} // Ende laden false

console.log(UserSOC);
if (Charging === true) {
    if (UserSOC <=100) {
       setState('sonnen.0.control.charge', 3300); 
    }
if (UserSOC >= 100) {
  setState('sonnen.0.configurations.EM_OperatingMode',2);   // Automatik
  setState('sonnen.0.control.discharge', 1); //Entladen Ein
  setState("0_userdata.0.Sonnen-Batterie.StartCharge",false); 
  setState('sonnen.0.configurations.EM_OperatingMode',2);
  sendTo("telegram.0", "send", {
    text: 'SOC >= 100%'}); 
  console.log('SOC >= 100%');
  date = formatDate(Zeit, 'DD.MM.YYYY - hh:mm');
  setState("0_userdata.0.Sonnen-Batterie.Time-End-Charge",date);
}
}

 } 
 // Ende

Veröffentlicht unter Anleitungen | Kommentare deaktiviert für Sonnen Batterie / Batterie-Pflege / Tibber / ioBroker

Installation Node-Red auf Ubuntu

https://github.com/nvm-sh/nvm#installing-and-updating

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
~/.bashrc

export NVM_DIR=“$([ -z „${XDG_CONFIG_HOME-}“ ] && printf %s „${HOME}/.nvm“ || printf %s „${XDG_CONFIG_HOME}/nvm“)“
[ -s „$NVM_DIR/nvm.sh“ ] && . „$NVM_DIR/nvm.sh“


wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash

sudo /home/${user}/.nvm/version/node/${version}/bin/npm install

nvm install node

export NVM_DIR=“$([ -z „${XDG_CONFIG_HOME-}“ ] && printf %s „${HOME}/.nvm“ || printf %s „${XDG_CONFIG_HOME}/nvm“)“
[ -s „$NVM_DIR/nvm.sh“ ] && . „$NVM_DIR/nvm.sh“


source ~/.bashrc
nvm -v
nvm ls-remote

Über snap instalieren-> sudo snap install node-red
npm install -g –unsafe -perm node-red
sudo apt-get remove nodejs npm
sudo apt-get update
sudo apt-get upgrade
sudo snap install node –classic –channel=14
sudo apt-get install -y nodejs
sudo npm update npm -g
npm install -g npm@10.2.5
sudo apt-get update
sudo apt-get upgrade

——> Installation nicht bestätigt / getestet



Veröffentlicht unter Uncategorized | Kommentare deaktiviert für Installation Node-Red auf Ubuntu

Promox Installation

ssh root@<ip/hostname of your sever> -L 8006:localhost:8006 dann https://localhost:8006

Veröffentlicht unter Uncategorized | Verschlagwortet mit | Kommentare deaktiviert für Promox Installation

Windows Meldung: Es konnten nicht alle Netzlaufwerke wiederhergestellt werden

Um die Meldung zu deaktivieren in der Registry

HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > NetworkProvider

Neu DWORD-Wert (32-Bit) – RestoreConnection Wert 0

Neu Starten

Veröffentlicht unter Troubleshooting | Verschlagwortet mit | Kommentare deaktiviert für Windows Meldung: Es konnten nicht alle Netzlaufwerke wiederhergestellt werden