Skip to content

Backstage

Backstage é uma estrutura de código aberto para a construção de portais de desenvolvedores. Backstage unifica as suas ferramentas de infraestrutura, serviços e documentação para criar um ambiente de desenvolvimento simplificado de ponta a ponta. Backstage para automatizar a criação de novos repositórios, incluindo algumas tarefas personalizadas como parte desse processo.

Pré-requisitos

Estaremos automatizando usando apenas as seguintes ferramentas:

  • Conta GitHub
  • Espaços de código do GitHub
  • Extensão VSCode e Codespaces

VSCode

Antes de começar, você deve instalar o plugin Codespaces na sua instalação local do VSCode, porque depois conectaremos sua instância do vscode ao codespace no GitHub.

// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node
{
  "name": "AATT Workshop",
  "build": {
    // O caminho é relativo ao arquivo devcontainer.json.
    "dockerfile": "Dockerfile"
  },
  "features": {
    "ghcr.io/devcontainers/features/github-cli:1": {}
  },

  // Use 'forwardPorts' para disponibilizar localmente uma lista de portas dentro do contêiner.
  "forwardPorts": [3000, 7007],

  "portsAttributes": {
    "3000": {
      "label": "Frontend",
      "onAutoForward": "openBrowserOnce"
    },
    "7007": {
      "label": "Backend",
      "onAutoForward": "ignore"
    }
  },

  "mounts": [
    {
      "source": "${localWorkspaceFolderBasename}-backstage-node_modules",
      "target": "${containerWorkspaceFolder}/backstage/node_modules",
      "type": "volume"
    },
    {
      "source": "${localWorkspaceFolderBasename}-backstage-yarn-cache",
      "target": "${containerWorkspaceFolder}/backstage/.yarn/cache",
      "type": "volume"
    }
  ],

  // Use 'postCreateCommand' para executar comandos após a criação do contêiner.
  // "postCreateCommand": "yarn install",

  // Configure tool-specific properties.
  "customizations": {
    "vscode": {
      "extensions": [
        "dbaeumer.vscode-eslint",
        "esbenp.prettier-vscode",
        "orta.vscode-jest",
        "streetsidesoftware.code-spell-checker",
        "intility.vscode-backstage"
      ]
    }
  },

  // Remova o comentário para conectar-se como root. Mais informações: https://aka.ms/dev-containers-non-root.
  // "remoteUser": "root"

  "postCreateCommand": {
    // A montagem de volumes traz problemas de permissão, então precisamos corrigi-los
    // para ter certeza de que podemos gravar nos volumes montados ao executar em devcontainers
    "fix_permissions": "sudo chown node backstage/node_modules && sudo chown node backstage/.yarn/cache"
  }
}

Arquitetura

O Backstage dessa forma porque vemos três grupos de colaboradores que trabalham com o Backstage de três maneiras diferentes.