Skip to main content

vkdr devportal

Use these commands to install and manage VeeCode DevPortal, a ready-to-use Backstage distribution.

Note: DevPortal currently requires Kong Gateway as the ingress controller.

vkdr devportal install

Install VeeCode DevPortal in your cluster.

vkdr devportal install [-s] [--load-env] [--samples] \
[-d=<domain>] [--profile=<profile>] [--location=<location>] \
[--merge=<mergeValues>] [--npm=<npmRegistry>] \
[--github-org=<github_org>] [--github-token=<github_token>] \
[--github-app-id=<github_app_id>] [--github-client-id=<github_client_id>] \
[--github-client-secret=<github_client_secret>] \
[--github-auth-client-id=<github_auth_client_id>] \
[--github-auth-client-secret=<github_auth_client_secret>] \
[--github-private-key-base64=<github_private_key_base64>]

Flags

FlagShorthandDescriptionDefault
--domain-dDomain name for the generated ingresslocalhost
--secure-sEnable HTTPSfalse
--profileDevPortal profile (see profiles below)(none)
--load-envLoad profile values from environment variablesfalse
--samplesInstall apps from sample catalogfalse
--locationBackstage catalog location (URL)(none)
--mergeValues file to merge with defaults(none)
--npmNPM registry to use(none)

GitHub Integration Flags

These flags are used with github or github-pat profiles:

FlagDescriptionProfile
--github-orgGitHub organization namegithub, github-pat
--github-tokenGitHub personal access tokengithub, github-pat
--github-app-idGitHub App IDgithub
--github-client-idGitHub App client ID (integrations)github
--github-client-secretGitHub App client secret (integrations)github
--github-auth-client-idGitHub OAuth App client ID (auth)github
--github-auth-client-secretGitHub OAuth App client secret (auth)github
--github-private-key-base64GitHub App private key (base64)github

Profiles

ProfileDescription
github-patGitHub with Personal Access Token (simplest)
githubGitHub with App authentication (recommended for production)
gitlabGitLab integration
azureAzure DevOps integration
ldapLDAP authentication

Examples

Quick Start with Samples

vkdr infra up
vkdr kong install --default-ic
vkdr devportal install --samples
# Access at http://devportal.localhost:8000

GitHub PAT Profile

Using a Personal Access Token (simplest setup):

vkdr devportal install \
--profile github-pat \
--github-org myorg \
--github-token ghp_xxxxxxxxxxxx

GitHub App Profile

Using GitHub App authentication (recommended):

vkdr devportal install \
--profile github \
--github-org myorg \
--github-app-id 123456 \
--github-client-id Iv1.xxxxxxxxxx \
--github-client-secret xxxxxxxxxxxx \
--github-auth-client-id xxxxxxxxxxxx \
--github-auth-client-secret xxxxxxxxxxxx \
--github-private-key-base64 LS0tLS1CRUdJTi...

Load from Environment Variables

Instead of passing flags, set environment variables and use --load-env:

export GITHUB_ORG=myorg
export GITHUB_TOKEN=ghp_xxxxxxxxxxxx

vkdr devportal install --profile github-pat --load-env

Custom Catalog Location

vkdr devportal install \
--profile github-pat \
--github-org myorg \
--github-token ghp_xxxx \
--location https://github.com/myorg/backstage-catalog/blob/main/catalog-info.yaml

With HTTPS

vkdr devportal install -d example.com -s --profile github-pat --github-org myorg --github-token ghp_xxxx

Merge Custom Values

vkdr devportal install \
--profile github-pat \
--github-org myorg \
--github-token ghp_xxxx \
--merge ./my-custom-values.yaml

vkdr devportal remove

Remove VeeCode DevPortal from your cluster.

vkdr devportal remove

Example

vkdr devportal remove

vkdr devportal explain

Explain VeeCode DevPortal formulas and configuration options.

vkdr devportal explain

Complete Examples

Minimal Local Setup

# Start cluster
vkdr infra up

# Install Kong (required)
vkdr kong install --default-ic

# Install DevPortal with sample catalog
vkdr devportal install --samples

# Access DevPortal
open http://devportal.localhost:8000

# Clean up
vkdr devportal remove
vkdr kong remove
vkdr infra stop

Production-like Setup with GitHub

# Start cluster
vkdr infra up

# Install dependencies
vkdr kong install --default-ic -s
vkdr postgres install -w
vkdr keycloak install

# Install DevPortal with GitHub integration
vkdr devportal install \
--profile github \
--github-org mycompany \
--github-app-id 123456 \
--github-client-id Iv1.xxxx \
--github-client-secret xxxx \
--github-auth-client-id xxxx \
--github-auth-client-secret xxxx \
--github-private-key-base64 xxxx \
--location https://github.com/mycompany/backstage-catalog/blob/main/catalog-info.yaml \
-s

# Access DevPortal
open https://devportal.localhost:8001

Troubleshooting

DevPortal not starting

Ensure Kong is installed and running:

vkdr kong install --default-ic
# Wait for Kong to be ready before installing DevPortal

GitHub integration not working

  1. Verify your token/credentials are correct
  2. Check that your GitHub App has the required permissions
  3. Use --load-env to avoid shell escaping issues with secrets

Custom catalog not loading

Ensure the catalog URL is accessible and the YAML is valid:

curl -I https://github.com/myorg/catalog/blob/main/catalog-info.yaml

Formula Examples

Pre-requisites

  • Start vkdr bound to ports 80/443
  • Have a valid GitHub PAT token
  • Add entries to /etc/hosts: devportal.localhost, petclinic.localhost → 127.0.0.1
vkdr infra start --http 80 --https 443
export GITHUB_TOKEN=your_github_pat_token

Basic Installation

vkdr devportal install --github-token $GITHUB_TOKEN

This installs DevPortal with dependencies (Kong Gateway, Postgres). Available at http://devportal.localhost in guest mode.

With Sample Applications

vkdr devportal install --github-token $GITHUB_TOKEN --samples

Sample apps included:

Custom Catalog

vkdr devportal install --github-token $GITHUB_TOKEN --location $YOUR_CATALOG_URL

Plugin Development with Local NPM

Use with a local NPM registry (like Verdaccio) for dynamic plugin development:

verdaccio -l 0.0.0.0:4873
vkdr devportal install --github-token $GITHUB_TOKEN --npm http://host.k3d.internal:4873