Required things for running locally: node, yarn(dependency manager similar to npm), docker Yarn install - grabs dependencies Yarn tsc - this runs the typescript compiler Yarn build
Need to start the backend (in packages/backend) w/ yarn start
Need to start the frontend (in the root of the repo) w/ yarn start
Can login to Backstage with Github using the Github OAuth in your Github account. Instructions: https://github.com/backstage/backstage/tree/master/plugins/auth-backend#github Numerous other authentication providers which might be useful if projects are stored in different places
There are two approaches to making backstage remember the changes you have made. The root directory of backstage has a file named app-config.yml which contains a locations section. The locations section consists of type and a target; you set the type to “url” and the target to point to the yml file you wish backstage to remember.
The backend of backstage will periodically check the locations section of the app-config file and update.
In addition to this method you can have your app-config.yml file point to another yml file, and then create a locations section in there which contains the target you wish to remember.
Creating something in service catalog Each plugin has its own catalog-info.yaml file which contains the information needed to add something to the service catalog. Example: https://github.com/ramcguire/gratibot-2/blob/master/catalog-info.yaml Docs: https://backstage.io/docs/features/software-catalog/descriptor-format
You can use the Backstage GUI to set up this catalog-info.yaml automatically or create it yourself and place it in the root directory of the plugin.
Idea: Having a repository that sets up users, teams, and organizations in their own .yaml files. One .yaml file can point to other .yaml files using the “Location” component type Examples of more complete team/org/component structure https://github.com/backstage/backstage/tree/master/packages/catalog-model/examples
Each thing in the Service Catalog should have its own “catalog-info.yaml” file to define what it is, who owns it, and what it is related to (e.g. gratibot is related to the Slack API? Or gratibot has its own API that could be represented separately from the gratibot service? Or gratibot service is related to the backend database?)
The catalog-info.yaml file generated by backstage had a “-” at the beginning of the file which threw off the formatting. Had to remove the “-” and remove a tab so the text was in line with the left side of the document. Firefox had issues with authentication and GitHub when trying to read and display data from repositories (maybe a CORS issue?) Issues with using templates and having Backstage setup structured repositories
Sample TechDocs
With the existing Gratibot component set up, you can create TechDocs for it using the MkDocs
Creating and publishing your docs · Backstage Service Catalog and Developer Platform