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