安装Backstage.io应用

Backstage介绍

What's Backstage?

Backstage is an open platform for building developer portals. Powered by a centralized software catalog, Backstage restores order to your microservices and infrastructure and enables your product teams to ship high-quality code quickly — without compromising autonomy.

Company: Spotify
Product: Backstage.io
Description:

  • Spotify's homegrown developer portal
  • An app store for all your developer tools.
  • It supercharges developer productivity.
  • And it creates a new & better standard for engineering organizations everywhere.

Backstage Components

  • Backstage Software Catalog - for managing all your software (microservices, libraries, data pipelines, websites, ML models, etc.).
  • Backstage Software Template - for quickly spinning up new projects and standardizing your tooling with your organization’s best practices.
  • Backstage TechDocs - for making it easy to create, maintain, find, and use technical documentation, using a "docs like code" approach.
  • Open Source Plugins - further expand Backstage's customizability and functionality.

  • Backstage Platfom
    • Core
    • Catalog
    • Scaffolder (Software Templates)
    • TechDocs
      • Support Code Hosting Provider: GitHub, GitHub Enterprise, Bitbucket, Azure DevOps, GitLab, GitLab Enterprise
      • Support Storage Provider: Local Filesystem of Backstage app, Google Cloud Storage (GCS), Amazon Web Service (AWS) S3, Azure Blob Storage, OpenStack Swift

What's current version?

Version 1.0 has been relaease on March, 17th.

安装Backstage.io应用

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

nvm install --lts - 安装Node LTS版本

npx @backstage/create-app - 安装backstage

cd backstage/packages/backend

提供80、443端口权限

sudo apt-get install libcap2-bin
sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``

安装PostgreSQL

sudo apt-get install postgresql
sudo service postgresql start
sudo -u postgres psql
postgres=# ALTER USER postgres PASSWORD 'secret';

# From your Backstage root directory 
cd packages/backend 
yarn add pg

部署Docker容器

yarn install --frozen-lockfile
yarn tsc
yarn build

sudo chmod 666 /var/run/docker.sock

sudo docker image build . -f packages/backend/Dockerfile --tag backstage
sudo apt-get --purge remove apache*
sudo docker run -it -p 7007:7007 backstage

部署到Azure虚拟机

Create Azure VM with:
Standard B2s (2 vcpus, 4 GiB memory)
Linux (ubuntu 20.04)

Add Inbound Ports:

  • HTTP 80
  • HTTPS 443
  • 3000
  • 7007

Set IP address assignment with Static - 20.127.85.68
Name DNS name label: backstage2.eastus.cloudapp.azure.com

解决Localhost发布与证书的冲突问题

TechDocs API Discovery Returns Incorrect Base URL · Issue #4665 · backstage/backstage (github.com)

将本地Backstage代码提交远端Github代码库

git init

git remote add origin https://github.com/richardcuick/backstage.git
git add .
git commit -m "initial"
git pull --rebase origin master
git push origin HEAD:main

Backstage Plugins

git clone https://github.com/RoadieHQ/roadie-backstage-plugins.git
cd roadie-backstage-plugins
yarn install
yarn tsc
yarn build

Plugins container

cd roadie-backstage-plugin/plugins
cd backend/frontend 
cd selected-plugin

Templates:


[req]
default_bits = 4096
default_md = sha256
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
ST = VA
L = SomeCity
O = MyCompany
OU = MyDivision
CN = 20.127.85.68
[v3_req]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
IP.1 = 20.127.85.68


sudo apt install net-tools
sudo su
netstat -anp |grep 3000
netstat -anp |grep 7000

node.js - Error: listen EACCES: permission denied 0.0.0.0:443 - Stack Overflow
https://stackoverflow.com/questions/69000077/error-listen-eacces-permission-denied-0-0-0-0443

sudo apt-get install libcap2-bin
sudo setcap cap_net_bind_service=+ep readlink -f \which node``


使用WSL2 Ubuntu安装Backstage.io要解决的问题


WSL2 中访问宿主机 Windows 的代理 - ZingLix Blog
cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }' - 获得宿主机IP地址

unset http_proxy
unset HTTP_PROXY
unset https_proxy
unset HTTPS_PROXY
unset ALL_PROXY
unset all_proxy

export http_proxy="http://172.18.96.1:1080"
export https_proxy="http://172.18.96.1:1080"

export all_proxy=http://172.19.144.1:1080



cd my-backstage-app
yarn dev


app:
  title: Backstage App
  baseUrl: http://0.0.0.0:3000
  
organization:
  name: My Company

backend:
  baseUrl: http://<public ip address>:7007
  listen:
    port: 7007
  csp:
    connect-src: ["'selft'", 'http:', 'https:']
    upgrade-insecure-requests: false
  cors:
    origin: http://<public ip address>:3000
    methods: [GET, POST, PUT, DELETE]
    credentials: true
  database:
    client: better-sqlite3
    connection: ':memory:'
  cache:
    store: memory

sudo apt-get install postgresql
sudo service postgresql start
sudo -u postgres psql
postgres=# ALTER USER postgres PASSWORD 'secret';

# From your Backstage root directory 
cd packages/backend 
yarn add pg

yarn install --frozen-lockfile
yarn tsc
yarn build

sudo chmod 666 /var/run/docker.sock

sudo docker image build . -f packages/backend/Dockerfile --tag backstage
sudo apt-get --purge remove apache*
sudo docker run -it -p 7007:7007 backstage


Create Azure VM with:
Standard B2s (2 vcpus, 4 GiB memory)
Linux (ubuntu 20.04)

Add Inbound Ports:

  • HTTP 80
  • HTTPS 443
  • 3000
  • 7007

Set IP address assignment with Static - 20.127.85.68
Name DNS name label: backstage2.eastus.cloudapp.azure.com


  • 修改app-config.yaml将三个127.0.0.1地址分别修改为:
    • 0.0.0.0
    • 静态IP地址
    • 静态IP地址

Map to 443, with error message:

This site can’t provide a secure connection

backend:
 csp:
   upgrade-insecure-requests: false

如何在 Ubuntu 20.04 上安装 Nginx - 知乎 (zhihu.com)
https://zhuanlan.zhihu.com/p/138007915


Fix localhost issue with HTTPS certificate

TechDocs API Discovery Returns Incorrect Base URL · Issue #4665 · backstage/backstage (github.com)


git init

git remote add origin https://github.com/richardcuick/backstage.git
git add .
git commit -m "initial"
git pull --rebase origin master
git push origin HEAD:main

posted @ 2022-03-30 20:42  桁椽  阅读(472)  评论(0编辑  收藏  举报