Launchpad
Overview
Launchpad is an application gateway for the Apolo MLOps platform that enables Apolo users to securely expose platform applications to end-users through customizable authentication powered by Keycloak integration.
With Launchpad, you can share access to applications deployed on Apolo—including pre-built apps like OpenWebUI (a user-friendly interface for interacting with LLMs)—without requiring end-users to have full Apolo accounts. Additionally, Launchpad allows you to deploy custom applications using Apolo's Service Deployment feature and expose them to your users with personalized branding, including custom names, descriptions, and logos. Refer to the main Launchpad page for more details.
Installing Launchpad
Launchpad can be installed from the Apolo Console interface or using the Apolo CLI.
Be aware that when choosing the OpenWebUI Quick Start App option, Apolo will also install vLLM, Text Embeddings and Postgresql apps, which will consume credits as well.
Installation via Apolo CLI
Currently, due to a known bug in the UI, if you choose the OpenWebUI Quick Start App, it's recommended to export the configuration and install it using the Apolo CLI:
In the Launchpad App installation page, select the OpenWebUI Quick Start App and configure your options.
Scroll to the bottom and click Export App Configuration (download icon).
Open your terminal and install the app using the downloaded configuration file:
apolo app install --file launchpad-custom-app-installation-config.yamlManaging Launchpad and Keycloak Users
To learn more about managing Launchpad users with Keycloak, please refer to the main Launchpad app documentation.
Importing Apps
Importing Apps using the Admin Panel
To learn more about importing apps using the Admin Panel, please refer to the main Launchpad app documentation.
Importing Apps using Admin API
Obtain an API token
Use the Launchpad API to get an access token for the admin user.
Get
LAUNCHPAD_URLandLAUNCHPAD_PASSWORDby going to your Launchpad instance's details page in Apolo and copying the needed values from the Outputs

Run the following script in your terminal do obtain the access token. Make sure to replace the needed variable values
LAUNCHPAD_URL="https://[YOUR_LAUNCHPAD_URL]"
LAUNCHPAD_USERNAME="admin"
LAUNCHPAD_PASSWORD="[YOUR_PASSWORD]"
SCOPE="openid profile email offline_access"
TOKEN_RESPONSE=$(curl -s -X POST "${LAUNCHPAD_URL}/auth/token" \
-H "Content-Type: application/json" \
-d '{"username":"'${LAUNCHPAD_USERNAME}'","password":"'${LAUNCHPAD_PASSWORD}'","scope":"'${SCOPE}'"}')
ACCESS_TOKEN=$(echo "$TOKEN_RESPONSE" | jq -r '.access_token')Importing a Custom App Template
You can import a custom app template into Launchpad. This allows you to define configurations and metadata for an application that can be installed later via Launchpad.
Obtain a template
jsonfile by following this guide. You can edit all the values, except fortemplate_nameandtemplate_version.You can optionally add the extra fields
is_sharedandis_internal, like the example bellow. Note:is_internal: falseensures the app is visible to end-users.{ "template_name": "vscodes", "template_version": "v25.10.3", "name": "vscode-dev", "verbose_name": "VS Code Development Environment", "description_short": "Cloud-based VS Code IDE", "is_internal": false, "is_shared": false, "inputs": { "preset": { "name": "cpu-medium" }, "vscode_specific": { "override_code_storage_mount": null }, "networking": { "ingress_http": { "auth": { "type": "custom_auth", "middleware": { "type": "app-instance-ref", "instance_id": "<launchpad-app-instance-id>", "path": "$.auth_middleware" } } } } } }Import the Template (via API):
Use the Launchpad API
apps/templates/importendpoint with your template data:
curl -X POST "${LAUNCHPAD_URL}/api/v1/apps/templates/import" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '[YOUR_TEMPLATE_JSON]'Deploy from Launchpad:
The new app template will now be visible in the Launchpad interface, ready for users to install and run their own instance.

Importing a Running Application
In this example, we will import an already running Service Deployment app into Launchpad and assign Launchpad authentication.
Install a Service Deployment app following this guide.
Access App ID: Once installed, go to the Service Deployment app details and copy its ID.
Import App into Launchpad (via API):
Import the Application: Use the Launchpad API
apps/importendpoint, replacing placeholders with your app's details and the previously obtainedACCESS_TOKEN.
curl -X POST "${LAUNCHPAD_URL}/api/v1/apps/import" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "app_id": "86441713-dbd1-4d94-ac4c-1b61edc3e2e7", "name": "custom-app", "verbose_name": "Custom App", "description_short": "An externally installed app", "is_internal": false }'Note:
is_internal: falseensures the app is visible to end-users.
Verify and Access in Launchpad:
Go back to the Launchpad App URL in your browser.
The new Custom App card should now be displayed, available for external users to access through Keycloak login.

Summary
The Launchpad app transforms the Apolo MLOps platform into a user-friendly deployment environment, simplifying application access and user authentication for internal and external users via Keycloak integration. By enabling the import of custom app templates and existing app instances, Launchpad offers a versatile solution for showcasing and managing applications within your ecosystem.
References
Last updated
Was this helpful?