====== Desplegament d'aplicacions NodeJS amb Railway.app ======
https://railway.app és un PaaS (Platform as a Service), una plataforma de desplegament d'aplicacions similar a https://heroku.com. Aquest ha estat el referent durant molts anys però a finals de 2022 ha abandonat la seva política de permetre aplicacions gratuïtes expulsant a molts desenvolupadors novells que cerquen alternatives com aquesta.
{{https://railway.app/brand/logo-dark.png?200}}{{nodejs-express.png?300}}
{{tag> #FpInfor #DamMp06 #DamMp06Uf3 #DamMp06Uf03 #DamMpProj #Daw #DawMp07 #DawMpProj nodejs node deploy DevOps git }}
===== Crear app vinculada a un repo de Github =====
Primer de tot crearem un projecte nou en local i el pujarem a Github:
- Crear nou projecte en local seguint [[nodejs_express]].
- Pujar el projecte a Github.
Per desplegar el projecte:
- Crear compte a https://railway.app i vincular-la al teu compte de Github.
- Crear un nova app a railway.app , i vincular-la al repositori on haguem posat la nostra app.
- Si hem seguit [[nodejs_express]] és molt fàcil que el deploy no funcioni directament, cal fer un parell de canvis:
- Disposar d'un //script// de ''start''. Solució ràpida per a NodeJS:
{
...
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node app.js"
},
...
}
- Publicar el servei NodeJS al port adequat on railway.app ens escolta.
* Teniu doc sobre exposar la app a https://docs.railway.app/deploy/exposing-your-app
* La solució ràpida és aquestaconst port = process.env.PORT || 3000
- Finalment caldrà vincular-ho a un domini, podem començar per publicar a un del propi railway.app
- Anem al Dashboard de la nostra app.
- Cliquem la nostra connexió a Github
- Anem aSettings -> Domain -> Generate Domain
- Cliquem i... voilà!
- Conforme vagis fent ''[[git]] push'' a la branca principal (main) de Github, el codi es desplegarà automàticament a railway.app
Teniu el meu helloworld a:
* https://railway-node-demo-production.up.railway.app/
* https://github.com/emieza/railway-node-demo