{% extends "base.html" %} {% block title %}{{ app.title }} - Catalog - Hop3 Dashboard{% endblock %} {% block content %}
{% if app.icon_url %} {{ app.title }} {% else %}
{{ app.initials }}
{% endif %}

{{ app.title }}

by {{ app.author }}

{% if app.category %} {{ app.category }} {% endif %} {{ app.resource_tier }}

Description

{{ app.description }}

{# The readme is the long form, sanitized at load time. The public site has always shown it; the dashboard was branching on a field the model does not define. #} {% if app.readme_html %} {{ app.readme_html | safe }} {% endif %}
{% if app.screenshots %}

Screenshots

{% for shot in app.screenshots %} {% set src = "/dashboard/catalog/screenshots/" ~ app.id ~ "/" ~ shot.split('/')[-1] %} {{ app.title }} screenshot {{ loop.index }} {% endfor %}
{% endif %}

Technical Details

{% if app.memory %}
Minimum Memory
{# `memory` carries its own unit ("512MB"); appending " MB" to a field that does not exist is what this row used to do. #}
{{ app.memory }}
{% endif %} {% if app.version %}
Version
{{ app.version }}
{% endif %} {% if app.providers %}
Required Services
{% for provider in app.providers %} {{ provider }} {% endfor %}
{% endif %} {% if app.website %} {% endif %}
{% if app.tags %}

Tags

{% for tag in app.tags %} {{ tag }} {% endfor %}
{% endif %}

Install Application

{% if errors %}

Please fix the following errors:

    {% for error in errors %}
  • {{ error }}
  • {% endfor %}
{% endif %}
` which names the app after the blueprint unless --app says otherwise. `app_name` is whatever was typed, so a re-render after a validation error keeps it rather than resetting to the default. #} value="{{ app_name or app.id }}" placeholder="{{ app.id }}" pattern="[a-z][a-z0-9-]*" required class="mt-1 block w-full rounded-md border-0 py-2 px-3 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-blue-600 sm:text-sm">

Lowercase letters, numbers, and hyphens only. Must start with a letter.

Leave blank to use the server default (<name>.<admin-domain>).

{% if app.providers %}

Required Services

This app requires: {{ app.providers | join(', ') }}. These will be automatically provisioned.

{% endif %}
{% if variants | length > 1 %}

Build paths

The same application, packaged different ways. Pick one if you have a reason to; otherwise the default is the one that is tested most.

{% endif %} {% if similar_apps %}

Similar Apps

{% for similar_app in similar_apps %} {% set app = similar_app %} {% include "dashboard/catalog/_app_card.html" %} {% endfor %}
{% endif %}
{% endblock %}