diff --git a/messages/en-US.json b/messages/en-US.json index 0b4a7534..d5f36bae 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -1457,5 +1457,41 @@ "autoLoginRedirecting": "Redirecting to login...", "autoLoginError": "Auto Login Error", "autoLoginErrorNoRedirectUrl": "No redirect URL received from the identity provider.", - "autoLoginErrorGeneratingUrl": "Failed to generate authentication URL." + "autoLoginErrorGeneratingUrl": "Failed to generate authentication URL.", + "managedSelfHosted": { + "title": "Managed Self-Hosted", + "description": "More reliable and low-maintenance self-hosted Pangolin server with extra bells and whistles", + "introTitle": "Managed Self-Hosted Pangolin", + "introDescription": "is a deployment option designed for people who want simplicity and extra reliability while still keeping their data private and self-hosted.", + "introDetail": "With this option, you still run your own Pangolin node — your tunnels, SSL termination, and traffic all stay on your server. The difference is that management and monitoring are handled through our cloud dashboard, which unlocks a number of benefits:", + "benefitSimplerOperations": { + "title": "Simpler operations", + "description": "No need to run your own mail server or set up complex alerting. You'll get health checks and downtime alerts out of the box." + }, + "benefitAutomaticUpdates": { + "title": "Automatic updates", + "description": "The cloud dashboard evolves quickly, so you get new features and bug fixes without having to manually pull new containers every time." + }, + "benefitLessMaintenance": { + "title": "Less maintenance", + "description": "No database migrations, backups, or extra infrastructure to manage. We handle that in the cloud." + }, + "benefitCloudFailover": { + "title": "Cloud failover", + "description": "If your node goes down, your tunnels can temporarily fail over to our cloud points of presence until you bring it back online." + }, + "benefitHighAvailability": { + "title": "High availability (PoPs)", + "description": "You can also attach multiple nodes to your account for redundancy and better performance." + }, + "benefitFutureEnhancements": { + "title": "Future enhancements", + "description": "We're planning to add more analytics, alerting, and management tools to make your deployment even more robust." + }, + "docsAlert": { + "text": "Learn more about the Managed Self-Hosted option in our", + "documentation": "documentation" + }, + "convertButton": "Convert This Node to Managed Self-Hosted" + } } diff --git a/src/app/admin/managed/page.tsx b/src/app/admin/managed/page.tsx index 3d96ce8f..63244d3b 100644 --- a/src/app/admin/managed/page.tsx +++ b/src/app/admin/managed/page.tsx @@ -1,3 +1,5 @@ +"use client"; + import { SettingsContainer, SettingsSection, @@ -18,30 +20,27 @@ import { ExternalLink } from "lucide-react"; import Link from "next/link"; +import { useTranslations } from "next-intl"; + +export default function ManagedPage() { + const t = useTranslations(); -export default async function ManagedPage() { return ( <>

- Managed Self-Hosted Pangolin is a - deployment option designed for people who want - simplicity and extra reliability while still keeping - their data private and self-hosted. + {t("managedSelfHosted.introTitle")}{" "} + {t("managedSelfHosted.introDescription")}

- With this option, you still run your own Pangolin - node — your tunnels, SSL termination, and traffic - all stay on your server. The difference is that - management and monitoring are handled through our - cloud dashboard, which unlocks a number of benefits: + {t("managedSelfHosted.introDetail")}

@@ -50,13 +49,14 @@ export default async function ManagedPage() {

- Simpler operations + {t( + "managedSelfHosted.benefitSimplerOperations.title" + )}

- No need to run your own mail server - or set up complex alerting. You'll - get health checks and downtime - alerts out of the box. + {t( + "managedSelfHosted.benefitSimplerOperations.description" + )}

@@ -65,13 +65,14 @@ export default async function ManagedPage() {

- Automatic updates + {t( + "managedSelfHosted.benefitAutomaticUpdates.title" + )}

- The cloud dashboard evolves quickly, - so you get new features and bug - fixes without having to manually - pull new containers every time. + {t( + "managedSelfHosted.benefitAutomaticUpdates.description" + )}

@@ -80,12 +81,14 @@ export default async function ManagedPage() {

- Less maintenance + {t( + "managedSelfHosted.benefitLessMaintenance.title" + )}

- No database migrations, backups, or - extra infrastructure to manage. We - handle that in the cloud. + {t( + "managedSelfHosted.benefitLessMaintenance.description" + )}

@@ -96,13 +99,14 @@ export default async function ManagedPage() {

- Cloud failover + {t( + "managedSelfHosted.benefitCloudFailover.title" + )}

- If your node goes down, your tunnels - can temporarily fail over to our - cloud points of presence until you - bring it back online. + {t( + "managedSelfHosted.benefitCloudFailover.description" + )}

@@ -110,12 +114,14 @@ export default async function ManagedPage() {

- High availability (PoPs) + {t( + "managedSelfHosted.benefitHighAvailability.title" + )}

- You can also attach multiple nodes - to your account for redundancy and - better performance. + {t( + "managedSelfHosted.benefitHighAvailability.description" + )}

@@ -124,13 +130,14 @@ export default async function ManagedPage() {

- Future enhancements + {t( + "managedSelfHosted.benefitFutureEnhancements.title" + )}

- We're planning to add more - analytics, alerting, and management - tools to make your deployment even - more robust. + {t( + "managedSelfHosted.benefitFutureEnhancements.description" + )}

@@ -141,15 +148,14 @@ export default async function ManagedPage() { variant="neutral" className="flex items-center gap-1" > - Read the docs to learn more about the Managed - Self-Hosted option in our{" "} + {t("managedSelfHosted.docsAlert.text")}{" "} - documentation + {t("managedSelfHosted.docsAlert.documentation")} . @@ -157,13 +163,13 @@ export default async function ManagedPage() {