Publicar Angular no Railway
Railway ou ferrovia e a melhor hospedagem para suas aplicacoes e simples de publicar!
Como publicar seu site angular no Railway?
inicie seu aplicativo
ng new lojaonline
Configuracao
Apos isso crie um arquivo chamado Procfile na pasta do seu projeto e escreva nele:
web: npm start
Apos isso troque o comando start por outro
"scripts":{
"start": "node server.js"
}
claro nao iremos esquecer de criar o arquivo server.js na base do seu projeto e colocar este codigo em express
const express = require("express");
const bodyParser = require('body-parser');
const app = express();
const port = process.env.PORT || 3000;
const allowCors = (req, res, next) => {
res.header("Access-Control-Allow-Origin", "*"); // colocar os dominios permitidos | ex: 127.0.0.1:3000
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization, Access-Control-Allow-Credentials, X-Access-Token, X-Key");
res.header("Access-Control-Allow-Methods", "GET, PUT, POST, DELETE, OPTIONS, PATCH");
res.header("Access-Control-Allow-Credentials", "true");
next();
}
app.use(allowCors);
app.use(bodyParser.json({ limit: '10mb' }));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(__dirname + "/dist/lojaonline"));
// servir o index.html do angular
app.get('*', (req, res) => {
res.sendFile(__dirname + "/dist/lojaonline/index.html");
});
app.listen(port, async() => {
console.log(`API Gateway running in port ${port}!`)
});
Okay, quase la! Nos estamos usando o express para servir nossos arquivos estaticos e o html principal do Angular!
Por este motivo vamos adicionar o projeto na parte de desenvolvimento do nosso projeto ele so pode esta em Desenvolvimento pois nao ira ser compilado junto com o projeto!
npm i -D express
Ultima configuracao offline vamos subir nosso projeto para o github, apos isso crie uma conta no railway usando o proprio github! entao siga os passos!
Agora sim vamos para o Railway
No Dashboard clique em Novo projeto > Deploy com github > escolha o repositorio que subiu clica em ok, Espera a magica acontecer e pronto! aparecera o link para acessar sua aplicacao angular.
Curiosidade do Railway ele utiliza tudo em docker usando o sistema Nix utilitario de comando do NixOS, da uma conferida!
Link: https://nixos.org/
Canal do DioLinux: https://www.youtube.com/watch?v=BODYe-Jy2AQ