Diferència entre revisions de la pàgina «Snap! a un servidor intermediari invers emprant Dockers»

De things.cat
Salta a: navegació, cerca
m
m (Previ)
Línia 4: Línia 4:
 
Podeu veure quins ''dockers'' són connectats a la xarxa interna:
 
Podeu veure quins ''dockers'' són connectats a la xarxa interna:
 
  docker network inspect net
 
  docker network inspect net
 +
= Baixada del codi font =
 +
Baixeu el codi font del [https://github.com/jmoenig/Snap 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! =
 
= Personalització del Snap! =
 
== Opció de JavaScript activada per defecte ==
 
== Opció de JavaScript activada per defecte ==

Revisió del 13:11, 27 març 2024

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 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

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$

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)