Este es un proyecto en construcción para desarrollar herramientas web del lenguaje Wollok. Usa la implementación de Wollok-TS como core del lenguaje.
Actualmente cuenta con las siguientes implementaciones:
- Game Una interfaz para correr juegos hechos con Wollok Game.
- Debugger Una forma de correr tests y poder ejecutar paso a paso viendo el estado de la WVM.
- Worksheet Un pseudo IDE con un editor, consola y diagrama dinámico.
El proyecto se encuentra deployado en https://server.wollok.org
en donde se encuentra:
- Worksheet: https://game.wollok.org/worksheet
- Debugger: https://game.wollok.org/debugger
- Game: Probar un Wollok Game desde la web: https://server.wollok.org/game
En primer lugar, asegurarse de tener instalado node >= 11 && < 15
.
Luego hay que bajar las dependencias con el comando:
npm install
La app está desarrollada sobre ReactJS y , como buen proyecto npm
, para levantarla hay que ejecutar el comando
npm start
¡Atención! Para usar Wollok Game y poder clonarse proyectos desde github es necesario levantar además un proxy por CORS. Para eso, ejecutar desde otra consola
npm run cors
El server se levantará por default en la ruta
http://localhost:9999
Para configurar la ruta del proxy hay que cambiar la variable de entorno
REACT_APP_PROXY_URL
. Por ejemplo para levantar la app con una ruta de proxy customizada se puede hacer# Linux REACT_APP_PROXY_URL=http://localhost:8787 npm start # Windows set "REACT_APP_PROXY_URL=http://localhost:8787" && npm start
Para tener una version lista para deployar en su servidor querido es necesario ejecutar:
REACT_APP_PROXY_URL=https://game.wollok.org/content npm run build
Eso va a generar una version estática en el directorio build.
Luego hay que comprimir dicho instalable con:
zip -9 -y -r 20211027.zip build/
Cambiando la fecha para que sea la nueva.
Vamos luego a copiar el archivo usando SCP, para eso la clave publica debe estar registrada en el servidor. Por lo tanto, hablar con alguien que ya este adentro :D
scp -i ~/.ssh/deploy-ec2 20211027.zip deploy@server.wollok.org:/var/wollok-run-client/
Una vez hecho eso, conectarse por SSH y descomprimir el archivo, haciendo:
ssh deploy@server.wollok.org
cd /var/wollok-run-client/
rm -rf build
unzip 20211027.zip
Simplemente ejecutar
./compose.sh dev up
Y eso pone en funcionamiento todos los servicios necesarios.
Esta aplicación ha sido desarrollada usando
- Docker version 19.03.11, build dd360c7
- docker-compose version 1.25.5, build unknown
Toda la configuración para levantar los servicios docker, está en los archivos docker-compose*.yml
.
El script compose
es simplemente un helper para elegir los archivos adecuados, que siempre son dos (uno de base y otro específico del ambiente dev o prod según corresponda).
Ejecutar
./compose.sh prod up
Va a levantar los mismos servicios pero en modo producción, corriendo el build de react-cra en modo optimizado y poniendo el build resultante en una imagen donde la sirve un nginx. Usando este comando es posible levantarlo localmente en las mismas exactas condiciones que se ejecutará en producción (aunque para desarrollar sería muy incómodo).