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

安装Backstage.io应用的更多相关文章

  1. 安装 log.io 实时监控 php_error 日志

    Log.io 实时监控 php_error.log 日志 开启 php_error 实时监控日志的第一步,要首先开启 php_error 的功能. vi php.ini 修改 PHP 配置文件,将 ; ...

  2. Nodejs npm安装socket.io报错解决办法

    安装socket.io时,报错,提示需要安装Microsoft visual studio 2005 或 Net framework 2.0 sdk,没有找到vcbuild.exe,解决办法是安装 . ...

  3. win8安装mean.io详解

    最近,老大说要安装mean.io,然后……我的win8华丽丽的就上战场了……这期间真是安装得要生要死……最终也终于“不辱使命”成功安装上了…… 废话不多说,进入正题啦 前提当然是电脑有node.环境… ...

  4. CentOS安装log.io

    官网 http://logio.org/ log.io是运行在node.js之上的 可通过浏览器访问服务器日志 类似于tail -f命令 它只负责实时传输数据 而不会去存储历史数据 npm insta ...

  5. python安装与IO编程

    <python爬虫开发与项目实战>基础篇(一) 一.python安装 1.python IDLE 下载官网:www.python.org 注:在选择安装组件时勾选所有组件,特别注意勾选pi ...

  6. npm安装socket.io时报错的解决方法(npm WARN enoent ENOENT: no such file or directory, open '/usr/local/nodejs/bin/package.json')

    执行 npm install socket.io安装时报错: [root@WEB node_modules]# npm install socket.ionpm WARN enoent ENOENT: ...

  7. windows服务安装 System.IO.FileLoadException

    报错如下: System.IO.FileLoadException: 未能加载文件或程序集“file:///D:\WindowsService\bin\Debug\WindowsService.exe ...

  8. Ubuntu安装开发者平台Backstage

    Ubuntu安装开发者平台Backstage 什么是Backstage? Backstage是一个构建开发者门户的开源平台.通过支持一个集中的软件分类,Backstage可以保存并发布你的微服务和基础 ...

  9. socket.io安装部署

    需要node.js环境 创建package.json npm init 下载相关依赖 npm install --save express@4.10.2npm会在当前目录下载所需要的依赖到node_m ...

随机推荐

  1. CentOS 7 下如何进行Python3的独立安装

    一.部署准备工作 部署环境工具检查及安装 1)安装epel-release库,以防db4-devel依赖安装失败 1 yum -y install epel-release 2)安装外部函数库(lib ...

  2. SpringMVC教程--Idea中使用Maven创建SpringMVC项目

    1.新建项目 参照idea教程中的创建maven项目https://www.cnblogs.com/daxiang2008/p/9061653.html 2.POM中加入依赖包 (1)指定版本 (2) ...

  3. Scrapy:用cmdline运行爬虫后导致主程序也结束——CrawlerProcesser

    学习自: Scrapy官方文档--CrawlerRunner相关 解决django或者其他线程中调用scrapy报ReactorNotRestartable的错误 - liuxianglong - 博 ...

  4. vm虚拟机安装CentOS8.2服务器系统

    前言   开发服务器应用,需要使用到CentOS8.2,安装到虚拟机上方便快捷.   提前准备 Vmware 16虚拟机软件  下载VM16版本及以上的vmware虚拟机版本,否则没有CentOs8选 ...

  5. 基于 vite2 + Vue3 写一个在线帮助文档工具

    提起帮助文档,想必大家都会想到 VuePress等,我也体验了一下,但是感觉和我的思路不太一样,我希望的是那种可以直接在线编辑文档,然后无需编译就可以直接发布的方式,另外可以在线写(修改)代码并且运行 ...

  6. laravel7 h-ui点改

    html: <td> @if($item->fang_status == 0) <span onclick="changeFangStatus(this,{{$ite ...

  7. 打靶笔记-02-vulhub-Hackademic.RTB1

    打靶笔记-02-vulhub-Hackademic.RTB1 一.靶机信息 Name: Hackademic: RTB1(中等难度) Date release: 6 Sep 2011 Author: ...

  8. CF1117G题解

    题意:区间建笛卡尔树,求每个节点的siz之和. 首先看到笛卡尔树,就应该想到,因为这是一个排列,可以找到通过左边和右边第一个比自己大的元素来"建立"笛卡尔树. 设 \(l(u)\) ...

  9. oneAPI DPC++学习资料和实验平台

    DPC++ 一种新的异构平台,弥补了OPENCL 编写复杂的难题.基于SYCL 抽象层.基于SYCL 有多种实现,其中DPC++是相对成熟的方案. 书籍 由Intel工程师撰写的免费电子图书 Data ...

  10. Java的jmap命令使用详解

    jmap命令简介 jmap(Java Virtual Machine Memory Map)是JDK提供的一个可以生成Java虚拟机的堆转储快照dump文件的命令行工具.除此以外,jmap命令还可以查 ...