import { Pencil } from "lucide-react"; import type { Metadata } from "next"; import Link from "next/link"; import { notFound } from "next/navigation"; import { Code } from "@/components/formular"; import { Karte } from "@/components/karte"; import { Status } from "@/components/status"; import { prisma } from "@/lib/db"; import { darf } from "@/server/auth/rechte"; import { seiteSchuetzen } from "@/server/auth/zugang"; import { serverSicht } from "@/server/services/server"; import { ServerStatus } from "../server-status"; import { ServerAktionen } from "./server-aktionen"; import { Verbindungsbericht } from "./verbindungsbericht"; export async function generateMetadata({ params }: { params: Promise<{ name: string }> }): Promise { return { title: (await params).name }; } export default async function ServerDetail({ params }: { params: Promise<{ name: string }> }) { const { name } = await params; const benutzer = await seiteSchuetzen("lesen", `/server/${name}`); const datensatz = await prisma.server.findUnique({ where: { name } }); if (!datensatz) notFound(); const server = serverSicht(datensatz); const verwalten = darf(benutzer.rolle, "serverVerwalten"); return (

{server.name}

{server.titel}

{verwalten ? (
}>
Adresse
{server.url}
Token-ID
{server.tokenId}
TLS
{server.fingerabdruck ? ( Fingerprint gepinnt{server.tlsPruefen ? " und Kette geprüft" : ""} {server.fingerabdruck} ) : ( "Kette gegen Systemzertifikate geprüft" )}
Templates
{server.templateVmidVon}–{server.templateVmidBis}
Gäste ab
{server.gastVmidVon}
{!server.sshAktiv ? ( Nicht genutzt. Deployments laufen dann nur über die API. ) : server.sshOeffentlich ? (

Diesen Schlüssel auf jedem Node für {server.sshBenutzer}{" "} hinterlegen. Im Cluster genügt ein Node:{" "} /root/.ssh/authorized_keys zeigt dort auf die gemeinsame Datei in /etc/pve/priv/.

{`echo '${server.sshOeffentlich}' >> ~/.ssh/authorized_keys`}

Host-Keys erscheinen nach dem Verbindungstest beim jeweiligen Node und werden erst nach Bestätigung genutzt.

) : ( SSH ist eingeschaltet, aber es gibt noch keinen Schlüssel. )} {verwalten && server.sshAktiv ? (
) : null}
{verwalten ? ( ) : null}
); }