---
title: Backstage Update Tutorial
---

The first Backstage update was performed as described in the ticket https://jira.telekom-mms.com/browse/IPCEICIS-2299 from version 1.28 to version 1.36.1.

This document provides a detailed guide on the process to update Backstage locally on your machine from version 1.36.1 to 1.38.1.
Later updates can be performed accordingly. (The fixing of deprecated imports should not be necessary, again.)

## Table of Contents

1. [Prerequisites](#prerequisites)
2. [Setting Up Backstage](#setting-up-backstage)
3. [Updating Backstage](#updating-backstage)
4. [Fix deprecated import](#fix-deprecated-import)
5. [Running Backstage](#running-backstage)

## Prerequisites <a name="prerequisites"></a>

Before you start, make sure you have the following installed on your machine:

1. **Node.js**: Backstage requires Node.js. You can download it from the [Node.js website](https://nodejs.org/).
2. **Yarn**: Backstage uses Yarn as its package manager.
3. **Git**
4. **Docker**

## Setting Up Backstage <a name="setting-up-backstage"></a>

To download the latest version of our Backstage-EDP app, use git to clone it from the OSC repository at https://forgejo.edf-bootstrap.cx.fg1.ffm.osc.live/DevFW-CICD/backstage-edp.git.

Make sure yarn ist installed locally. If it hasn't been installed yet, run in the project path:
   ```bash
   yarn install
   ```

## Updating Backstage <a name="updating-backstage"></a>

In the project path run:
   ```bash
   yarn backstage-cli versions:bump
   ```

This will update all relevant components to the newest versions.

## Fix deprecated import <a name="fix-deprecated-import"></a>

In a text editor of your choice open the file <I>'/backstage-edp/packages/backend/src/plugins/proxy.ts'</I> and implement the two following changes.

### Update import

First (due to changes in the library) replace the deprecated import

   ```typescript
   import { createRouter } from '@backstage/plugin-proxy-backend';
   ```

with the following import:

   ```typescript
   import { createRouter } from '@roadiehq/backstage-plugin-argo-cd-backend';
   ```

### Update method call createRouter()

Secondly (due to a changed signature) replace the <B>old</B> call of method createRouter() 

   ```typescript
  return await createRouter({
    logger: env.logger,
    config: env.config,
    discovery: env.discovery
  });
   ```

with the following <B>new</B> method call:

   ```typescript
  return await createRouter({
    logger: env.logger,
    config: env.config
  });
   ```

## Running backstage <a name="running-backstage"></a>

After completing all updates and fixes, run backstage to verify everything was updated correctly.

In the project path run:
   ```bash
   docker build --no-cache -t backstage-cnoe .
   ```

Start the backend from a console:
   ```bash
   yarn run start-backend
   ```

Start the frontend from a console:
   ```bash
   yarn run start
   ```

The backstage frontend should now open in your browser.