NEWS
Text in Base64 codieren und Datei von Netzlaufwerk suchen
-
kannst du mir vieleicht helfen? Bin schon den ganzen Tag dabei nach einer Lösung zu suchen wie ich ein Bild zum VPS per Blockly/Script kopieren kann.
Oder kann man das doch irgendwie in einen Ordner in ioBroker kopieren damit ich von da per Vis zugreifen kann.
-
Mit den Geräten kenn ich mich nicht aus.
-
auf dem VPS ist Debian 12 installiert. Muss ja "nur" aus dem Ordner
/home/iobroker/vubox
von meine ioBroker, auch Debian 12 nach dem Ordner
vps-ip:/var/www/html
kopiert werden
-
Ich würde es per
scp
machen. -
ok, mit diesem Befehl kann ich aus der Console kopieren
scp /home/iobroker/vubox/1.jpg user@vps-ip:/var/www/html/cover.jpg
aber es wird dann immer nach dem passwort gefragt. Kann man das auch in dem Befehl direkt mit eingeben?
user:password@vps....
funktioniert nicht
-
Verwende ssh-keys für die beiden Maschinen, keine Passwörter.
-
hmm, habe jetzt einen key erzeugt muss aber wenn ich scp mache immer noch ein passwort eingeben
less ~/.ssh/authorized_keys ssh-ed25519 xxxxxxxxxxx chris@ioBroker
auf dem VPS
-
@chris76e
Dann lass nginx auf der iobroker Maschine laufen
Lese dir dazu die ersten beiden Kapitel hier durchhttps://docs.nginx.com/nginx/admin-guide/web-server/
Configuring…..
Serving static content….Damit stellst du die bilder aus dem Ordner den du jetzt per Mount angebunden hast bereit.
Im Anschluss kannst du dann in vis die url do bauen das die Bilder von da geladen werden
-
nginx ist installiert, komme aber mit der configuration nicht klar.
so sieht bis jetzt die
/etc/nginx/nginx.conf
user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }
und so die
/etc/nginx/conf.d/default.conf
server { listen 80; server_name localhost; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } server { root /home/iobroker/vubox/AdvancedEventLibrary/poster; location / { } location /images/ { } location ~ \.(mp3|mp4) { root /www/media; } }
aus. Verstehe die beiden Kapitel nicht so richtig.......
-
@chris76e
Dann musst du bis zum Wochenende warten. Kann erst da wieder was ausprobieren
Schreib am Samstag hier nochmal eine Erinnerung rein -
@oliverio ok
-
Habe es jetzt am laufen, kam mit dieser Anleitung besser klar
http://nginx.org/en/docs/beginners_guide.html#static
Habe aber dennoch einige fragen am Wochenede
-
@ all
habe mit diesem Befehl die Festplatte vom Linux Receiver in ioBroker gemountet.
sudo mount -t nfs -o soft 192.168.0.90:/media/hdd /data/images
nach einem neustart von ioBroker ist der Mount wieder weg. Was muss ich wo einstellen das der Mount auch nach einem neustart bestehen bleibt?
-
Man muss den Mount in die Datei fstab eintragen
https://wiki.ubuntuusers.de/fstab/
Bitte eine Sicherungskopie der funktionierenden fstab machen
und sorgfältig bearbeiten.
Bei einem Fehler wird es sonst etwas aufwändiger die Datei wieder z zurückzustzen
Daher bitten den ganzen Artikel zuerst durchlesen.
Das Ubuntu braucht dich nicht zu verwirren, der Text gilt für alle Debian-artigen linux -
Hoffe das ich es richtig verstanden habe.
so sieht die fstab zur Zeit aus
# /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> # / was on /dev/sda1 during installation UUID=c96f3fd9-4fdb-4d4e-a130-745e1d6aa3d6 / ext4 errors=remount-ro 0 1 # swap was on /dev/sda5 during installation UUID=366f70e9-5de5-4a48-a3bb-1cc13c0e0cb6 none swap sw 0 0 /dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
muss ich jetzt diesen eintrag hinzufügen?
# NFS-Freigabe: 192.168.0.90:/media/hdd /data/images nfs _netdev,rw 0 0
-
Sieht gut aus.
Testen kannst du dann ohne Neustart mitsudo mount -a
Da siehst du dann ob es funktioniert oder ob es Fehler gibt
Beide Verzeichnisse sollten existieren
Mountverzeichnisse sollte man besser im Ordner /mnt anlegen.https://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/mnt.html
Ist aber nur eine Konvention und keine Verpflichtung -
-
so, konnte die VM wo iobroker drauf läuft gerade neustarten, mount bleibt bestehen.
-
@oliverio sagte in Text in Base64 codieren und Datei von Netzlaufwerk suchen:
Schreib am Samstag hier nochmal eine Erinnerung rein
Funktioniert jetzt soweit bei mir
hier die default.conf
# # error_page 500 502 503 504 /50x.html; # location = /50x.html { # root /usr/share/nginx/html; # } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} #} server { location / { root /data/www; } location /images/ { root /data/; try_files $uri /images/default.jpg; } }
Ist die so OK?
-
wenn es funktioniert ist es ok.
warum hast du 2 locations?
das location das auf den ordner /data/www zeigt wäre erstmal
nicht notwendig.da du dich ja nur im lan hier bewegst ist es eigentlich egal.
aber dateien aus dem ordner www wären dann auch über die uri/images/www/abc.xyz
erreichbar.
mit try_files versuchst du zu erreichen, das wenn du die URL in der vis falsch berechnet hast, das dann zumindest ein ersatzbild kommt?