Créer le nœud dans le panel, installer le daemon et lui donner des ports.
Un nœud est une machine qui fait tourner des serveurs de jeu : Linux (x86_64 ou arm64) et
systemd. Docker est installé par le script s’il manque. Le nœud peut être la machine de l’API
(Tout sur une seule machine).
Dans le panel : Infrastructure › Nœuds › Ajouter un nœud. Donnez-lui un nom technique
(a-z, 0-9, -), inscrit dans son certificat et donc non modifiable, et un libellé si vous
voulez.Kuro affiche, une seule fois :
un jeton d’enrôlement, à usage unique et valable quelques minutes ;
l’empreinte de l’autorité de certification (sha256:…) ;
la commande à lancer sur le nœud, empreinte et adresse de l’API comprises.
Vous ne créez ni le jeton ni l’empreinte : Kuro les fournit. L’empreinte permet au nœud de
vérifier qu’il parle bien à votre API avant de lui envoyer le jeton
(pourquoi).
Jeton expiré ou perdu : sur la fiche du nœud, Enrôlement › Émettre un jeton (les
précédents ne valent plus rien). Même chose pour réenrôler un nœud révoqué.
Sur le nœud, collez la commande affichée par le panel.
Le jeton passe par une variable d’environnement ou un fichier, jamais en argument : il
finirait dans l’historique du shell. La ligne read l’attend : collez-le, puis Entrée.
Le daemon génère sa clé privée sur la machine (elle ne la quitte jamais), obtient son
certificat, puis ouvre sa connexion vers l’API. Le nœud passe en ligne dans le panel.Avec --full (serveur vierge, Debian 12-13 ou Ubuntu 22.04-24.04), le script prépare d’abord
la machine : mises à jour, fail2ban, SSH par clé si une clé est déjà autorisée, Docker, et un
pare-feu ufw qui n’ouvre que SSH et la plage --ports (TCP et UDP). Le nœud n’a besoin
d’aucun autre port : c’est lui qui se connecte à l’API. --plan montre tout sans rien changer.
Option
Rôle
--api
Listener des daemons de l’API (https://hôte:8443). Requis au premier enrôlement.
--ca-fingerprint
Empreinte affichée à la création du nœud. Requise au premier enrôlement.
--token-file
Fichier contenant le jeton, à la place de KURO_ENROLL_TOKEN.
--ports
Plage des serveurs de jeu, ouverte dans le pare-feu par --full (ex. 25565-25600).
Dans la fiche du nœud, Ports : ajoutez la même plage (par exemple 25565-25600). Chaque
serveur reçoit un port de cette plage.Ces ports doivent être joignables par les joueurs. Sans --full, ouvrez-les dans le pare-feu du
nœud ; si le nœud est chez vous, redirigez-les aussi depuis la box (voir
Fonctionnement).
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Kuroctl","colors":{"primary":"#4e61ed","light":"#4e61ed","dark":"#667efe"},"logo":{"light":"https://mintcdn.com/nihilo/dkpD-84WRtB8xLBL/logo/light.png?fit=max\u0026auto=format\u0026n=dkpD-84WRtB8xLBL\u0026q=85\u0026s=e0d3c070f234875fb30efe4d7b531513","dark":"https://mintcdn.com/nihilo/dkpD-84WRtB8xLBL/logo/dark.png?fit=max\u0026auto=format\u0026n=dkpD-84WRtB8xLBL\u0026q=85\u0026s=94c462c15a0f5a40c4cedba4a618dc61"},"favicon":"https://mintcdn.com/nihilo/TyX4AxI5RlrYgWYX/favicon.svg?fit=max\u0026auto=format\u0026n=TyX4AxI5RlrYgWYX\u0026q=85\u0026s=2871539fd048dea718876b485ff58abd","navbar":{"links":[{"href":"https://github.com/kuroctl/kuro","label":"GitHub"}],"primary":{"type":"button","label":"Kuroctl","href":"https://get.kuroctl.com"}},"footer":{"socials":{"github":"https://github.com/kuroctl/kuro"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"languages":[{"language":"fr","href":"fr"},{"language":"en","default":true,"href":"en"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"nihilo","hasAudioNarration":false,"actualSubdomain":"nihilo","customDomains":["docs.kuroctl.com"],"gitSource":{"type":"github","owner":"kuroctl","repo":"kuro","deployBranch":"main","contentDirectory":"docs","isPrivate":false,"mountPath":"","label":"","_id":"6ae3a932728445593464713c"},"chroma":{"latestBuiltDeploymentHistoryId":"6ae46c0f812f7e980ce4f1ee","collectionId":"9b98c656-b719-4b7f-9b3f-bd5ab7dbcf6b","liveDeploymentHistoryId":"6ae46c0f812f7e980ce4f1ee","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae46c0f812f7e980ce4f1ee","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"en","tag":"Install","count":4},{"language":"fr","tag":"Installer","count":4},{"language":"en","tag":"Configure","count":3},{"language":"en","tag":"Get started","count":3},{"language":"fr","tag":"Configurer","count":3},{"language":"fr","tag":"Démarrer","count":3},{"language":"en","tag":"Help","count":1},{"language":"fr","tag":"Aide","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"fr/add-a-node","slug":"/fr/add-a-node","pageMetadata":{"title":"Ajouter un nœud","description":"Créer le nœud dans le panel, installer le daemon et lui donner des ports.","href":"/fr/add-a-node"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Créer le nœud dans le panel, installer le daemon et lui donner des ports.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Un nœud est une machine qui fait tourner des serveurs de jeu : Linux (x86_64 ou arm64) et\nsystemd. Docker est installé par le script s’il manque. Le nœud peut être la machine de l’API\n(`,_jsx(_components.a,{href:`/fr/install-api#tout-sur-une-seule-machine`,children:`Tout sur une seule machine`}),`).`]}),`\n`,_jsx(Heading,{level:`2`,id:`1-créer-le-nœud-dans-kuro`,children:`1. Créer le nœud dans Kuro`}),`\n`,_jsxs(_components.p,{children:[`Dans le panel : `,_jsx(_components.strong,{children:`Infrastructure › Nœuds › Ajouter un nœud`}),`. Donnez-lui un nom technique\n(`,_jsx(_components.code,{children:`a-z`}),`, `,_jsx(_components.code,{children:`0-9`}),`, `,_jsx(_components.code,{children:`-`}),`), inscrit dans son certificat et donc non modifiable, et un libellé si vous\nvoulez.`]}),`\n`,_jsxs(_components.p,{children:[`Kuro affiche, `,_jsx(_components.strong,{children:`une seule fois`}),` :`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`un `,_jsx(_components.strong,{children:`jeton d’enrôlement`}),`, à usage unique et valable quelques minutes ;`]}),`\n`,_jsxs(_components.li,{children:[`l’`,_jsx(_components.strong,{children:`empreinte de l’autorité de certification`}),` (`,_jsx(_components.code,{children:`sha256:…`}),`) ;`]}),`\n`,_jsxs(_components.li,{children:[`la `,_jsx(_components.strong,{children:`commande`}),` à lancer sur le nœud, empreinte et adresse de l’API comprises.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Vous ne créez ni le jeton ni l’empreinte : Kuro les fournit. L’empreinte permet au nœud de\nvérifier qu’il parle bien à `,_jsx(_components.strong,{children:`votre`}),` API avant de lui envoyer le jeton\n(`,_jsx(_components.a,{href:`/fr/verification`,children:`pourquoi`}),`).`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Jeton expiré ou perdu : sur la fiche du nœud, `,_jsx(_components.strong,{children:`Enrôlement › Émettre un jeton`}),` (les\nprécédents ne valent plus rien). Même chose pour réenrôler un nœud révoqué.`]})}),`\n`,_jsx(_components.p,{children:`En ligne de commande, sur la machine de l’API :`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`sudo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` kuro-api-admin`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` node`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --name`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mon-noeud`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # options : --display-name, --region, --location`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`sudo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` kuro-api-admin`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` node`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` token`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --name`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mon-noeud`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # nouveau jeton`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`2-installer-le-daemon`,children:`2. Installer le daemon`}),`\n`,_jsx(_components.p,{children:`Sur le nœud, collez la commande affichée par le panel.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Le jeton passe par une variable d’environnement ou un fichier, `,_jsx(_components.strong,{children:`jamais en argument`}),` : il\nfinirait dans l’historique du shell. La ligne `,_jsx(_components.code,{children:`read`}),` l’attend : collez-le, puis Entrée.`]})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -fsSLo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install.sh`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://get.kuroctl.com/node`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`less`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install.sh`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`read`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -rs`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` KURO_ENROLL_TOKEN`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026 `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` KURO_ENROLL_TOKEN`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # collez le jeton, puis Entrée`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`sudo`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -E`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` bash`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install.sh`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --api`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://panel.example.com:8443`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --ca-fingerprint`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sha256:…`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --ports`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 25565-25600`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --full`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Le daemon génère sa clé privée sur la machine (elle ne la quitte jamais), obtient son\ncertificat, puis ouvre sa connexion vers l’API. Le nœud passe `,_jsx(_components.strong,{children:`en ligne`}),` dans le panel.`]}),`\n`,_jsxs(_components.p,{children:[`Avec `,_jsx(_components.code,{children:`--full`}),` (serveur vierge, Debian 12-13 ou Ubuntu 22.04-24.04), le script prépare d’abord\nla machine : mises à jour, `,_jsx(_components.code,{children:`fail2ban`}),`, SSH par clé si une clé est déjà autorisée, Docker, et un\npare-feu `,_jsx(_components.code,{children:`ufw`}),` qui n’ouvre que SSH et la plage `,_jsx(_components.code,{children:`--ports`}),` (TCP et UDP). Le nœud n’a besoin\nd’aucun autre port : c’est lui qui se connecte à l’API. `,_jsx(_components.code,{children:`--plan`}),` montre tout sans rien changer.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Option`}),_jsx(_components.th,{children:`Rôle`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--api`})}),_jsxs(_components.td,{children:[`Listener des daemons de l’API (`,_jsx(_components.code,{children:`https://hôte:8443`}),`). Requis au premier enrôlement.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--ca-fingerprint`})}),_jsx(_components.td,{children:`Empreinte affichée à la création du nœud. Requise au premier enrôlement.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--token-file`})}),_jsxs(_components.td,{children:[`Fichier contenant le jeton, à la place de `,_jsx(_components.code,{children:`KURO_ENROLL_TOKEN`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--ports`})}),_jsxs(_components.td,{children:[`Plage des serveurs de jeu, ouverte dans le pare-feu par `,_jsx(_components.code,{children:`--full`}),` (ex. `,_jsx(_components.code,{children:`25565-25600`}),`).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--full`})}),_jsx(_components.td,{children:`Prépare un serveur vierge (voir ci-dessus).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--plan`})}),_jsx(_components.td,{children:`Affiche ce qui serait fait, sans rien changer.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--yes`})}),_jsxs(_components.td,{children:[`Pas de confirmation (`,_jsx(_components.code,{children:`--full`}),`).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--version`})}),_jsx(_components.td,{children:`Version à installer (défaut : la dernière).`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`3-donner-des-ports-au-nœud`,children:`3. Donner des ports au nœud`}),`\n`,_jsxs(_components.p,{children:[`Dans la fiche du nœud, `,_jsx(_components.strong,{children:`Ports`}),` : ajoutez la même plage (par exemple `,_jsx(_components.code,{children:`25565-25600`}),`). Chaque\nserveur reçoit un port de cette plage.`]}),`\n`,_jsxs(_components.p,{children:[`Ces ports doivent être joignables par les joueurs. Sans `,_jsx(_components.code,{children:`--full`}),`, ouvrez-les dans le pare-feu du\nnœud ; si le nœud est chez vous, redirigez-les aussi depuis la box (voir\n`,_jsx(_components.a,{href:`/fr/how-it-works`,children:`Fonctionnement`}),`).`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Ajouter un nœud","description":"Créer le nœud dans le panel, installer le daemon et lui donner des ports.","href":"/fr/add-a-node"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"1. Créer le nœud dans Kuro","slug":"1-créer-le-nœud-dans-kuro","depth":2,"children":[]},{"title":"2. Installer le daemon","slug":"2-installer-le-daemon","depth":2,"children":[]},{"title":"3. Donner des ports au nœud","slug":"3-donner-des-ports-au-nœud","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"nihilo","siteName":"Kuroctl","title":"Ajouter un nœud - Kuroctl","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"fr":{"href":"/fr/add-a-node","matchLevel":0},"en":{"href":"/en/add-a-node","matchLevel":1}}},"lastModified":"2026-10-30T08:37:33.314Z","originalFileLocation":"fr/add-a-node.mdx","locale":"fr"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Créer le nœud dans le panel, installer le daemon et lui donner des ports.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Kuroctl\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/nihilo/jtrXauOrOnZvCzpb/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/nihilo/jtrXauOrOnZvCzpb/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/nihilo/jtrXauOrOnZvCzpb/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/nihilo/jtrXauOrOnZvCzpb/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/nihilo/jtrXauOrOnZvCzpb/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/nihilo/jtrXauOrOnZvCzpb/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/nihilo/jtrXauOrOnZvCzpb/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/nihilo/jtrXauOrOnZvCzpb/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/nihilo/jtrXauOrOnZvCzpb/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Ajouter un nœud - Kuroctl\">\u003cmeta data-mint-head property=\"og:description\" content=\"Créer le nœud dans le panel, installer le daemon et lui donner des ports.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kuroctl\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.kuroctl.com/fr/add-a-node\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://nihilo.mintlify.app/_mintlify/api/og/v2?division=Installer\u0026amp;title=Ajouter+un+n%C5%93ud\u0026amp;description=Cr%C3%A9er+le+n%C5%93ud+dans+le+panel%2C+installer+le+daemon+et+lui+donner+des+ports.\u0026amp;theme=bcc2fd2b88c804bd269ee961\u0026amp;signature=2f2a283fe9f41c46ac90426a494d176edc95a708a8b3f3d31fb5c6a840d122c3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Ajouter un nœud - Kuroctl\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Créer le nœud dans le panel, installer le daemon et lui donner des ports.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://nihilo.mintlify.app/_mintlify/api/og/v2?division=Installer\u0026amp;title=Ajouter+un+n%C5%93ud\u0026amp;description=Cr%C3%A9er+le+n%C5%93ud+dans+le+panel%2C+installer+le+daemon+et+lui+donner+des+ports.\u0026amp;theme=bcc2fd2b88c804bd269ee961\u0026amp;signature=2f2a283fe9f41c46ac90426a494d176edc95a708a8b3f3d31fb5c6a840d122c3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/nihilo/jtrXauOrOnZvCzpb/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Kuroctl\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4e61ed\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.kuroctl.com/fr/add-a-node\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/fr/add-a-node.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.kuroctl.com/fr/add-a-node\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.kuroctl.com/en/add-a-node\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.kuroctl.com/en/add-a-node\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.kuroctl.com/#organization\",\"name\":\"Kuroctl\",\"url\":\"https://docs.kuroctl.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/nihilo/dkpD-84WRtB8xLBL/logo/light.png?fit=max\u0026auto=format\u0026n=dkpD-84WRtB8xLBL\u0026q=85\u0026s=e0d3c070f234875fb30efe4d7b531513\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.kuroctl.com#website\",\"name\":\"Kuroctl\",\"url\":\"https://docs.kuroctl.com\",\"publisher\":{\"@id\":\"https://docs.kuroctl.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.kuroctl.com/fr/add-a-node#webpage\",\"url\":\"https://docs.kuroctl.com/fr/add-a-node\",\"name\":\"Ajouter un nœud\",\"description\":\"Créer le nœud dans le panel, installer le daemon et lui donner des ports.\",\"dateModified\":\"2026-10-30T08:37:33.314Z\",\"isPartOf\":{\"@id\":\"https://docs.kuroctl.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.kuroctl.com/fr/add-a-node#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.kuroctl.com/fr/add-a-node#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Installer\",\"item\":\"https://docs.kuroctl.com/fr/install-api\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ajouter un nœud\",\"item\":\"https://docs.kuroctl.com/fr/add-a-node\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.kuroctl.com/fr/add-a-node#article\",\"headline\":\"Ajouter un nœud\",\"name\":\"Ajouter un nœud\",\"description\":\"Créer le nœud dans le panel, installer le daemon et lui donner des ports.\",\"url\":\"https://docs.kuroctl.com/fr/add-a-node\",\"mainEntityOfPage\":{\"@id\":\"https://docs.kuroctl.com/fr/add-a-node#webpage\"},\"dateModified\":\"2026-10-30T08:37:33.314Z\",\"publisher\":{\"@id\":\"https://docs.kuroctl.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.kuroctl.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Kuroctl\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Kuroctl","nav":{"global":null,"languages":[{"language":"fr","groups":[{"group":"Démarrer","pages":[{"title":"Kuro","sidebarTitle":"Accueil","href":"/fr"},{"title":"Introduction","href":"/fr/introduction"},{"title":"Fonctionnement","href":"/fr/how-it-works"}]},{"group":"Installer","pages":[{"title":"Installer l'API et le panel","sidebarTitle":"Installer l'API","description":"Un seul script installe l'API, le panel et les prefabs officiels, et peut préparer un serveur vierge.","href":"/fr/install-api"},{"title":"Ajouter un nœud","href":"/fr/add-a-node"},{"title":"Vérifier ce qu'on installe","sidebarTitle":"Vérification","description":"La signature des téléchargements et l'empreinte de l'autorité de certification.","href":"/fr/verification"},{"title":"Mettre à jour","href":"/fr/updating"}]},{"group":"Configurer","pages":[{"title":"Fichier de configuration","sidebarTitle":"Configuration","href":"/fr/configuration"},{"title":"DNS (facultatif)","sidebarTitle":"DNS","href":"/fr/dns"},{"title":"Agents IA (MCP)","sidebarTitle":"Agents IA","href":"/fr/mcp"}]},{"group":"Aide","pages":[{"title":"Dépannage","href":"/fr/troubleshooting"}]}]},{"language":"en","default":true,"pages":[{"title":"en","href":"/en/add-a-node"}]}]},"title":"Ajouter un nœud - Kuroctl","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":[],"chunks":[]}