# 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: ```bash # 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 ```bash # 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: ```yaml 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`: ```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 ```bash docker-compose -f docker-compose.demo.yml up -d backstage ``` Access Backstage at http://localhost:3000 ## Option 3: Run Backstage Locally (Recommended for Development) ```bash # In backstage-app directory yarn dev ``` Update `app-config.local.yaml`: ```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/