Diferència entre revisions de la pàgina «Snap! a un servidor intermediari invers emprant Dockers»
m (→Inclusió de nous exemples) |
m (→Inclusió de nous exemples) |
||
Línia 33: | Línia 33: | ||
</script> | </script> | ||
== Inclusió de nous exemples == | == Inclusió de nous exemples == | ||
− | A la carpeta '''Examples''' hi afegiu el nou exemple amb extensió ''.xml'' i editeu l'arxiu '''EXAMPLES'''. En aquest exemple d'edició de l'arxiu ''EXAMPLES'' s'ha afegit el nom de l'arxiu ''.xml'' afegit a la carpeta ''Examples'' i '''separat per un tabulador''' una descripció mínima de l'exemple: | + | A la carpeta '''Examples''' hi afegiu el nou exemple amb extensió ''.xml'' i editeu l'arxiu '''EXAMPLES'''. En aquest exemple d'edició de l'arxiu ''EXAMPLES'' s'ha afegit el nom de l'arxiu ''.xml'' (''IoT-Vertebrae.xml'') afegit a la carpeta ''Examples'' i '''separat per un tabulador''' una descripció mínima de l'exemple: |
animal-game.xml Animal Game | animal-game.xml Animal Game | ||
Codification.xml Codification | Codification.xml Codification |
Revisió del 13:12, 27 març 2024
Contingut
Previ
Cal tenir una Servidor intermediari invers. Farem servir la mateixa xarxa interna de dockers al Node-RED i al servidor intermediari invers.
Podeu veure quins dockers són connectats a la xarxa interna:
docker network inspect net
Baixada del codi font
Baixeu el codi font del Snap! a GitHub:
jordi@vps:~/bin/html$ wget https://github.com/jmoenig/Snap/archive/refs/heads/master.zip
Descomprimiu (en cas de no tenir l'eina unzip feu sudo apt install unzip per a tenir-la):
jordi@vps:~/bin/html$ unzip master.zip jordi@vps:~/bin/html$ cd master jordi@vps:~/bin/html/master$
Personalització del Snap!
Opció de JavaScript activada per defecte
Per raons de seguretat, s'ha desactivat el JavaScript per defecte. Si us munteu el vostre propi servei al núvol, per a poder cridar programes vostres amb funcions amb JavaScript, heu d'afegir aquesta línia, en negreta, a l'arxiu snap.html:
<script> Process.prototype.enableJS = true; // <-- Per a tenir seleccionat el JS per defecte var world; window.onload = function () { if ('serviceWorker' in navigator) { navigator.serviceWorker.register('sw.js'); } world = new WorldMorph(document.getElementById('world')); new IDE_Morph().openIn(world); loop(); }; function loop() { requestAnimationFrame(loop); world.doOneCycle(); } </script>
Inclusió de nous exemples
A la carpeta Examples hi afegiu el nou exemple amb extensió .xml i editeu l'arxiu EXAMPLES. En aquest exemple d'edició de l'arxiu EXAMPLES s'ha afegit el nom de l'arxiu .xml (IoT-Vertebrae.xml) afegit a la carpeta Examples i separat per un tabulador una descripció mínima de l'exemple:
animal-game.xml Animal Game Codification.xml Codification copter.xml Copter count-change.xml Count Change icecream-visual.xml Icecream Visual IoT-Vertebrae.xml Interaction with IoT-Vertebrae JSfunctions.xml JSfunctions live-tree.xml Live Tree swimmer.xml Swimmer tree.xml Tree vee.xml Vee
Construcció del docker
Dins de la carpeta a on hi l'arxiu index.html feu un nou arxiu anomenat default:
jordi@vps:~/bin/html/master$ nano default
I hi afegiu aquest contingut:
server { listen 80 default_server; listen [::]:80 default_server; root /usr/share/nginx/html; index index.html index.htm; server_name _; location / { try_files $uri $uri/ =404; } }
Dins de la carpeta a on hi l'arxiu index.html feu un nou arxiu anomenat Dockerfile:
jordi@vps:~/bin/html/master$ nano Dockerfile
I hi afegiu aquest contingut:
FROM nginx:alpine COPY . /usr/share/nginx/html EXPOSE 80
Construïu el docker:
jordi@vps:~/bin/html/master$ docker build -t snap9:v2.13 .
Al vostre proveïdor de dominis apunteu el nou subdomini (a l'exemple és snap.binefa.cat) al vostre VPS al núvol. A la llista de DNS feu servir el tipus A si apunteu a una IP o el tipus CNAME si apunteu a un altre nom de domini.
Poseu el docker en marxa:
docker run --rm --name snap9 -e VIRTUAL_HOST=snap.binefa.cat -e LETSENCRYPT_HOST=snap.binefa.cat -e VIRTUAL_PORT=80 --network net -d snap9:v2.13
Documentació
How to Build Docker Image : Comprehensive Beginners Guide (Fa servir com a Linux base un Ubuntu 18.04)
How I Deployed my Website as a Docker Container (Fa servir com a base un docker que és un servidor nginx instal·lat dins d'un Linux Alpine. Alpine és un Linux minimalista)