Files
charybdis/deploy/backstage/README.md
T
2026-05-12 17:06:43 +02:00

1.9 KiB

Adding Backstage to Charybdis Demo

Backstage requires a custom build and cannot be run from a pre-built Docker image.

Option 1: Use the YAML Adapter Directly

You can read entities from Charybdis without Backstage:

# List all entities
curl http://localhost:8081/yaml/locations

# Get specific entity
curl http://localhost:8081/yaml/entities/YOUR_ENTITY_ID

Option 2: Build and Run Backstage

1. Create a Backstage App

# Install Node.js 18+ first
npx @backstage/create-app@latest

# Follow prompts, name it "backstage-app"
cd backstage-app

2. Configure Charybdis Integration

Edit app-config.yaml and add:

catalog:
  locations:
    # Point to Charybdis YAML adapter
    - type: url
      target: http://charybdis:8080/yaml/locations
      rules:
        - allow: [Component, System, API, Resource, User, Group, Domain]

3. Build Docker Image

Create backstage-app/Dockerfile:

FROM node:18-bookworm-slim

WORKDIR /app

# Copy package files
COPY package.json yarn.lock ./
COPY packages packages

# Install dependencies
RUN yarn install --frozen-lockfile --production

# Build
RUN yarn tsc
RUN yarn build:backend

# Run
EXPOSE 7007
CMD ["node", "packages/backend", "--config", "app-config.yaml"]

4. Update docker-compose.demo.yml

Uncomment the Backstage section in docker-compose.demo.yml.

5. Start

docker-compose -f docker-compose.demo.yml up -d backstage

Access Backstage at http://localhost:3000

# In backstage-app directory
yarn dev

Update app-config.local.yaml:

catalog:
  locations:
    - type: url
      target: http://localhost:8081/yaml/locations
      rules:
        - allow: [Component, System, API, Resource, User, Group, Domain]

Access at http://localhost:3000


For more info: https://backstage.io/docs/getting-started/