Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save andreluialves/9851eb0659b9029b959859fb255b8167 to your computer and use it in GitHub Desktop.

Select an option

Save andreluialves/9851eb0659b9029b959859fb255b8167 to your computer and use it in GitHub Desktop.
Realizando deploy de um app Node.js / Sequelize / Express.js para o Heroku e utilizando o postgreSQL no Supabase

Backend

Configurar o supabase criando um banco de dados

Clicar em Settings -> Database -> Connection Info para ver as informações da conexão

Fazer o git clone do projeto em questão

Mudar o config.js do Sequelize no Backend colocando as variáveis de ambiente.

module.exports = {
  development: {
    username: process.env.DB_USER,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_NAME,
    host: process.env.DB_HOST,
    dialect: process.env.DB_DIALECT,
  },
  test: {
    username: process.env.DB_USER,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_NAME,
    host: process.env.DB_HOST,
    dialect: process.env.DB_DIALECT,
  },
  production: {
    username: process.env.DB_USER,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_NAME,
    host: process.env.DB_HOST,
    dialect: process.env.DB_DIALECT,
    dialectOptions: {
      ssl: {
        require: true,
        rejectUnauthorized: false,
      },
    },
  },
};

Criar o Dockerfile

FROM node:alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .

Criar o heroku.yml

build:
  docker:
    web: Dockerfile
run:
  web: node src/api/server

Criar o app no heroku

heroku apps:create --app backend-supabase

Set como container Docker

heroku stack:set container -a backend-supabase

Inserir as variáveis de ambiente no Heroku referenciando o Supabase. No Heroku entre em Settings -> Reveal Vars e cria cada uma abaixo com os valores lá do Connection Info do Supabase.

DB_USER,
DB_PASSWORD,
DB_NAME,
DB_HOST,
DB_DIALECT,

Install sequelize-cli como dependecies e pg

npm i sequelize-cli
npm i pg

Install cors

npm i cors
//app.js
const cors = require('cors');

const app = express();

app.use(cors());

Deploy no Heroku

git push heroku main

Configuração da NODE_ENV

heroku config:set NODE_ENV=production

Rodar o Sequelize

heroku run npx sequelize db:migrate
heroku run npx sequelize db:seed:all

Abrir o Table Editor do Supabase para ver os dados

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment