diff --git a/messages/en-US.json b/messages/en-US.json index f7f4c05f6..38df95476 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -235,7 +235,7 @@ "privateResourcesBannerTitle": "Zero-Trust Private Access", "privateResourcesBannerDescription": "Private resources use zero-trust security, ensuring users and machines can only access resources you explicitly grant. Connect user devices or machine clients to access these resources over a secure virtual private network.", "licenseBillingBannerTitle": "Manage License Billing", - "licenseBillingBannerDescription": "To manage billing for your license keys, including payment methods and invoices, visit the billing page.", + "licenseBillingBannerDescription": "To manage billing for your license keys, including payment methods and invoices, visit the billing page. You can generate additional licenses below to increase server capacity or deploy more instances.", "licenseBillingBannerButton": "Go to Billing", "resourcesSearch": "Search resources...", "resourceAdd": "Add Resource", @@ -558,6 +558,10 @@ "licenseBannerDescription": "Unlock enterprise features for your self-hosted Pangolin instance. Purchase a license key to activate premium capabilities, then add it below.", "licenseBannerGetLicense": "Get a License", "licenseBannerViewDocs": "View Documentation", + "licenseUpgradeBannerTitle": "Need More Capacity?", + "licenseUpgradeBannerDescription": "If you need to increase your site or user capacity, you can buy more licenses from the app.pangolin.net portal and add them below to upgrade your instance.", + "licenseUpgradeBannerButton": "Buy More Licenses", + "licenseMultipleKeysDescription": "You have multiple licenses activated on this server. The highest tier is used.", "communityEdition": "Community Edition", "licenseAboutDescription": "This is for business and enterprise users who are using Pangolin in a commercial environment. If you are using Pangolin for personal use, you can ignore this section.", "licenseKeyActivated": "License key activated", diff --git a/src/app/admin/license/page.tsx b/src/app/admin/license/page.tsx index 8ed2d697d..cdc564297 100644 --- a/src/app/admin/license/page.tsx +++ b/src/app/admin/license/page.tsx @@ -49,6 +49,7 @@ import { ExternalLink, Heart, InfoIcon, + ShoppingCart, TicketCheck } from "lucide-react"; import Link from "next/link"; @@ -64,6 +65,8 @@ import { useTranslations } from "next-intl"; const ENTERPRISE_DOCS_URL = "https://docs.pangolin.net/self-host/enterprise-edition"; const ENTERPRISE_PRICING_URL = "https://pangolin.net/pricing#Self-Hosted"; +const LICENSE_PORTAL_URL = + "https://app.pangolin.net/auth/login?internal_redirect=/settings/license?generate"; function getTierLabel( tier: LicenseKeyTier | undefined, @@ -392,6 +395,33 @@ export default function LicensePage() { )} + {licenseStatus?.isLicenseValid && rows.length > 0 && ( + + } + description={t("licenseUpgradeBannerDescription")} + > + + + + + )} + {/* */} {/* */} {/* */} @@ -538,6 +568,11 @@ export default function LicensePage() {
{getTierLabel(licenseStatus?.tier, t)}
+ {rows.length > 1 && ( +
+ {t("licenseMultipleKeysDescription")} +
+ )} {licenseStatus?.hostId && (