rustploy-gui 0.1.53

Rustploy — desktop client (glacier-ui) for the Rustploy PaaS daemon
// Web Server (default)
component {
  form(name = settings, on_submit = settings_save, class = form) {
    scrollable(direction = vertical, class = u-fill-all) {
      column(class = form-panel) {
        text("{t('settings_web.public_api_url')}", class = u-label-cap)

        row(class = kv-list__row) {
          text("@server_settings_public_base", class = "kv-list__val kv-list__val--compact")

          button(
            class = "btn btn--ghost btn--xs",
            on_click = copy_ctx:server_settings_public_base,
            text = "{t('common.copy')}",
          )
        }

        text(
          "{t('settings_web.derived_from_api_domain_port_in')}",
          class = u-muted,
        )

        text("{t('settings_web.connection_token')}", class = u-label-cap)

        row(class = kv-list__row) {
          text("@server_access_key_short", class = "kv-list__val kv-list__val--compact")

          button(
            class = "btn btn--ghost btn--xs",
            on_click = copy_ctx:server_access_key,
            text = "{t('common.copy')}",
          )
        }

        text(
          "{t('settings_web.base64_of_host_port_token_server')}",
          class = u-muted,
        )

        text("{t('settings_web.connect_an_ai_agent_mcp')}", class = u-label-cap)

        text("{t('settings_web.claude_code')}", class = u-label-cap)

        row(class = kv-list__row) {
          text(
            "{t('settings_web.claude_mcp_add_rustploy_mcp')}",
            class = "kv-list__val kv-list__val--compact"
          )

          button(
            class = "btn btn--ghost btn--xs",
            on_click = copy_ctx:server_mcp_command,
            text = "{t('common.copy')}",
          )
        }

        text("{t('settings_web.codex_codex_config_toml')}", class = u-label-cap)

        row(class = kv-list__row) {
          text(
            "{t('settings_web.mcp_servers_rustploy_url_mcp')}",
            class = "kv-list__val kv-list__val--compact"
          )

          button(
            class = "btn btn--ghost btn--xs",
            on_click = copy_ctx:server_mcp_command_codex,
            text = "{t('common.copy')}",
          )
        }

        text("{t('settings_web.gemini_cli')}", class = u-label-cap)

        row(class = kv-list__row) {
          text(
            "{t('settings_web.gemini_mcp_add_rustploy_mcp')}",
            class = "kv-list__val kv-list__val--compact"
          )

          button(
            class = "btn btn--ghost btn--xs",
            on_click = copy_ctx:server_mcp_command_gemini,
            text = "{t('common.copy')}",
          )
        }

        text(
          "{t('settings_web.each_button_copies_this_server_s')}",
          class = u-muted,
        )

        text(
          "{t('settings_web.let_s_encrypt_email_automatic')}",
          class = u-label-cap,
        )

        input(
          placeholder = "{t('settings_web.you_example_com')}",
          class = field__input,
          form_control = server_settings_email,
        )

        text(
          "@error_server_settings_email",
          if = @error_server_settings_email,
          not_equals = "",
          class = u-error,
        )

        text(
          "{t('settings_web.tls_certificates_issued_automatically_requires_a')}",
          class = u-muted,
        )

        text(
          "{t('settings_web.registry_domain_public_exposure')}",
          class = u-label-cap,
        )

        input(
          placeholder = "{t('settings_web.registry_mysite_com')}",
          class = field__input,
          form_control = server_settings_registry_domain,
        )

        text(
          "{t('settings_web.exposes_the_built_in_docker_registry')}",
          class = u-muted,
        )

        row(class = env__add) {
          button(
            class = "btn btn--primary",
            on_click = settings_save,
            disabled = @busy_settings_save,
            text = "{t('common.save_2')}"
          )
          text("@settings_message", class = u-muted)
        }
      }
    }
  }
}