First make sure you are using NodeJS with an Active LTS Release, currently v12. This is made easy with a version manager such as nvm which allows for version switching.
# Installing a new version nvm install 12 > Downloading and installing node v12.18.3... > Now using node v12.18.3 (npm v6.14.6) # Checking your version node --version > v12.18.3
Please refer to the installation instructions for yarn.
We use Docker for few of our core features. So, you will need Docker installed locally to use features like Software Templates and TechDocs. Please refer to the installation instructions for Docker.
Clone and Build
To get up and running with a local Backstage to evaluate it, let's clone it off of GitHub and run an initial build.
# Start from your local development folder git clone email@example.com:spotify/backstage.git cd backstage # Fetch our dependencies and run an initial build yarn install yarn tsc yarn build
Phew! Now you have a local repository that's ready to run and to add any open source contributions into.
We are now going to launch two things: an example Backstage frontend app, and an example Backstage backend that the frontend talks to. You are going to need two terminal windows, both starting from the Backstage project root.
In the first window, run
cd packages/backend yarn start
That starts up a backend instance on port 7000.
In the other window, we will then launch the frontend. This command is run from the project root, not inside the backend directory.
That starts up the frontend on port 3000, and should automatically open a browser window showing it.
When Backstage starts, you can choose to enter as a Guest user and start exploring.
But you can also set up any of the available authentication methods. The easiest option will be GitHub. To setup GitHub authentication in Backstage, see these instructions.
Creating a Plugin
The value of Backstage grows with every new plugin that gets added. Here is a collection of tutorials that will guide you through setting up and extending an instance of Backstage with your own plugins.