安装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
- Support Code Hosting Provider: GitHub, GitHub Enterprise, Bitbucket,
What's current version?
Version 1.0 has been relaease on March, 17th.
安装Backstage.io应用
- 更新Ubuntu
sudo apt update
- 更新Ubuntu - 安装Nodejs
- GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
- 下载nvm安装脚本
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版本
-
Installation | Yarn (yarnpkg.com)
sudo apt install make
npm install --global yarn
- 安装yarn
yarn --version
- 检查yarn是否安装 -
Git Guides - install git · GitHub
sudo apt-get install git-all
- 安装git
git version
- 检查git是否安装 -
Install Docker Engine on Ubuntu | Docker Documentation
sudo apt-get remove docker docker-engine docker.io containerd runc
- 卸载旧版本
sudo apt-get update
- 更新Ubuntu
curl -fsSL https://get.docker.com -o get-docker.sh
- 下载安装脚本
sudo sh get-docker.sh
- 安装docker
sudo docker run hello-world
- 测试docker是否安装成功
npx @backstage/create-app
- 安装backstage
cd backstage/packages/backend
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要解决的问题
- 激活Windows Sub Linux系统。
- 如出现0x800701bc,参考win10 WSL2问题解决WslRegisterDistribution failed with error: 0x800701bc_first_Dance的博客-CSDN博客_0x800701bc解决并重启。
- 运行
sudo vi /etc/hosts
,编辑hosts文件。 - 添加GitHub最新hosts到hosts文件。
npm config set registry https://registry.npm.taobao.org
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