Public Access
1.9 KiB
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
Option 3: Run Backstage Locally (Recommended for Development)
# 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/