mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-08-04 23:06:23 +00:00
docs: promote /web from develop for backup-restore, Log2RAM and Network Flow guides
Brings 69 files from develop under /web/: - Full Backup & Restore section (11 pages EN + ES: overview, how-it-works, destinations, creating backups, scheduled jobs, restoring, cross-kernel hydration) - Log2RAM dedicated block in post-install/optional with commands + upstream link - Network Flow diagram documented on monitor/dashboard/network - Rewritten category descriptions in post-install/customizable - Fixed automated.json thresholds + link to Log2RAM section - Updated screenshots (network-flow-overview, storage-top-row, vms modals) No code, config or AppImage binaries touched — /web/ scope only. Merging deploys the documentation site to the current beta release notes.
This commit is contained in:
@@ -79,6 +79,9 @@ export default async function AutomatedPage({
|
||||
const uninstallLink = (chunks: React.ReactNode) => (
|
||||
<Link href="/docs/post-install/uninstall" className="text-blue-600 hover:underline">{chunks}</Link>
|
||||
)
|
||||
const log2ramLink = (chunks: React.ReactNode) => (
|
||||
<Link href="/docs/post-install/optional#log2ram" className="text-blue-600 hover:underline">{chunks}</Link>
|
||||
)
|
||||
|
||||
return (
|
||||
<div>
|
||||
@@ -116,7 +119,9 @@ export default async function AutomatedPage({
|
||||
<tr key={i}>
|
||||
<td className="px-4 py-2 text-gray-500 font-mono">{i + 1}</td>
|
||||
<td className="px-4 py-2 font-semibold">{o.tool}</td>
|
||||
<td className="px-4 py-2 text-gray-700 leading-relaxed">{o.what}</td>
|
||||
<td className="px-4 py-2 text-gray-700 leading-relaxed">
|
||||
{t.rich(`optimizations.${i}.what`, { link: log2ramLink })}
|
||||
</td>
|
||||
<td className="px-4 py-2">
|
||||
<Link
|
||||
href={`/docs/post-install/${o.categorySlug}`}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { Metadata } from "next"
|
||||
import { getTranslations, getMessages, setRequestLocale } from "next-intl/server"
|
||||
import { Plus } from "lucide-react"
|
||||
import { Plus, ExternalLink } from "lucide-react"
|
||||
import CopyableCode from "@/components/CopyableCode"
|
||||
|
||||
export async function generateMetadata({
|
||||
@@ -63,6 +63,7 @@ export default async function OptionalSettingsPage({
|
||||
testing: { doesItems: string[] }
|
||||
fastfetch: { doesItems: string[]; customItems: string[]; logos: Logo[] }
|
||||
figurine: { doesItems: string[] }
|
||||
log2ram: { doesItems: string[] }
|
||||
} } }
|
||||
}
|
||||
const cephItems = messages.docs.postInstall.optional.ceph.doesItems
|
||||
@@ -73,6 +74,7 @@ export default async function OptionalSettingsPage({
|
||||
const fastfetchCustomItems = messages.docs.postInstall.optional.fastfetch.customItems
|
||||
const fastfetchLogos = messages.docs.postInstall.optional.fastfetch.logos
|
||||
const figurineItems = messages.docs.postInstall.optional.figurine.doesItems
|
||||
const log2ramItems = messages.docs.postInstall.optional.log2ram.doesItems
|
||||
|
||||
const code = (chunks: React.ReactNode) => <code>{chunks}</code>
|
||||
const strong = (chunks: React.ReactNode) => <strong>{chunks}</strong>
|
||||
@@ -328,6 +330,46 @@ chmod +x "/etc/profile.d/figurine.sh"
|
||||
|
||||
<p className="mt-4">{t("figurine.outro")}</p>
|
||||
|
||||
<h3 className="text-xl font-semibold mt-16 mb-4 flex items-center">
|
||||
<StepNumber number={7} />
|
||||
{t("log2ram.title")}
|
||||
</h3>
|
||||
|
||||
<p className="mb-4">
|
||||
{t.rich("log2ram.intro", { code, em })}
|
||||
</p>
|
||||
|
||||
<p className="mb-4 flex items-center gap-1 text-sm">
|
||||
<strong className="mr-1">{t("log2ram.upstreamLabel")}</strong>
|
||||
<a
|
||||
href={t("log2ram.upstreamUrl")}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-blue-600 hover:underline inline-flex items-center gap-1"
|
||||
>
|
||||
{t("log2ram.upstreamLinkLabel")}
|
||||
<ExternalLink className="h-3.5 w-3.5" aria-hidden="true" />
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p className="mb-4">
|
||||
<strong>{t("log2ram.doesLabel")}</strong>
|
||||
</p>
|
||||
<ul className="list-disc pl-5 mb-4">
|
||||
{log2ramItems.map((_, idx) => (
|
||||
<li key={idx}>{t.rich(`log2ram.doesItems.${idx}`, { code, em })}</li>
|
||||
))}
|
||||
</ul>
|
||||
|
||||
<p className="mb-2">
|
||||
<strong>{t("log2ram.howUseLabel")}</strong> {t("log2ram.howUseBody")}
|
||||
</p>
|
||||
|
||||
<p className="text-lg mt-6 mb-2">
|
||||
<strong>{t("log2ram.verifyLabel")}</strong>
|
||||
</p>
|
||||
<CopyableCode code={t.raw("log2ram.verifyCode") as string} />
|
||||
|
||||
<section className="mt-12 p-4 bg-blue-100 rounded-md">
|
||||
<h2 className="text-xl font-semibold mb-2">{t("autoApplication.title")}</h2>
|
||||
<p>{t("autoApplication.body")}</p>
|
||||
|
||||
@@ -64,7 +64,15 @@ export default async function PostInstallStoragePage({
|
||||
/>
|
||||
|
||||
<Callout variant="info" title={t("intro.title")}>
|
||||
{t.rich("intro.body", { strong })}
|
||||
{t.rich("intro.body", {
|
||||
strong,
|
||||
code,
|
||||
link: (chunks) => (
|
||||
<Link href="/docs/post-install/optional#log2ram" className="text-blue-700 hover:underline">
|
||||
{chunks}
|
||||
</Link>
|
||||
),
|
||||
})}
|
||||
</Callout>
|
||||
|
||||
<Callout variant="warning" title={t("notTrackedTitle")}>
|
||||
|
||||
Reference in New Issue
Block a user