[{"data":1,"prerenderedAt":4018},["ShallowReactive",2],{"published-article-paths":3,"search-navigation":348,"\u002Ffr\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac":421,"\u002Ffr\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac-surround":1022},[4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346],{"path":5},"\u002Fde\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":7},"\u002Fde\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":9},"\u002Fde\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":11},"\u002Fde\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":13},"\u002Fde\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":15},"\u002Fde\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":17},"\u002Fde\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":19},"\u002Fde\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":21},"\u002Fde\u002Farticle\u002Fsetup-antigravity-2",{"path":23},"\u002Fde\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":25},"\u002Fde\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":27},"\u002Fde\u002Farticle\u002Fsync-obsidian-across-devices",{"path":29},"\u002Fde\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":31},"\u002Fde\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":33},"\u002Fde\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":35},"\u002Fde\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":37},"\u002Fen\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":39},"\u002Fen\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":41},"\u002Fen\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":43},"\u002Fen\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":45},"\u002Fen\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":47},"\u002Fen\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"path":49},"\u002Fen\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":51},"\u002Fen\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":53},"\u002Fen\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":55},"\u002Fen\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"path":57},"\u002Fen\u002Farticle\u002Fsetup-antigravity-2",{"path":59},"\u002Fen\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":61},"\u002Fen\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":63},"\u002Fen\u002Farticle\u002Fsync-obsidian-across-devices",{"path":65},"\u002Fen\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":67},"\u002Fen\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":69},"\u002Fen\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":71},"\u002Fen\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":73},"\u002Fes\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":75},"\u002Fes\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":77},"\u002Fes\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":79},"\u002Fes\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":81},"\u002Fes\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":83},"\u002Fes\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"path":85},"\u002Fes\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":87},"\u002Fes\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":89},"\u002Fes\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":91},"\u002Fes\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"path":93},"\u002Fes\u002Farticle\u002Fsetup-antigravity-2",{"path":95},"\u002Fes\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":97},"\u002Fes\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":99},"\u002Fes\u002Farticle\u002Fsync-obsidian-across-devices",{"path":101},"\u002Fes\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":103},"\u002Fes\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":105},"\u002Fes\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":107},"\u002Fes\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":109},"\u002Ffr\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":111},"\u002Ffr\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":113},"\u002Ffr\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":115},"\u002Ffr\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":117},"\u002Ffr\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":119},"\u002Ffr\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"path":121},"\u002Ffr\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":123},"\u002Ffr\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":125},"\u002Ffr\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":127},"\u002Ffr\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"path":129},"\u002Ffr\u002Farticle\u002Fsetup-antigravity-2",{"path":131},"\u002Ffr\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":133},"\u002Ffr\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":135},"\u002Ffr\u002Farticle\u002Fsync-obsidian-across-devices",{"path":137},"\u002Ffr\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":139},"\u002Ffr\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":141},"\u002Ffr\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":143},"\u002Ffr\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":145},"\u002Fid\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":147},"\u002Fid\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":149},"\u002Fid\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":151},"\u002Fid\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":153},"\u002Fid\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":155},"\u002Fid\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"path":157},"\u002Fid\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":159},"\u002Fid\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":161},"\u002Fid\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":163},"\u002Fid\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"path":165},"\u002Fid\u002Farticle\u002Fsetup-antigravity-2",{"path":167},"\u002Fid\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":169},"\u002Fid\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":171},"\u002Fid\u002Farticle\u002Fsync-obsidian-across-devices",{"path":173},"\u002Fid\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":175},"\u002Fid\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":177},"\u002Fid\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":179},"\u002Fid\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":181},"\u002Fja\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":183},"\u002Fja\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":185},"\u002Fja\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":187},"\u002Fja\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":189},"\u002Fja\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":191},"\u002Fja\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":193},"\u002Fja\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":195},"\u002Fja\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":197},"\u002Fja\u002Farticle\u002Fsetup-antigravity-2",{"path":199},"\u002Fja\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":201},"\u002Fja\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":203},"\u002Fja\u002Farticle\u002Fsync-obsidian-across-devices",{"path":205},"\u002Fja\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":207},"\u002Fja\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":209},"\u002Fja\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":211},"\u002Fja\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":213},"\u002Fpt\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":215},"\u002Fpt\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":217},"\u002Fpt\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":219},"\u002Fpt\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":221},"\u002Fpt\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":223},"\u002Fpt\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"path":225},"\u002Fpt\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":227},"\u002Fpt\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":229},"\u002Fpt\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":231},"\u002Fpt\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"path":233},"\u002Fpt\u002Farticle\u002Fsetup-antigravity-2",{"path":235},"\u002Fpt\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":237},"\u002Fpt\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":239},"\u002Fpt\u002Farticle\u002Fsync-obsidian-across-devices",{"path":241},"\u002Fpt\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":243},"\u002Fpt\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":245},"\u002Fpt\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":247},"\u002Fpt\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":249},"\u002Ftw\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":251},"\u002Ftw\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":253},"\u002Ftw\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":255},"\u002Ftw\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":257},"\u002Ftw\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":259},"\u002Ftw\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":261},"\u002Ftw\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":263},"\u002Ftw\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":265},"\u002Ftw\u002Farticle\u002Fsetup-antigravity-2",{"path":267},"\u002Ftw\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":269},"\u002Ftw\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":271},"\u002Ftw\u002Farticle\u002Fsync-obsidian-across-devices",{"path":273},"\u002Ftw\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":275},"\u002Ftw\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":277},"\u002Ftw\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":279},"\u002Ftw\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":281},"\u002Fvi\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":283},"\u002Fvi\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":285},"\u002Fvi\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":287},"\u002Fvi\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":289},"\u002Fvi\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":291},"\u002Fvi\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"path":293},"\u002Fvi\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":295},"\u002Fvi\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":297},"\u002Fvi\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":299},"\u002Fvi\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"path":301},"\u002Fvi\u002Farticle\u002Fsetup-antigravity-2",{"path":303},"\u002Fvi\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":305},"\u002Fvi\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":307},"\u002Fvi\u002Farticle\u002Fsync-obsidian-across-devices",{"path":309},"\u002Fvi\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":311},"\u002Fvi\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":313},"\u002Fvi\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":315},"\u002Fvi\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":317},"\u002Fzh\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":319},"\u002Fzh\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":321},"\u002Fzh\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":323},"\u002Fzh\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":325},"\u002Fzh\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":327},"\u002Fzh\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":329},"\u002Fzh\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":331},"\u002Fzh\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":333},"\u002Fzh\u002Farticle\u002Fsetup-antigravity-2",{"path":335},"\u002Fzh\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":337},"\u002Fzh\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":339},"\u002Fzh\u002Farticle\u002Fsync-obsidian-across-devices",{"path":341},"\u002Fzh\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":343},"\u002Fzh\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":345},"\u002Fzh\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":347},"\u002Fzh\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",[349,353,357,361,365,369,373,377,381,385,389,393,397,401,405,409,413,417],{"title":350,"path":351,"stem":352},"AI Agent Skills: What They Are & How to Create Them","\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them","en\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"title":354,"path":355,"stem":356},"Bringing Buzz to DeepSeek Harness: Taught to Speak Nostr","\u002Farticle\u002Fbringing-buzz-to-deepseek-harness","en\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"title":358,"path":359,"stem":360},"Solving AI Agent Skills Fragmentation with npx skills","\u002Farticle\u002Fcentralised-the-skills-for-agents","en\u002Farticle\u002Fcentralised-the-skills-for-agents",{"title":362,"path":363,"stem":364},"How to Expose Hermes Agent Privately with Cloudflare WARP","\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp","en\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"title":366,"path":367,"stem":368},"How AI Agent Skills Replace Nuxt App Scaffolding Scripts","\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts","en\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"title":370,"path":371,"stem":372},"Stop Exposing Your Vault: Secure NodeWarden with Cloudflare","\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare","en\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"title":374,"path":375,"stem":376},"How to Deploy Hermes Agent on a Linux VPS","\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server","en\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"title":378,"path":379,"stem":380},"Self-Host Your Travel Itineraries with TREK and Docker","\u002Farticle\u002Fself-hosted-travel-planner-trek","en\u002Farticle\u002Fself-hosted-travel-planner-trek",{"title":382,"path":383,"stem":384},"Self-Host Block's Buzz: Shared AI Agent Workspace","\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues","en\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"title":386,"path":387,"stem":388},"How to Self-Host a BitWarden Compatible Server Nodewarden","\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare","en\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"title":390,"path":391,"stem":392},"Google Antigravity 2 Hands-On: Setup & First Impressions","\u002Farticle\u002Fsetup-antigravity-2","en\u002Farticle\u002Fsetup-antigravity-2",{"title":394,"path":395,"stem":396},"NetSuite AI Connector Guide: MCP Setup & Use Cases","\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude","en\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"title":398,"path":399,"stem":400},"Switch Between Multiple Cloudflare WARP Orgs on Mac","\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac","en\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"title":402,"path":403,"stem":404},"How to Sync Obsidian Vaults Across Devices Securely","\u002Farticle\u002Fsync-obsidian-across-devices","en\u002Farticle\u002Fsync-obsidian-across-devices",{"title":406,"path":407,"stem":408},"Testing Claude Fable 5: A Financial Analysis Review","\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis","en\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"title":410,"path":411,"stem":412},"Guide to Browser and Scheduler in Antigravity 2","\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2","en\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"title":414,"path":415,"stem":416},"Build a Persistent AI Memory System on Cloudflare","\u002Farticle\u002Fuse-cloudflare-as-ai-memory","en\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"title":418,"path":419,"stem":420},"Antigravity 2 in Action: AI Agents, Skills, and MCP","\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2","en\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"id":422,"title":423,"author":424,"body":425,"category":999,"date":1002,"description":1003,"extension":1004,"image":1005,"imageAlt":1006,"isPublished":1007,"meta":1008,"minRead":527,"navigation":1007,"path":133,"seo":1014,"stem":1015,"tags":1016,"updatedAt":1020,"__hash__":1021},"article\u002Ffr\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac.md","Basculer entre plusieurs profils Cloudflare WARP sur macOS","",{"type":426,"value":427,"toc":992},"minimark",[428,433,437,445,449,456,459,462,466,469,477,497,827,947,951,954,958,988],[429,430,432],"h2",{"id":431},"quest-ce-que-cloudflare-warp","Qu'est-ce que Cloudflare WARP ?",[434,435,436],"p",{},"Cloudflare WARP est une application côté client qui achemine le trafic de l'appareil spécifié via le réseau mondial de Cloudflare plutôt que de l'envoyer directement sur l'internet public.",[434,438,439,440,444],{},"Elle crée un tunnel chiffré basé sur le protocole ",[441,442,443],"strong",{},"WireGuard",", sécurisant le trafic de l'appareil vers le centre de données Cloudflare le plus proche. Des politiques peuvent ensuite être créées dans votre tableau de bord Cloudflare pour filtrer, consigner, inspecter ou acheminer ce trafic entrant.",[429,446,448],{"id":447},"pourquoi-avons-nous-besoin-de-cloudflare-warp","Pourquoi avons-nous besoin de Cloudflare WARP ?",[434,450,451,452,455],{},"Pour exposer de manière sécurisée les ressources internes—telles que les services web privés ou les applications SaaS—aux employés, sous-traitants et autres parties prenantes, le client Cloudflare WARP est utilisé comme point d'application côté client pour l'",[441,453,454],{},"Accès Réseau Zero Trust (ZTNA)",".",[434,457,458],{},"Le client Cloudflare WARP est installé sur l'ordinateur portable ou le téléphone d'un utilisateur. Il exige que les utilisateurs s'authentifient et satisfassent à des contrôles de sécurité spécifiques (comme provenir d'une plage d'adresses IP approuvée, utiliser un domaine de messagerie enregistré ou exécuter un pare-feu actif) avant de leur accorder l'accès.",[434,460,461],{},"En acheminant le trafic de l'appareil directement vers Cloudflare, l'identité de l'utilisateur, l'appareil et les politiques sont vérifiés avant même que les requêtes n'atteignent les ressources internes. Par conséquent, les ressources internes ne sont jamais exposées à l'internet public, et chaque requête est entièrement enregistrée et auditée.",[429,463,465],{"id":464},"prise-en-charge-de-plusieurs-profils-warp-sur-un-seul-appareil","Prise en charge de plusieurs profils WARP sur un seul appareil",[434,467,468],{},"Lorsque les utilisateurs doivent basculer entre des comptes Cloudflare personnels et professionnels, ou lorsque les administrateurs système gèrent plusieurs locataires (tenants), la prise en charge de plusieurs profils WARP sur un seul appareil devient cruciale.",[434,470,471,472,476],{},"Pour y parvenir sur macOS, nous pouvons utiliser un fichier de profil MDM ",[473,474,475],"code",{},".mobileconfig"," afin de définir et d'enregistrer les différents environnements WARP.",[478,479,480,494],"ul",{},[481,482,483,493],"li",{},[484,485,489,490,492],"a",{"href":486,"rel":487},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fcloudflare-one\u002Fstatic\u002Fmdm\u002Fmultiple-orgs\u002FCloudflareWARP.mobileconfig",[488],"nofollow","Download a sample ",[473,491,475],{}," file"," directement depuis Cloudflare.",[481,495,496],{},"Voici un exemple de ce à quoi ressemble cette configuration :",[498,499,503],"pre",{"className":500,"code":501,"language":502,"meta":424,"style":424},"language-xml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\u003C!DOCTYPE plist PUBLIC \"-\u002F\u002FApple\u002F\u002FDTD PLIST 1.0\u002F\u002FEN\" \"http:\u002F\u002Fwww.apple.com\u002FDTDs\u002FPropertyList-1.0.dtd\">\n\u003Cplist version=\"1.0\">\n\u003Cdict>\n  \u003Ckey>PayloadContent\u003C\u002Fkey>\n  \u003Carray>\n    \u003Cdict>\n      \u003Ckey>PayloadDisplayName\u003C\u002Fkey>\n      \u003Cstring>Warp Configuration\u003C\u002Fstring>\n      \u003Ckey>PayloadIdentifier\u003C\u002Fkey>\n      \u003Cstring>com.cloudflare.warp.CB8B22D4-50E1-48E8-8874-A7594627013A\u003C\u002Fstring>\n      \u003Ckey>PayloadOrganization\u003C\u002Fkey>\n      \u003Cstring>Cloudflare Ltd.\u003C\u002Fstring>\n      \u003Ckey>PayloadType\u003C\u002Fkey>\n      \u003Cstring>com.cloudflare.warp\u003C\u002Fstring>\n      \u003Ckey>PayloadUUID\u003C\u002Fkey>\n      \u003Cstring>CB8B22D4-50E1-48E8-8874-A7594627013A\u003C\u002Fstring>\n      \u003Ckey>PayloadVersion\u003C\u002Fkey>\n      \u003Cinteger>1\u003C\u002Finteger>\n      \u003Ckey>configs\u003C\u002Fkey>\n      \u003Carray>\n        \u003Cdict>\n          \u003Ckey>organization\u003C\u002Fkey>\n          \u003Cstring>your-team-name-1\u003C\u002Fstring>\n          \u003Ckey>display_name\u003C\u002Fkey>\n          \u003Cstring>Team 1\u003C\u002Fstring>\n        \u003C\u002Fdict>\n        \u003Cdict>\n          \u003Ckey>organization\u003C\u002Fkey>\n          \u003Cstring>your-team-name-2\u003C\u002Fstring>\n          \u003Ckey>display_name\u003C\u002Fkey>\n          \u003Cstring>Team 2\u003C\u002Fstring>\n        \u003C\u002Fdict>\n      \u003C\u002Farray>\n    \u003C\u002Fdict>\n  \u003C\u002Farray>\n  \u003Ckey>PayloadDisplayName\u003C\u002Fkey>\n  \u003Cstring>Cloudflare WARP\u003C\u002Fstring>\n  \u003Ckey>PayloadIdentifier\u003C\u002Fkey>\n  \u003Cstring>cloudflare_warp\u003C\u002Fstring>\n  \u003Ckey>PayloadOrganization\u003C\u002Fkey>\n  \u003Cstring>Cloudflare, Ltd.\u003C\u002Fstring>\n  \u003Ckey>PayloadRemovalDisallowed\u003C\u002Fkey>\n  \u003Cfalse\u002F>\n  \u003Ckey>PayloadScope\u003C\u002Fkey>\n  \u003Cstring>System\u003C\u002Fstring>\n  \u003Ckey>PayloadType\u003C\u002Fkey>\n  \u003Cstring>Configuration\u003C\u002Fstring>\n  \u003Ckey>PayloadUUID\u003C\u002Fkey>\n  \u003Cstring>2B7763B8-64F6-41EB-AA5E-7761651B8131\u003C\u002Fstring>\n  \u003Ckey>PayloadVersion\u003C\u002Fkey>\n  \u003Cinteger>1\u003C\u002Finteger>\n\u003C\u002Fdict>\n\u003C\u002Fplist>\n","xml",[473,504,505,513,519,525,531,537,543,549,555,561,567,573,579,585,591,597,603,609,615,621,627,633,639,645,651,657,663,669,674,679,685,690,696,701,707,713,719,725,731,737,743,749,755,761,767,773,779,785,791,797,803,809,815,821],{"__ignoreMap":424},[506,507,510],"span",{"class":508,"line":509},"line",1,[506,511,512],{},"\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",[506,514,516],{"class":508,"line":515},2,[506,517,518],{},"\u003C!DOCTYPE plist PUBLIC \"-\u002F\u002FApple\u002F\u002FDTD PLIST 1.0\u002F\u002FEN\" \"http:\u002F\u002Fwww.apple.com\u002FDTDs\u002FPropertyList-1.0.dtd\">\n",[506,520,522],{"class":508,"line":521},3,[506,523,524],{},"\u003Cplist version=\"1.0\">\n",[506,526,528],{"class":508,"line":527},4,[506,529,530],{},"\u003Cdict>\n",[506,532,534],{"class":508,"line":533},5,[506,535,536],{},"  \u003Ckey>PayloadContent\u003C\u002Fkey>\n",[506,538,540],{"class":508,"line":539},6,[506,541,542],{},"  \u003Carray>\n",[506,544,546],{"class":508,"line":545},7,[506,547,548],{},"    \u003Cdict>\n",[506,550,552],{"class":508,"line":551},8,[506,553,554],{},"      \u003Ckey>PayloadDisplayName\u003C\u002Fkey>\n",[506,556,558],{"class":508,"line":557},9,[506,559,560],{},"      \u003Cstring>Warp Configuration\u003C\u002Fstring>\n",[506,562,564],{"class":508,"line":563},10,[506,565,566],{},"      \u003Ckey>PayloadIdentifier\u003C\u002Fkey>\n",[506,568,570],{"class":508,"line":569},11,[506,571,572],{},"      \u003Cstring>com.cloudflare.warp.CB8B22D4-50E1-48E8-8874-A7594627013A\u003C\u002Fstring>\n",[506,574,576],{"class":508,"line":575},12,[506,577,578],{},"      \u003Ckey>PayloadOrganization\u003C\u002Fkey>\n",[506,580,582],{"class":508,"line":581},13,[506,583,584],{},"      \u003Cstring>Cloudflare Ltd.\u003C\u002Fstring>\n",[506,586,588],{"class":508,"line":587},14,[506,589,590],{},"      \u003Ckey>PayloadType\u003C\u002Fkey>\n",[506,592,594],{"class":508,"line":593},15,[506,595,596],{},"      \u003Cstring>com.cloudflare.warp\u003C\u002Fstring>\n",[506,598,600],{"class":508,"line":599},16,[506,601,602],{},"      \u003Ckey>PayloadUUID\u003C\u002Fkey>\n",[506,604,606],{"class":508,"line":605},17,[506,607,608],{},"      \u003Cstring>CB8B22D4-50E1-48E8-8874-A7594627013A\u003C\u002Fstring>\n",[506,610,612],{"class":508,"line":611},18,[506,613,614],{},"      \u003Ckey>PayloadVersion\u003C\u002Fkey>\n",[506,616,618],{"class":508,"line":617},19,[506,619,620],{},"      \u003Cinteger>1\u003C\u002Finteger>\n",[506,622,624],{"class":508,"line":623},20,[506,625,626],{},"      \u003Ckey>configs\u003C\u002Fkey>\n",[506,628,630],{"class":508,"line":629},21,[506,631,632],{},"      \u003Carray>\n",[506,634,636],{"class":508,"line":635},22,[506,637,638],{},"        \u003Cdict>\n",[506,640,642],{"class":508,"line":641},23,[506,643,644],{},"          \u003Ckey>organization\u003C\u002Fkey>\n",[506,646,648],{"class":508,"line":647},24,[506,649,650],{},"          \u003Cstring>your-team-name-1\u003C\u002Fstring>\n",[506,652,654],{"class":508,"line":653},25,[506,655,656],{},"          \u003Ckey>display_name\u003C\u002Fkey>\n",[506,658,660],{"class":508,"line":659},26,[506,661,662],{},"          \u003Cstring>Team 1\u003C\u002Fstring>\n",[506,664,666],{"class":508,"line":665},27,[506,667,668],{},"        \u003C\u002Fdict>\n",[506,670,672],{"class":508,"line":671},28,[506,673,638],{},[506,675,677],{"class":508,"line":676},29,[506,678,644],{},[506,680,682],{"class":508,"line":681},30,[506,683,684],{},"          \u003Cstring>your-team-name-2\u003C\u002Fstring>\n",[506,686,688],{"class":508,"line":687},31,[506,689,656],{},[506,691,693],{"class":508,"line":692},32,[506,694,695],{},"          \u003Cstring>Team 2\u003C\u002Fstring>\n",[506,697,699],{"class":508,"line":698},33,[506,700,668],{},[506,702,704],{"class":508,"line":703},34,[506,705,706],{},"      \u003C\u002Farray>\n",[506,708,710],{"class":508,"line":709},35,[506,711,712],{},"    \u003C\u002Fdict>\n",[506,714,716],{"class":508,"line":715},36,[506,717,718],{},"  \u003C\u002Farray>\n",[506,720,722],{"class":508,"line":721},37,[506,723,724],{},"  \u003Ckey>PayloadDisplayName\u003C\u002Fkey>\n",[506,726,728],{"class":508,"line":727},38,[506,729,730],{},"  \u003Cstring>Cloudflare WARP\u003C\u002Fstring>\n",[506,732,734],{"class":508,"line":733},39,[506,735,736],{},"  \u003Ckey>PayloadIdentifier\u003C\u002Fkey>\n",[506,738,740],{"class":508,"line":739},40,[506,741,742],{},"  \u003Cstring>cloudflare_warp\u003C\u002Fstring>\n",[506,744,746],{"class":508,"line":745},41,[506,747,748],{},"  \u003Ckey>PayloadOrganization\u003C\u002Fkey>\n",[506,750,752],{"class":508,"line":751},42,[506,753,754],{},"  \u003Cstring>Cloudflare, Ltd.\u003C\u002Fstring>\n",[506,756,758],{"class":508,"line":757},43,[506,759,760],{},"  \u003Ckey>PayloadRemovalDisallowed\u003C\u002Fkey>\n",[506,762,764],{"class":508,"line":763},44,[506,765,766],{},"  \u003Cfalse\u002F>\n",[506,768,770],{"class":508,"line":769},45,[506,771,772],{},"  \u003Ckey>PayloadScope\u003C\u002Fkey>\n",[506,774,776],{"class":508,"line":775},46,[506,777,778],{},"  \u003Cstring>System\u003C\u002Fstring>\n",[506,780,782],{"class":508,"line":781},47,[506,783,784],{},"  \u003Ckey>PayloadType\u003C\u002Fkey>\n",[506,786,788],{"class":508,"line":787},48,[506,789,790],{},"  \u003Cstring>Configuration\u003C\u002Fstring>\n",[506,792,794],{"class":508,"line":793},49,[506,795,796],{},"  \u003Ckey>PayloadUUID\u003C\u002Fkey>\n",[506,798,800],{"class":508,"line":799},50,[506,801,802],{},"  \u003Cstring>2B7763B8-64F6-41EB-AA5E-7761651B8131\u003C\u002Fstring>\n",[506,804,806],{"class":508,"line":805},51,[506,807,808],{},"  \u003Ckey>PayloadVersion\u003C\u002Fkey>\n",[506,810,812],{"class":508,"line":811},52,[506,813,814],{},"  \u003Cinteger>1\u003C\u002Finteger>\n",[506,816,818],{"class":508,"line":817},53,[506,819,820],{},"\u003C\u002Fdict>\n",[506,822,824],{"class":508,"line":823},54,[506,825,826],{},"\u003C\u002Fplist>\n",[478,828,829,840,853,863,869,888,901,921,938],{},[481,830,831,832,835,836,839],{},"Remplacez ",[473,833,834],{},"your-team-name-1"," et ",[473,837,838],{},"your-team-name-2"," par vos noms d'équipe Cloudflare Zero Trust respectifs.",[481,841,842,843,846,847,850,851,455],{},"Exécutez la commande ",[473,844,845],{},"uuidgen"," dans votre Terminal pour générer des UUID uniques, et utilisez-les pour remplacer les valeurs ",[473,848,849],{},"PayloadUUID"," temporaires dans le fichier ",[473,852,475],{},[481,854,855,856,859,860,862],{},"Assurez-vous que la chaîne ",[473,857,858],{},"PayloadIdentifier"," contient également le ",[473,861,849],{}," mis à jour pour que le profil reste distinct.",[481,864,865,866,868],{},"Enregistrez votre fichier ",[473,867,475],{}," modifié.",[481,870,871,872,875,876,879,880,883],{},"Ouvrez les ",[441,873,874],{},"Réglages Système"," sur votre Mac, recherchez ",[441,877,878],{},"Profils",", puis sélectionnez-le.",[881,882],"br",{},[884,885],"img",{"alt":886,"src":887},"Panneau des profils dans les Réglages Système de macOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fmacos-system-settings-profiles.webp",[481,889,890,891,894,895,897],{},"Cliquez sur ",[441,892,893],{},"Installer, afficher ou supprimer..."," pour commencer à ajouter votre nouveau profil de configuration.",[881,896],{},[884,898],{"alt":899,"src":900},"Bouton pour installer, afficher ou supprimer des profils sur macOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fmacos-profiles-view-remove.webp",[481,902,903,904,907,908,910,911,913,917],{},"Cliquez sur l'icône ",[441,905,906],{},"+"," (plus) dans le coin inférieur gauche et sélectionnez votre fichier ",[473,909,475],{}," enregistré.",[881,912],{},[884,914],{"alt":915,"src":916},"Bouton plus (+) des profils macOS pour ajouter un nouveau profil","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fmacos-profiles-add-profile.webp",[884,918],{"alt":919,"src":920},"Sélection du fichier .mobileconfig sur macOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fmacos-select-mobileconfig-file.webp",[481,922,923,924,927,928,931,932,934],{},"Sélectionnez ",[441,925,926],{},"Cloudflare WARP"," et cliquez sur ",[441,929,930],{},"Installer"," pour appliquer la configuration.",[881,933],{},[884,935],{"alt":936,"src":937},"Confirmation de l'installation du profil Cloudflare WARP sur macOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fmacos-install-cloudflare-warp-profile.webp",[481,939,940,941,943],{},"Redémarrez votre client Cloudflare WARP. Vous devriez maintenant voir le sélecteur multi-profil dans l'interface utilisateur :",[881,942],{},[884,944],{"alt":945,"src":946},"Client Cloudflare WARP avec sélecteur multi-profils sur macOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fcloudflare-warp-multi-profile-switcher.webp",[429,948,950],{"id":949},"conclusion","Conclusion",[434,952,953],{},"Le client Cloudflare WARP agit comme un point de sécurité critique sur les appareils des utilisateurs, rendant l'Accès Réseau Zero Trust à la fois robuste et hautement pratique. Maintenir les ressources internes isolées de l'internet public garantit que chaque tentative de connexion est sécurisée, authentifiée, évaluée et auditée.",[429,955,957],{"id":956},"références","Références",[478,959,960,967,974,981],{},[481,961,962],{},[484,963,966],{"href":964,"rel":965},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fcloudflare-one\u002Fteam-and-resources\u002Fdevices\u002Fcloudflare-one-client\u002Fdeployment\u002Fmdm-deployment\u002F#prepare-file-for-mdm-deployment",[488],"Managed Deployment Preparation",[481,968,969],{},[484,970,973],{"href":971,"rel":972},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fcloudflare-one\u002Fteam-and-resources\u002Fdevices\u002Fcloudflare-one-client\u002Fdeployment\u002Fmdm-deployment\u002Fswitch-organizations\u002F",[488],"Switch Between Zero Trust Organizations",[481,975,976],{},[484,977,980],{"href":978,"rel":979},"https:\u002F\u002Fblog.cloudflare.com\u002Fintroducing-warp-connector-paving-the-path-to-any-to-any-connectivity-2\u002F",[488],"Introducing WARP Connector: Paving the Path to Any-to-Any Connectivity",[481,982,983],{},[484,984,987],{"href":985,"rel":986},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fcloudflare-one\u002Fteam-and-resources\u002Fdevices\u002Fcloudflare-one-client\u002F",[488],"Cloudflare One Client Documentation",[989,990,991],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":424,"searchDepth":515,"depth":521,"links":993},[994,995,996,997,998],{"id":431,"depth":515,"text":432},{"id":447,"depth":515,"text":448},{"id":464,"depth":515,"text":465},{"id":949,"depth":515,"text":950},{"id":956,"depth":515,"text":957},[1000,1001],"security","cloudflare","2026-07-04","Configurez et basculez entre plusieurs organisations Cloudflare WARP sur macOS via un fichier .mobileconfig. Guide MDM complet pour les administrateurs IT.","md","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002FFR-Switch-Between-Multiple-Cloudflare-WARP-Orgs-on-Mac.webp","Configurer plusieurs profils Cloudflare WARP sur macOS",true,{"schemaOrg":1009,"robots":1012,"sitemap":1013},[1010],{"@type":1011,"headline":423,"description":1003},"HowTo","index, follow",{"lastmod":1002},{"title":1006,"description":1003,"ogTitle":423,"ogDescription":1003,"twitterTitle":423,"twitterDescription":1003},"fr\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",[1017,926,1018,1019],"macOS","MDM","Zero Trust",null,"jJik-19rQGXNPJD_47FtTwK_qZTlpBhn9RktaRCaTsE",{"surround":1023,"related":2254},[1024,1431],{"id":1025,"title":1026,"author":424,"body":1027,"category":1413,"date":1415,"description":1416,"extension":1004,"image":1417,"imageAlt":1418,"isPublished":1007,"meta":1419,"minRead":533,"navigation":1007,"path":109,"seo":1423,"stem":1424,"tags":1425,"updatedAt":1020,"__hash__":1430},"article\u002Ffr\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them.md","Compétences des agents d'IA : guide complet de création",{"type":426,"value":1028,"toc":1403},[1029,1033,1044,1055,1124,1130,1134,1137,1146,1152,1157,1213,1224,1230,1233,1287,1291,1294,1301,1304,1315,1319,1364,1367,1384,1386,1397,1400],[429,1030,1032],{"id":1031},"quest-ce-quune-compétence-dagent-dia","Qu'est-ce qu'une compétence d'agent d'IA ?",[434,1034,1035,1036,1039,1040,1043],{},"Une compétence d'agent (agent skill) is un ",[441,1037,1038],{},"ensemble d'instructions"," réutilisable — une procédure standardisée qui indique à un agent comment accomplir efficacement un type de tâche spécifique. Elle se compose d'un seul fichier Markdown, ",[473,1041,1042],{},"SKILL.md",", et peut regrouper tous les autres fichiers requis par la tâche, tels que des documents de référence, des modèles ou des scripts exécutables.",[434,1045,1046,1047,1054],{},"Prenons l'exemple de la compétence ",[484,1048,1051],{"href":1049,"rel":1050},"https:\u002F\u002Fgithub.com\u002Fmattpocock\u002Fskills\u002Fblob\u002F733d312884b3878a9a9cff693c5886943753a741\u002Fskills\u002Fproductivity\u002Fgrill-me\u002FSKILL.md",[488],[473,1052,1053],{},"grill-me"," :",[498,1056,1060],{"className":1057,"code":1058,"language":1059,"meta":424,"style":424},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","---\nname: grill-me\ndescription: Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions \"grill me\".\n---\n\nInterview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.\n\nAsk the questions one at a time.\n\nIf a question can be answered by exploring the codebase, explore the codebase instead.\n","yaml",[473,1061,1062,1068,1082,1092,1096,1101,1106,1110,1115,1119],{"__ignoreMap":424},[506,1063,1064],{"class":508,"line":509},[506,1065,1067],{"class":1066},"sBMFI","---\n",[506,1069,1070,1074,1078],{"class":508,"line":515},[506,1071,1073],{"class":1072},"swJcz","name",[506,1075,1077],{"class":1076},"sMK4o",":",[506,1079,1081],{"class":1080},"sfazB"," grill-me\n",[506,1083,1084,1087,1089],{"class":508,"line":521},[506,1085,1086],{"class":1072},"description",[506,1088,1077],{"class":1076},[506,1090,1091],{"class":1080}," Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions \"grill me\".\n",[506,1093,1094],{"class":508,"line":527},[506,1095,1067],{"class":1066},[506,1097,1098],{"class":508,"line":533},[506,1099,1100],{"emptyLinePlaceholder":1007},"\n",[506,1102,1103],{"class":508,"line":539},[506,1104,1105],{"class":1080},"Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.\n",[506,1107,1108],{"class":508,"line":545},[506,1109,1100],{"emptyLinePlaceholder":1007},[506,1111,1112],{"class":508,"line":551},[506,1113,1114],{"class":1080},"Ask the questions one at a time.\n",[506,1116,1117],{"class":508,"line":557},[506,1118,1100],{"emptyLinePlaceholder":1007},[506,1120,1121],{"class":508,"line":563},[506,1122,1123],{"class":1080},"If a question can be answered by exploring the codebase, explore the codebase instead.\n",[434,1125,1126,1127,1129],{},"Un fichier ",[473,1128,1042],{}," contient un court bloc de métadonnées et un corps d'instructions. Les métadonnées se composent du nom et de la description de la compétence, que l'agent d'IA charge au démarrage.",[429,1131,1133],{"id":1132},"comment-fonctionnent-les-compétences-dagent-dia-la-divulgation-progressive","Comment fonctionnent les compétences d'agent d'IA : la divulgation progressive",[434,1135,1136],{},"Au départ, seuls le nom et la description de la compétence sont chargés dans le contexte. Lorsque la requête de l'utilisateur correspond à la description d'une compétence, le corps des instructions est chargé dans ce même contexte.",[434,1138,1139,1140,1145],{},"Voyons comment la compétence ",[484,1141,1143],{"href":1049,"rel":1142},[488],[473,1144,1053],{}," est utilisée.",[434,1147,1148],{},[884,1149],{"alt":1150,"src":1151},"Diagramme de séquence illustrant le mécanisme de divulgation progressive pour l'exécution des compétences d'un agent IA","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FAI%20Agent%20Skills%20What%20They%20Are%20%26%20How%20to%20Create%20Them\u002Fai-agent-skill-progressive-disclosure-sequence-diagram.webp",[1153,1154,1156],"h3",{"id":1155},"étape-par-étape","Étape par étape",[1158,1159,1160,1166,1172,1178,1184,1197,1207],"ol",{},[481,1161,1162,1165],{},[441,1163,1164],{},"Requête (Request)"," — L'utilisateur demande quelque chose à l'agent (\"interroge-moi sur la conception de mon workflow\").",[481,1167,1168,1171],{},[441,1169,1170],{},"Invite de sélection (Selection prompt)"," — La requête de l'utilisateur, accompagnée des descriptions de toutes les compétences disponibles, est envoyée au LLM.",[481,1173,1174,1177],{},[441,1175,1176],{},"Sélection du LLM"," — Le LLM compare la requête à chaque description et renvoie la ou les compétences correspondantes.",[481,1179,1180,1183],{},[441,1181,1182],{},"Confirmation"," — L'agent présente la compétence proposée à l'utilisateur, qui confirme (ou rejette\u002Fajuste) ce choix.",[481,1185,1186,1189,1190,1194,1195,455],{},[441,1187,1188],{},"Instructions chargées"," — L'agent récupère les instructions ",[1191,1192,1193],"em",{},"complètes"," de la compétence confirmée : le corps du fichier ",[473,1196,1042],{},[481,1198,1199,1202,1203,1206],{},[441,1200,1201],{},"Invite d'exécution (Execution prompt)"," — La requête de l'utilisateur ",[441,1204,1205],{},"ainsi que les instructions de la compétence sélectionnée"," sont envoyées au LLM.",[481,1208,1209,1212],{},[441,1210,1211],{},"Réponse"," — Le LLM produit le résultat, qui correspond à la première question de l'interrogatoire.",[434,1214,1215,1216,1223],{},"Utilisons maintenant ",[484,1217,1220],{"href":1218,"rel":1219},"https:\u002F\u002Fgithub.com\u002Fcoleam00\u002Fexcalidraw-diagram-skill",[488],[473,1221,1222],{},"excalidraw-diagram-skill"," pour illustrer l'utilisation d'une compétence accompagnée d'un document de référence :",[434,1225,1226],{},[884,1227],{"alt":1228,"src":1229},"Diagramme de séquence montrant un agent IA exécutant une compétence chargée avec des fichiers de référence et des modèles externes","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FAI%20Agent%20Skills%20What%20They%20Are%20%26%20How%20to%20Create%20Them\u002Fai-agent-skill-with-reference-files-sequence-diagram.webp",[1153,1231,1156],{"id":1232},"étape-par-étape-1",[1158,1234,1235,1240,1245,1254,1258,1270,1278],{},[481,1236,1237,1239],{},[441,1238,1164],{}," — L'utilisateur demande quelque chose à l'agent (\"dessine le workflow du processus de déploiement\").",[481,1241,1242,1171],{},[441,1243,1244],{},"Invite de sélection",[481,1246,1247,1249,1250,1253],{},[441,1248,1176],{}," — Le LLM compare la requête à chaque description et renvoie la ou les compétences correspondantes. Ici, \"dessine le workflow\" correspond à la description de ",[473,1251,1252],{},"excalidraw-diagram",", elle est donc sélectionnée.",[481,1255,1256,1183],{},[441,1257,1182],{},[481,1259,1260,1189,1262,1194,1264,1266,1267,1269],{},[441,1261,1188],{},[1191,1263,1193],{},[473,1265,1042],{}," et tous les fichiers référencés (pour ",[473,1268,1252],{},", cela inclut la palette de couleurs, le schéma JSON et les modèles d'éléments).",[481,1271,1272,1202,1275,1277],{},[441,1273,1274],{},"Invite d'exécution",[441,1276,1205],{}," sont envoyées au LLM. Le modèle dispose désormais de la méthodologie détaillée requise.",[481,1279,1280,1282,1283,1286],{},[441,1281,1211],{}," — Le LLM produit le résultat (un fichier JSON ",[473,1284,1285],{},".excalidraw","), que l'agent renvoie à l'utilisateur.",[429,1288,1290],{"id":1289},"compétences-dagent-dia-vs-outils-et-mcp","Compétences d'agent d'IA vs. Outils et MCP",[434,1292,1293],{},"Les compétences ne remplacent pas les invites (prompts), les outils ou le protocole MCP (Model Context Protocol). Les outils et les intégrations MCP étendent la portée d'un agent vers des systèmes externes — interroger une base de données, appeler une API, etc. Les compétences renforcent le savoir-faire de l'agent pour mener à bien une tâche.",[434,1295,1296,1297,1300],{},"Un MCP tel que le ",[484,1298,1299],{"href":395},"Configuration de NetSuite MCP sur ChatGPT et Claude"," permet à un agent de répondre aux questions des utilisateurs en accédant aux données financières et opérationnelles en direct dans NetSuite. Ensuite, une compétence de rapport opérationnel NetSuite guidera l'agent sur la manière de rédiger ce rapport et de présenter la réponse sous forme de rapport à l'utilisateur.",[434,1302,1303],{},"Quelques cas d'usage des compétences :",[478,1305,1306,1309,1312],{},[481,1307,1308],{},"Workflows multi-étapes",[481,1310,1311],{},"Traitement de documents, comme l'extraction de données à partir de fichiers PDF",[481,1313,1314],{},"Normes de génération de code",[429,1316,1318],{"id":1317},"comment-créer-des-compétences-dagent-dia","Comment créer des compétences d'agent d'IA",[1158,1320,1321,1331,1345,1354],{},[481,1322,1323,1326,1327,1330],{},[441,1324,1325],{},"Créez un dossier"," nommé d'après la compétence (par ex. ",[473,1328,1329],{},"netsuite-operation-report\u002F",").",[481,1332,1333,1338,1339,1341,1342,1344],{},[441,1334,1335,1336],{},"Rédigez ",[473,1337,1042],{}," avec un ",[473,1340,1073],{},", une ",[473,1343,1086],{}," précise et un corps d'instructions concis (moins de 200 mots).",[481,1346,1347,1350,1351,1353],{},[441,1348,1349],{},"Ajoutez les ressources"," nécessaires à la tâche — documents de référence, modèles, scripts. Gardez ",[473,1352,1042],{}," court et redirigez vers les détails.",[481,1355,1356,1359,1360,1363],{},[441,1357,1358],{},"Installez-la"," là où les agents pourront la découvrir. Reportez-vous à ",[484,1361,1362],{"href":359},"Centralisation des compétences pour les agents"," pour savoir comment gérer les compétences sur plusieurs agents.",[434,1365,1366],{},"Quelques conseils pour rédiger de bonnes compétences :",[478,1368,1369,1372,1378,1381],{},[481,1370,1371],{},"Rédigez la description pour le déclencheur (trigger) du modèle, pas pour l'humain.",[481,1373,1374,1375,1377],{},"Gardez le fichier ",[473,1376,1042],{}," léger — moins de 200 mots. Placez le cas général dans le corps et laissez les cas particuliers dans des documents de référence.",[481,1379,1380],{},"Utilisez des scripts pour tout ce qui est déterministe. Ne demandez pas au LLM de faire de l'arithmétique.",[481,1382,1383],{},"Versionnez-la. Enregistrez-la dans git.",[429,1385,950],{"id":949},[434,1387,1388,1389,1392,1393,1396],{},"Contrairement aux outils et au protocole MCP, qui définissent ",[1191,1390,1391],{},"à quoi se connecter",", les compétences d'agent regroupent ",[1191,1394,1395],{},"la manière d'effectuer le travail",". Elles constituent un complément essentiel, et non un remplacement.",[434,1398,1399],{},"En s'appuyant sur la divulgation progressive, les compétences maintiennent la fenêtre de contexte de votre agent propre et performante — en chargeant les instructions détaillées, les documents de référence et les scripts exécutables uniquement lorsque la requête d'un utilisateur les déclenche.",[989,1401,1402],{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":424,"searchDepth":515,"depth":521,"links":1404},[1405,1406,1410,1411,1412],{"id":1031,"depth":515,"text":1032},{"id":1132,"depth":515,"text":1133,"children":1407},[1408,1409],{"id":1155,"depth":521,"text":1156},{"id":1232,"depth":521,"text":1156},{"id":1289,"depth":515,"text":1290},{"id":1317,"depth":515,"text":1318},{"id":949,"depth":515,"text":950},[1414],"ai-agents","2026-06-26","Découvrez les compétences d'agent d'IA, le fonctionnement de la divulgation progressive, et apprenez à concevoir des workflows robustes et réutilisables.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FAI%20Agent%20Skills%20What%20They%20Are%20%26%20How%20to%20Create%20Them\u002FFR-AI-Agent-Skills-What-They-Are-%26-How-to-Create-Them.webp","Guide des compétences d'agent d'IA : créer des workflows",{"schemaOrg":1420,"robots":1012,"sitemap":1422},[1421],{"@type":1011,"headline":1026,"description":1416},{"lastmod":1415},{"title":1418,"description":1416,"ogTitle":1026,"ogDescription":1416,"twitterTitle":1026,"twitterDescription":1416},"fr\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",[1426,1427,1428,1429],"Agents d'IA","Compétences d'Agent","Flux de Travail Réutilisables","Tutoriel d'IA","2XGu8Y0A8faBTw10jjfqHu5KPotU3utOb8ytkxAnZ8Q",{"id":1432,"title":1433,"author":1020,"body":1434,"category":2235,"date":2236,"description":2237,"extension":1004,"image":2238,"imageAlt":2239,"isPublished":1007,"meta":2240,"minRead":557,"navigation":1007,"path":141,"seo":2246,"stem":2247,"tags":2248,"updatedAt":1020,"__hash__":2253},"article\u002Ffr\u002Farticle\u002Fuse-cloudflare-as-ai-memory.md","Bâtir un système de mémoire IA persistant sur Cloudflare",{"type":426,"value":1435,"toc":2217},[1436,1440,1443,1446,1450,1453,1467,1471,1478,1492,1495,1498,1542,1546,1628,1632,1658,1775,1786,1790,1795,1840,1864,1868,1873,1946,1951,1955,1989,1997,2036,2040,2072,2076,2084,2089,2119,2123,2166,2168,2171,2174,2177,2180,2214],[429,1437,1439],{"id":1438},"limportance-dune-mémoire-ia-persistante-pour-les-agents","L'importance d'une mémoire IA persistante pour les agents",[434,1441,1442],{},"À mesure que les assistants IA s'intègrent dans notre quotidien, nous sommes fréquemment confrontés au problème du contexte vide (blank context). Les décisions prises la semaine précédente sont oubliées, nous obligeant à ressaisir continuellement les détails de notre stack technologique et à redéfinir nos préférences utilisateur.",[434,1444,1445],{},"Plutôt que de repartir de zéro à chaque session, nous devons mettre en place un système de mémoire évolutif qui assimile continuellement les choix de l'utilisateur et élimine le besoin de répéter sans cesse le contexte.",[429,1447,1449],{"id":1448},"mémoire-ia-auto-hébergée-vs-systèmes-de-mémoire-intégrés","Mémoire IA auto-hébergée vs. Systèmes de mémoire intégrés",[434,1451,1452],{},"De nombreux agents IA intègrent désormais leur propre mémoire, mais nous n'utilisons rarement qu'un seul outil pour toutes nos tâches. Nous sollicitons Claude pour l'architecture et la conception d'un projet, Kimi pour le code, et ChatGPT pour la recherche de fond. Le contexte n'est pas partagé entre ces différents outils ; il reste cloisonné au sein de chaque agent.",[434,1454,1455,1456,1461,1462,1466],{},"Du point de vue de l'ingénierie logicielle, nous évitons les boîtes noires. Nous exigeons un système de mémoire IA observable, auditable et totalement sous notre contrôle. Le projet open source ",[484,1457,1460],{"href":1458,"rel":1459},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fsecond-brain-cloudflare\u002Ftree\u002Fmain",[488],"Second Brain"," (un fork de ",[484,1463,1464],{"href":1464,"rel":1465},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-cloudflare",[488],") offre une solution de mémoire persistante et auto-hébergée compatible avec le protocole MCP (Model Context Protocol). N'importe quel agent IA compatible (comme Claude, ChatGPT ou Kimi Code) peut ainsi exploiter et alimenter ce contexte unique y compris en local.",[429,1468,1470],{"id":1469},"comment-bâtir-un-second-brain-de-mémoire-ia-sur-cloudflare","Comment bâtir un Second Brain de mémoire IA sur Cloudflare",[434,1472,1473,1474,1477],{},"Le système de mémoire de Second Brain est déployé sur ",[441,1475,1476],{},"Cloudflare Workers",", offrant une infrastructure d'exécution serverless hautement distribuée à l'échelle mondiale. Cela garantit que la recherche de souvenirs (recall) et les autres opérations s'exécutent avec une latence minimale, totalement invisible dans la boucle de réflexion de l'IA.",[434,1479,1480,1481,1484,1485,1488,1489,1491],{},"La génération d'embeddings vectoriels repose sur le modèle dédié de ",[441,1482,1483],{},"Workers AI",". Ces embeddings sont ensuite stockés dans ",[441,1486,1487],{},"Cloudflare Vectorize",", une base de datos vectorielle globale performante. ",[441,1490,1487],{}," effectue une recherche de similarité cosinus (cosine similarity) pour identifier les souvenirs sémantiquement proches de la requête.",[434,1493,1494],{},"Second Brain intègre également des mécanismes de déduplication et de fusion intelligente. Tout contenu présentant une similarité inférieure à 85 % est enregistré ; au-delà, il est ignoré ou marqué comme doublon potentiel. Les textes de plus de 1 600 caractères sont découpés proprement selon les phrases ou les sauts de ligne, avec un chevauchement (overlap) de 200 caractères pour éviter toute perte de contexte. Chaque segment est ensuite vectorisé pour garantir des correspondances ultra-précises.",[434,1496,1497],{},"Les outils suivants sont exposés sous forme d'interfaces MCP exploitables par vos agents IA :",[478,1499,1500,1506,1512,1518,1524,1530,1536],{},[481,1501,1502,1505],{},[473,1503,1504],{},"remember"," : stocker des idées, des décisions, des préférences ou du contexte projet.",[481,1507,1508,1511],{},[473,1509,1510],{},"append"," : ajouter des précisions à un souvenir existant.",[481,1513,1514,1517],{},[473,1515,1516],{},"update"," : remplacer intégralement un souvenir.",[481,1519,1520,1523],{},[473,1521,1522],{},"recall"," : rechercher des souvenirs par leur sens sémantique plutôt que par des mots-clés exacts.",[481,1525,1526,1529],{},[473,1527,1528],{},"list_recent"," : lister les derniers souvenirs enregistrés.",[481,1531,1532,1535],{},[473,1533,1534],{},"forget"," : supprimer définitivement un souvenir.",[481,1537,1538,1541],{},[473,1539,1540],{},"link\u002Fconnections"," : lier des souvenirs associés entre eux (fonctionnalité de graphe v2).",[1153,1543,1545],{"id":1544},"configuration-de-second-brain-sur-cloudflare","Configuration de Second Brain sur Cloudflare",[1158,1547,1548,1565,1572,1579,1586,1593,1604,1611,1614,1621],{},[481,1549,890,1550,1553,1554,1559,1560,1564],{},[473,1551,1552],{},"Deploy to Cloudflare"," depuis la page du ",[484,1555,1558],{"href":1556,"rel":1557},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fsecond-brain-cloudflare",[488],"Github repo",". [[",[884,1561],{"alt":1562,"src":1563},"Page GitHub avec le bouton Deploy to Cloudflare mis en évidence","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fdeploy-to-cloudflare-button.webp","]]",[481,1566,1567,1568],{},"Remplissez le formulaire de création du Cloudflare Worker.\n",[884,1569],{"alt":1570,"src":1571},"Formulaire de configuration du déploiement de Cloudflare Workers","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-worker-deployment-form.webp",[481,1573,1574,1575],{},"Saisissez '384' pour Dimensions, sélectionnez 'cosine' pour Metric, puis cliquez sur le bouton Deploy.\n",[884,1576],{"alt":1577,"src":1578},"Écran de configuration de la création de base de données Cloudflare Vectorize","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-vectorize-configuration.webp",[481,1580,1581,1582],{},"Voici un aperçu de l'interface d'administration de Second Brain déployé sur Cloudflare Worker.\n",[884,1583],{"alt":1584,"src":1585},"Tableau de bord général du worker Second Brain déployé","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-worker-second-brain-overview.webp",[481,1587,1588,1589],{},"Accédez à l'onglet 'Settings', puis cliquez sur l'icône d'édition de la variable 'AUTH_TOKEN' afin de définir votre jeton de sécurité.\n",[884,1590],{"alt":1591,"src":1592},"Paramètres des variables de Cloudflare Worker mettant en évidence AUTH_TOKEN","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-worker-auth-token-settings.webp",[481,1594,1595,1596,1600],{},"Cliquez sur le lien 'Rotate' pour pouvoir saisir une nouvelle valeur. ",[884,1597],{"alt":1598,"src":1599},"Écran de modification et de rotation de la variable AUTH_TOKEN","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-worker-auth-token-rotate.webp",[884,1601],{"alt":1602,"src":1603},"Saisie de la chaîne aléatoire générée dans le champ de valeur AUTH_TOKEN","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-worker-auth-token-value-input.webp",[481,1605,1606,1607,1610],{},"Lancez la commande ",[473,1608,1609],{},"openssl rand -base64 32"," dans votre terminal macOS pour générer une clé d'accès aléatoire et collez-la dans le champ de saisie 'Value'.",[481,1612,1613],{},"Cliquez sur le bouton 'Deploy' pour appliquer et enregistrer la nouvelle valeur de 'AUTH_TOKEN'.",[481,1615,1616,1617],{},"Ouvrez l'URL de votre worker Second Brain dans votre navigateur web.\n",[884,1618],{"alt":1619,"src":1620},"Écran de connexion de l'interface web de Second Brain avec champ de saisie Bearer Token","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fsecond-brain-web-ui-login.webp",[481,1622,1623,1624,1627],{},"Saisissez le jeton 'AUTH_TOKEN' créé dans le champ ",[473,1625,1626],{},"Bearer token"," puis cliquez sur le bouton 'Connect' pour accéder à l'interface web (Web UI).",[1153,1629,1631],{"id":1630},"intégration-de-claude-desktop-via-mcp","Intégration de Claude Desktop via MCP",[1158,1633,1634,1641,1648],{},[481,1635,1636,1637],{},"Cliquez sur 'Customize' dans Claude Desktop.\n",[884,1638],{"alt":1639,"src":1640},"Interface de Claude Desktop pointant vers le bouton Customize","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-customize-button.webp",[481,1642,1643,1644],{},"Cliquez sur 'Developer' pour éditer manuellement le fichier de configuration des serveurs MCP.\n",[884,1645],{"alt":1646,"src":1647},"Menu des paramètres développeur de Claude Desktop pour accéder à la configuration MCP","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-developer-menu.webp",[481,1649,1650,1651,1654,1655,1054],{},"Ajoutez la configuration suivante à la section ",[473,1652,1653],{},"mcpServers"," de votre fichier ",[473,1656,1657],{},"claude_desktop_config.json",[498,1659,1663],{"className":1660,"code":1661,"language":1662,"meta":424,"style":424},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","    \"second-brain\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"mcp-remote\",\n        \"https:\u002F\u002F\u003Cyour-worker-url>\u002Fmcp\",\n        \"--header\",\n        \"Authorization: Bearer \u003Cyour-token>\"\n      ]\n    }\n","json",[473,1664,1665,1683,1707,1721,1733,1744,1755,1765,1770],{"__ignoreMap":424},[506,1666,1667,1670,1673,1676,1680],{"class":508,"line":509},[506,1668,1669],{"class":1076},"    \"",[506,1671,1672],{"class":1080},"second-brain",[506,1674,1675],{"class":1076},"\"",[506,1677,1679],{"class":1678},"sTEyZ",": ",[506,1681,1682],{"class":1076},"{\n",[506,1684,1685,1688,1692,1694,1696,1699,1702,1704],{"class":508,"line":515},[506,1686,1687],{"class":1076},"      \"",[506,1689,1691],{"class":1690},"spNyl","command",[506,1693,1675],{"class":1076},[506,1695,1077],{"class":1076},[506,1697,1698],{"class":1076}," \"",[506,1700,1701],{"class":1080},"npx",[506,1703,1675],{"class":1076},[506,1705,1706],{"class":1076},",\n",[506,1708,1709,1711,1714,1716,1718],{"class":508,"line":521},[506,1710,1687],{"class":1076},[506,1712,1713],{"class":1690},"args",[506,1715,1675],{"class":1076},[506,1717,1077],{"class":1076},[506,1719,1720],{"class":1076}," [\n",[506,1722,1723,1726,1729,1731],{"class":508,"line":527},[506,1724,1725],{"class":1076},"        \"",[506,1727,1728],{"class":1080},"mcp-remote",[506,1730,1675],{"class":1076},[506,1732,1706],{"class":1076},[506,1734,1735,1737,1740,1742],{"class":508,"line":533},[506,1736,1725],{"class":1076},[506,1738,1739],{"class":1080},"https:\u002F\u002F\u003Cyour-worker-url>\u002Fmcp",[506,1741,1675],{"class":1076},[506,1743,1706],{"class":1076},[506,1745,1746,1748,1751,1753],{"class":508,"line":539},[506,1747,1725],{"class":1076},[506,1749,1750],{"class":1080},"--header",[506,1752,1675],{"class":1076},[506,1754,1706],{"class":1076},[506,1756,1757,1759,1762],{"class":508,"line":545},[506,1758,1725],{"class":1076},[506,1760,1761],{"class":1080},"Authorization: Bearer \u003Cyour-token>",[506,1763,1764],{"class":1076},"\"\n",[506,1766,1767],{"class":508,"line":551},[506,1768,1769],{"class":1076},"      ]\n",[506,1771,1772],{"class":508,"line":557},[506,1773,1774],{"class":1076},"    }\n",[434,1776,1777,1781,1782],{},[884,1778],{"alt":1779,"src":1780},"JSON de configuration de Claude Desktop MCP contenant le serveur Second Brain","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-mcp-config-json.webp","\n4. Redémarrez Claude Desktop et vérifiez la liste des 'Local MCP servers'. Le statut doit indiquer 'running'.\n",[884,1783],{"alt":1784,"src":1785},"Claude Desktop affichant le statut actif pour le serveur Second Brain MCP","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-mcp-status-running.webp",[1153,1787,1789],{"id":1788},"intégration-de-claude-code-via-mcp","Intégration de Claude Code via MCP",[478,1791,1792],{},[481,1793,1794],{},"Exécutez la commande suivante pour ajouter le serveur MCP :",[498,1796,1800],{"className":1797,"code":1798,"language":1799,"meta":424,"style":424},"language-shell shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","claude mcp add --transport http second-brain https:\u002F\u002F\u003Cyour-worker-url>\u002Fmcp\n","shell",[473,1801,1802],{"__ignoreMap":424},[506,1803,1804,1807,1810,1813,1816,1819,1822,1825,1828,1831,1834,1837],{"class":508,"line":509},[506,1805,1806],{"class":1066},"claude",[506,1808,1809],{"class":1080}," mcp",[506,1811,1812],{"class":1080}," add",[506,1814,1815],{"class":1080}," --transport",[506,1817,1818],{"class":1080}," http",[506,1820,1821],{"class":1080}," second-brain",[506,1823,1824],{"class":1080}," https:\u002F\u002F",[506,1826,1827],{"class":1076},"\u003C",[506,1829,1830],{"class":1080},"your-worker-ur",[506,1832,1833],{"class":1678},"l",[506,1835,1836],{"class":1076},">",[506,1838,1839],{"class":1080},"\u002Fmcp\n",[478,1841,1842,1848],{},[481,1843,1844,1845,455],{},"Claude Code détectera automatiquement que le point de terminaison (endpoint) requiert une authentification OAuth et ouvrira une page de connexion dans votre navigateur pour valider votre ",[473,1846,1847],{},"AUTH_TOKEN",[481,1849,1850,1851,1854,1855,1858,1859,455],{},"Créez un fichier ",[473,1852,1853],{},"CLAUDE.md"," dans le répertoire ",[473,1856,1857],{},"~\u002F.claude"," et ajoutez-y les instructions détaillées issues de ",[484,1860,1863],{"href":1861,"rel":1862},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-cloudflare\u002Fblob\u002Fmain\u002FAI_Instructions\u002FCLAUDE_INSTRUCTIONS.md",[488],"CLAUDE_INSTRUCTIONS.md",[1153,1865,1867],{"id":1866},"intégration-de-gemini-cli-via-mcp","Intégration de Gemini CLI via MCP",[1158,1869,1870],{},[481,1871,1872],{},"Ajoutez la configuration de serveur MCP suivante à votre fichier '.\u002F.gemini\u002Fsettings.json' :",[498,1874,1876],{"className":1660,"code":1875,"language":1662,"meta":424,"style":424},"    \"second-brain\": {\n      \"httpUrl\": \"https:\u002F\u002F\u003Cyour-worker-url>\u002Fmcp\",\n      \"oauth\": {\n        \"enabled\": true\n      }\n    }\n",[473,1877,1878,1890,1909,1923,1937,1942],{"__ignoreMap":424},[506,1879,1880,1882,1884,1886,1888],{"class":508,"line":509},[506,1881,1669],{"class":1076},[506,1883,1672],{"class":1080},[506,1885,1675],{"class":1076},[506,1887,1679],{"class":1678},[506,1889,1682],{"class":1076},[506,1891,1892,1894,1897,1899,1901,1903,1905,1907],{"class":508,"line":515},[506,1893,1687],{"class":1076},[506,1895,1896],{"class":1690},"httpUrl",[506,1898,1675],{"class":1076},[506,1900,1077],{"class":1076},[506,1902,1698],{"class":1076},[506,1904,1739],{"class":1080},[506,1906,1675],{"class":1076},[506,1908,1706],{"class":1076},[506,1910,1911,1913,1916,1918,1920],{"class":508,"line":521},[506,1912,1687],{"class":1076},[506,1914,1915],{"class":1690},"oauth",[506,1917,1675],{"class":1076},[506,1919,1077],{"class":1076},[506,1921,1922],{"class":1076}," {\n",[506,1924,1925,1927,1930,1932,1934],{"class":508,"line":527},[506,1926,1725],{"class":1076},[506,1928,1929],{"class":1066},"enabled",[506,1931,1675],{"class":1076},[506,1933,1077],{"class":1076},[506,1935,1936],{"class":1076}," true\n",[506,1938,1939],{"class":508,"line":533},[506,1940,1941],{"class":1076},"      }\n",[506,1943,1944],{"class":508,"line":539},[506,1945,1774],{"class":1076},[1158,1947,1948],{"start":515},[481,1949,1950],{},"Démarrez l'interface Gemini CLI.",[1153,1952,1954],{"id":1953},"tester-second-brain-avec-les-agents-ia","Tester Second Brain avec les agents IA",[1158,1956,1957,1968,1982],{},[481,1958,1959,1960,1963,1964],{},"En commençant par configurer une simple palette de marque dans ",[441,1961,1962],{},"Claude Desktop",", Second Brain n'est pas sollicité par défaut.\n",[884,1965],{"alt":1966,"src":1967},"Premier test dans Claude Desktop sans la couche de mémoire Second Brain active","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-first-run-brand-palette.webp",[481,1969,1970,1971,1974,1975,1977,1978],{},"En utilisant le mot-clé générique 'remember', seuls les outils locaux ",[473,1972,1973],{},"memory_user-edits"," de ",[441,1976,1962],{}," s'exécutent, ignorant la couche distante de Second Brain.\n",[884,1979],{"alt":1980,"src":1981},"Claude Desktop basculant vers les modifications locales intégrées au lieu de Second Brain","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-remember-built-in-tool-fallback.webp",[481,1983,1984,1985,1988],{},"En soumettant l'instruction suivante à ",[441,1986,1987],{},"Claude Code",", le serveur Second Brain est immédiatement appelé :",[498,1990,1995],{"className":1991,"code":1993,"language":1994},[1992],"language-text","Remember Our brand palette uses `#1a1a2e` as primary, `#16213e` as secondary, and `#e94560` as accent. Never use pure black.\"\n","text",[473,1996,1993],{"__ignoreMap":424},[434,1998,1999,2003,2004,2007,2008,2012,2013,2016,2017,2019,2020,2024,2025,2028,2029,2012,2033],{},[884,2000],{"alt":2001,"src":2002},"Fenêtre de terminal de Claude Code affichant le déclenchement réussi de Second Brain MCP","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-code-second-brain-mcp-called.webp","\n4. Nous pouvons instantanément vérifier l'enregistrement des codes couleurs au sein de la base ",[441,2005,2006],{},"Second Brain sur Cloudflare"," :\n",[884,2009],{"alt":2010,"src":2011},"Vérification des codes couleur de marque enregistrés dans la base de données de Second Brain","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fsecond-brain-web-ui-color-verification.webp","\n- ",[1191,2014,2015],{},"Si Claude Code a réagi correctement, c'est parce que son fichier de directives CLAUDE_INSTRUCTIONS.md contient explicitement les termes liés à 'Second Brain'.","\n5. Pour obtenir le même résultat dans ",[441,2018,1962],{},", vous devez mentionner explicitement 'Second Brain' dans vos prompts pour forcer l'écriture ou la lecture de cette couche mémoire.\n",[884,2021],{"alt":2022,"src":2023},"Déclenchement de Second Brain dans Claude Desktop en mentionnant explicitement les mots-clés","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-second-brain-explicit-trigger.webp","\n6. De la même manière, le mot-clé 'Second Brain' doit être mentionné dans vos échanges avec le ",[441,2026,2027],{},"Gemini CLI"," pour déclencher l'appel MCP associé.\n",[884,2030],{"alt":2031,"src":2032},"Fenêtre de terminal de Gemini CLI montrant des appels réussis vers Second Brain MCP","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fgemini-cli-second-brain-trigger.webp",[1191,2034,2035],{},"L'ajout de directives adaptées dans votre fichier GEMINI.md (similaires à celles de CLAUDE_INSTRUCTIONS.md) permettra de solliciter Second Brain de manière totalement transparente.",[1153,2037,2039],{"id":2038},"extensions-pour-navigateurs-web","Extensions pour navigateurs web",[478,2041,2042,2045],{},[481,2043,2044],{},"Des extensions officielles sont disponibles pour Google Chrome, Mozilla Firefox et Microsoft Edge.",[481,2046,2047,2048],{},"Elles permettent de :\n",[478,2049,2050,2056,2062],{},[481,2051,2052,2055],{},[441,2053,2054],{},"Capturer la page actuelle"," — sauvegarde le titre et l'adresse URL directement dans votre Second Brain.",[481,2057,2058,2061],{},[441,2059,2060],{},"Capturer un extrait de texte"," — sélectionnez n'importe quelle ligne de texte sur une page avant de cliquer sur l'extension pour l'enregistrer avec les métadonnées de la page.",[481,2063,2064,2067,2068,2071],{},[441,2065,2066],{},"Ajouter une note libre"," — saisissez du contexte ou des ",[473,2069,2070],{},"#hashtags"," directement depuis la popup de l'extension ; les tags sont automatiquement extraits et catégorisés.",[1153,2073,2075],{"id":2074},"synchroniser-ses-connaissances-personnelles-avec-le-plugin-obsidian","Synchroniser ses connaissances personnelles avec le plugin Obsidian",[478,2077,2078,2081],{},[481,2079,2080],{},"Un plugin Obsidian dédié permet de synchroniser de manière bidirectionnelle les notes de votre coffre (Vault) local vers votre Second Brain hébergé sur Cloudflare.",[481,2082,2083],{},"Vous pouvez choisir de ne synchroniser que les notes associées à un tag spécifique.",[2085,2086,2088],"h4",{"id":2087},"installer-le-plugin-obsidian","Installer le plugin Obsidian",[1158,2090,2091,2098,2105,2112],{},[481,2092,2093,2094],{},"Ouvrez Obsidian → Settings → Community Plugins\n",[884,2095],{"alt":2096,"src":2097},"Panneau de configuration d'Obsidian naviguant vers la section Community Plugins","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-settings-community-plugins.webp",[481,2099,2100,2101],{},"Cliquez sur le bouton 'Browse'.\n",[884,2102],{"alt":2103,"src":2104},"Page de recherche des plugins d'Obsidian affichant le bouton Browse","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-community-plugins-browse.webp",[481,2106,2107,2108],{},"Recherchez 'Second Brain Sync'.\n",[884,2109],{"alt":2110,"src":2111},"Recherche du plugin Second Brain Sync dans la bibliothèque d'extensions d'Obsidian","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-community-plugins-search-second-brain.webp",[481,2113,2114,2115],{},"Cliquez sur 'Install' puis sur 'Enable'.\n",[884,2116],{"alt":2117,"src":2118},"Installation et activation du plugin Second Brain Sync dans Obsidian","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-plugin-install-and-enable.webp",[2085,2120,2122],{"id":2121},"configurer-le-plugin-obsidian","Configurer le plugin Obsidian",[1158,2124,2125,2128,2135,2142,2149,2159],{},[481,2126,2127],{},"Ouvrez Obsidian → Settings → Second Brain Sync",[481,2129,2130,2131],{},"Renseignez l'adresse de votre Worker ('URL') et votre jeton de sécurité ('Auth token').\n",[884,2132],{"alt":2133,"src":2134},"Saisie de l'URL du Worker et du jeton d'autorisation dans les paramètres d'Obsidian","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-plugin-configuration-credentials.webp",[481,2136,2137,2138],{},"Cliquez sur le bouton 'Test' pour valider la bonne communication avec votre serveur.\n",[884,2139],{"alt":2140,"src":2141},"Test de connexion réussi du plugin Obsidian vers la base de données","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-plugin-connection-test-success.webp",[481,2143,2144,2145],{},"Ajustez les préférences de synchronisation. Définissez le tag de déclenchement ('Sync tag') et cochez 'Auto-sync on save'.\n",[884,2146],{"alt":2147,"src":2148},"Configuration du Sync Tag et activation de l'auto-synchronisation à l'enregistrement dans Obsidian","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-plugin-sync-behavior-settings.webp",[481,2150,2151,2152,2154,2155],{},"Créez une nouvelle note dans Obsidian et associez-y le tag configuré (par exemple ",[473,2153,1672],{},").\n",[884,2156],{"alt":2157,"src":2158},"Création d'une nouvelle note dans Obsidian tagguée avec second-brain pour la synchronisation","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-note-with-sync-tag.webp",[481,2160,2161,2162],{},"Dès l'enregistrement, la note est instantanément synchronisée avec votre instance Cloudflare.\n",[884,2163],{"alt":2164,"src":2165},"Vérification de la note Obsidian synchronisée avec succès dans l'interface web de Second Brain","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fsecond-brain-web-ui-synced-note-verification.webp",[429,2167,950],{"id":949},[434,2169,2170],{},"Second Brain offre une réponse open source élégante à l'une de nos plus grandes frustrations avec les IA : l'absence de mémoire à long terme. En s'appuyant sur l'infrastructure robuste de Cloudflare, il déploie une couche de mémoire sémantique auto-hébergée, globale et à très faible latence. Grâce aux interfaces MCP, cette base de connaissances devient nativement transportable entre tous vos assistants virtuels.",[434,2172,2173],{},"L'intégration d'Obsidian pousse l'expérience encore plus loin en jetant un pont entre la prise de notes structurée et l'exécution d'agents. Vos notes personnelles se métamorphosent ainsi en un contexte exploitable par l'IA à la demande.",[434,2175,2176],{},"En fusionnant auto-hébergement, recherche vectorielle sémantique et protocoles ouverts (MCP), Second Brain jette les bases concrètes de ce que doit être un véritable écosystème d'agents IA au service de l'utilisateur.",[429,2178,2179],{"id":956},"Références :",[478,2181,2182,2188,2194,2201,2208],{},[481,2183,2184],{},[484,2185,2186],{"href":2186,"rel":2187},"https:\u002F\u002Fwww.thesecondbrain.dev\u002F",[488],[481,2189,2190],{},[484,2191,2192],{"href":2192,"rel":2193},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-cloudflare\u002Fwiki\u002FHow-It-Works",[488],[481,2195,2196],{},[484,2197,2200],{"href":2198,"rel":2199},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-cloudflare\u002Fwiki\u002FConnect-to-AI-Clients",[488],"Connect to AI Clients",[481,2202,2203],{},[484,2204,2207],{"href":2205,"rel":2206},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-cloudflare\u002Fwiki\u002FObsidian-Plugin",[488],"Second Brain Obsidian Plugin",[481,2209,2210],{},[484,2211,2212],{"href":2212,"rel":2213},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-obsidian-plugin",[488],[989,2215,2216],{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":424,"searchDepth":515,"depth":521,"links":2218},[2219,2220,2221,2233,2234],{"id":1438,"depth":515,"text":1439},{"id":1448,"depth":515,"text":1449},{"id":1469,"depth":515,"text":1470,"children":2222},[2223,2224,2225,2226,2227,2228,2229],{"id":1544,"depth":521,"text":1545},{"id":1630,"depth":521,"text":1631},{"id":1788,"depth":521,"text":1789},{"id":1866,"depth":521,"text":1867},{"id":1953,"depth":521,"text":1954},{"id":2038,"depth":521,"text":2039},{"id":2074,"depth":521,"text":2075,"children":2230},[2231,2232],{"id":2087,"depth":527,"text":2088},{"id":2121,"depth":527,"text":2122},{"id":949,"depth":515,"text":950},{"id":956,"depth":515,"text":2179},[1001,1414],"2026-08-07","Découvrez comment créer une mémoire IA persistante et auto-hébergée sur Cloudflare avec Second Brain et MCP. Partagez votre contexte entre Claude et Obsidian.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002FFR-Use-Cloudflare-as-AI-memory.webp","Un système de mémoire IA persistant et auto-hébergé sur Cloudflare Workers et Vectorize avec support MCP et synchronisation Obsidian.",{"schemaOrg":2241,"robots":1012,"sitemap":2245},[2242],{"@type":2243,"headline":2244,"description":2237},"TechArticle","Mémoire IA persistante auto-hébergée avec Cloudflare & MCP",{"lastmod":2236},{"title":2244,"description":2237,"ogTitle":1433,"ogDescription":2237,"twitterTitle":1433,"twitterDescription":2237},"fr\u002Farticle\u002Fuse-cloudflare-as-ai-memory",[2249,2250,2251,1460,2252],"Cloudflare","MCP","Mémoire IA","Obsidian","ueDwSZvKuSqGS2apgI6d6XyxbLzPRakfdalGtokWIRs",[2255,2509,3091],{"id":2256,"title":2257,"author":1020,"body":2258,"category":2495,"date":2496,"description":2497,"extension":1004,"image":2498,"imageAlt":2499,"isPublished":1007,"meta":2500,"minRead":551,"navigation":1007,"path":371,"seo":2505,"stem":2506,"tags":2507,"updatedAt":1020,"__hash__":2508},"article\u002Ffr\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare.md","Sécurisez votre coffre NodeWarden via Cloudflare",{"type":426,"value":2259,"toc":2486},[2260,2263,2266,2280,2284,2291,2294,2298,2301,2305,2335,2339,2342,2409,2413,2416,2479,2483],[434,2261,2262],{},"Dès l'instant où votre instance NodeWarden est exposée publiquement sur Internet, elle commence à attirer des milliers de bots automatisés qui scannent les vulnérabilités 24h\u002F24 et 7j\u002F7. Pour protéger vos données sensibles, vous devez verrouiller votre instance NodeWarden au maximum.",[434,2264,2265],{},"Pour sécuriser votre instance NodeWarden, vous pouvez utiliser l'une de ces deux fonctionnalités de Cloudflare :",[478,2267,2268,2274],{},[481,2269,2270,2273],{},[441,2271,2272],{},"Cloudflare IP Access Rules (Règles d'accès IP) :"," Permet de bloquer, d'imposer un défi de sécurité (challenge) ou d'autoriser le trafic en fonction d'adresses IP ou de pays spécifiques.",[481,2275,2276,2279],{},[441,2277,2278],{},"Cloudflare Zero Trust (Recommandé) :"," Agit comme une passerelle sécurisée qui rend votre instance NodeWarden complètement invisible au public, ne laissant passer que les utilisateurs autorisés.",[2085,2281,2283],{"id":2282},"pourquoi-nous-recommandons-cloudflare-zero-trust","Pourquoi nous recommandons Cloudflare Zero Trust",[434,2285,2286,2287,2290],{},"Nous vous conseillons vivement d'utiliser Cloudflare Zero Trust, car les règles d'accès IP sont liées à des adresses IP ou à des pays. Cela signifie que vous devez mettre à jour manuellement vos règles à chaque fois que vous voyagez ou si vous avez une IP dynamique. Cloudflare Zero Trust, en revanche, repose sur votre ",[441,2288,2289],{},"identité"," et non sur votre emplacement géographique — vous offrant un accès à NodeWarden à la fois transparent et sécurisé.",[2292,2293],"hr",{},[429,2295,2297],{"id":2296},"guide-de-configuration","Guide de Configuration",[434,2299,2300],{},"Suivez ces étapes pour configurer Cloudflare Zero Trust pour NodeWarden.",[1153,2302,2304],{"id":2303},"phase-1-pour-commencer","Phase 1 : Pour commencer",[1158,2306,2307,2314,2321,2328],{},[481,2308,2309,2310],{},"Dans votre tableau de bord Cloudflare, cliquez sur 'Zero Trust' dans le menu de gauche.\n",[884,2311],{"alt":2312,"src":2313},"Barre latérale du tableau de bord Cloudflare affichant l'option Zero Trust sélectionnée dans le menu de navigation.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-dashboard-zero-trust-sidebar.webp",[481,2315,2316,2317],{},"Cliquez sur 'Access controls' puis sur 'Applications'.\n",[884,2318],{"alt":2319,"src":2320},"Menu de navigation Cloudflare Zero Trust avec la section Contrôles d'accès développée.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-zero-trust-access-controls-menu.webp",[481,2322,2323,2324],{},"Il se peut qu'on vous demande de choisir un forfait ('Choose a plan').\n",[884,2325],{"alt":2326,"src":2327},"Écran de configuration du compte Cloudflare Zero Trust invitant l'utilisateur à choisir un forfait d'abonnement.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-zero-trust-choose-plan-setup.webp",[481,2329,2330,2331],{},"Cliquez sur le bouton 'Choose a plan' et choisissez 'Zero Trust Free'.\n",[884,2332],{"alt":2333,"src":2334},"La page des détails du forfait Zero Trust Free sur Cloudflare, mettant en évidence le bouton Sélectionner le forfait.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-zero-trust-free-plan-selection.webp",[1153,2336,2338],{"id":2337},"phase-2-sécurisez-votre-interface-web","Phase 2 : Sécurisez votre interface web",[434,2340,2341],{},"Tout d'abord, nous allons créer une application pour protéger le tableau de bord web de NodeWarden.",[1158,2343,2344,2351,2358,2365,2372,2379,2386,2389,2396,2399],{},[481,2345,2346,2347],{},"Cliquez sur 'Create new application' pour créer la première application.\n",[884,2348],{"alt":2349,"src":2350},"Tableau de bord des applications Cloudflare Access présentant le bouton Créer une nouvelle application.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-create-new-application.webp",[481,2352,2353,2354],{},"Choisissez 'Self-hosted and private'.\n",[884,2355],{"alt":2356,"src":2357},"La fenêtre modale Ajouter une application dans Cloudflare Access avec le type d'application Auto-hébergée et privée sélectionné.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-add-self-hosted-application.webp",[481,2359,2360,2361],{},"Entrez le nom de domaine de NodeWarden.\n",[884,2362],{"alt":2363,"src":2364},"Écran de configuration de l'application Cloudflare Access affichant le nom d'hôte public défini sur warden.techvoyage.dev.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-application-public-hostname.webp",[481,2366,2367,2368],{},"Cliquez sur 'Create new policy' pour créer une politique.\n",[884,2369],{"alt":2370,"src":2371},"Page des politiques Cloudflare Access indiquant qu'aucune politique n'a été ajoutée et un bouton pour créer une nouvelle politique.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-no-policies-create-button.webp",[481,2373,2374,2375],{},"Sélectionnez 'Emails' et entrez un e-mail sous 'Policy rules'.\n",[884,2376],{"alt":2377,"src":2378},"Écran de configuration de la règle de politique Cloudflare Access avec une adresse e-mail spécifiée comme critère d'inclusion.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-rule-email.webp",[481,2380,2381,2382],{},"Entrez un nom et sélectionnez 'Allow' sous 'Policy details'.\n",[884,2383],{"alt":2384,"src":2385},"Écran des détails de la politique Cloudflare Access affichant le nom de la politique NodeWarden-Web et l'action définie sur Autoriser.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-details-allow.webp",[481,2387,2388],{},"Cliquez sur 'Save Policy' pour créer la politique.",[481,2390,2391,2392],{},"Entrez un nom et sélectionnez '1 month' dans la section 'Details'.\n",[884,2393],{"alt":2394,"src":2395},"Résumé de la configuration finale pour une application Cloudflare Access nommée NodeWarden-Web avec une durée de session d'un mois.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-application-final-details.webp",[481,2397,2398],{},"Cliquez sur 'Create' pour créer l'application.",[481,2400,2401,2404,2405],{},[441,2402,2403],{},"Testez-le :"," Ouvrez le domaine dans le navigateur web, vous verrez 'Cloudflare Access' vous demander une adresse e-mail.\n",[884,2406],{"alt":2407,"src":2408},"Un aperçu de l'écran de connexion Cloudflare Access pour NodeWarden-Web, demandant une adresse e-mail.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-login-screen-preview.webp",[1153,2410,2412],{"id":2411},"phase-3-autoriser-la-synchronisation-des-clients-bitwarden-contournement-de-lapi","Phase 3 : Autoriser la synchronisation des clients BitWarden (Contournement de l'API)",[434,2414,2415],{},"Les applications de bureau et mobiles BitWarden ne peuvent pas traiter l'écran de connexion par e-mail de Cloudflare. Nous devons donc créer une deuxième application permettant au trafic de contourner (bypass) cet écran de connexion, spécifiquement pour la synchronisation de l'API.",[1158,2417,2418,2428,2443,2448,2455,2462,2465,2472],{},[481,2419,2420,2421,2424,2425,455],{},"Retournez dans Applications et cliquez sur ",[441,2422,2423],{},"Create new application",", en choisissant à nouveau ",[441,2426,2427],{},"Self-hosted and private",[481,2429,2430,2431,2434,2435,2438,2439],{},"Entrez 'api\u002F",[1191,2432,2433],{},"', 'identity\u002F","', 'notifications\u002F",[1191,2436,2437],{},"' et 'icons\u002F","' dans les Destinations.\n",[884,2440],{"alt":2441,"src":2442},"Configuration de plusieurs noms d'hôte publics pour le contournement de l'API dans Cloudflare Access, incluant les chemins api, identity, notifications et icons.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-api-bypass-destinations.webp",[481,2444,2445,2446],{},"Cliquez sur 'Create new policy' pour créer la politique.\n",[884,2447],{"alt":2370,"src":2371},[481,2449,2450,2451],{},"Sélectionnez 'Everyone' sous 'Policy rules'.\n",[884,2452],{"alt":2453,"src":2454},"Configuration de la règle de politique Cloudflare Access avec Tout le monde sélectionné pour permettre un accès large à des chemins spécifiques.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-rule-everyone.webp",[481,2456,2457,2458],{},"Entrez un nom et sélectionnez 'Bypass' sous 'Policy details'.\n",[884,2459],{"alt":2460,"src":2461},"Détails de la politique Cloudflare Access pour NodeWarden-API avec l'action définie sur Contourner.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-details-bypass.webp",[481,2463,2464],{},"Cliquez sur 'Save Policy' pour sauvegarder.",[481,2466,2467,2468],{},"Entrez un nom et sélectionnez '1 month' pour 'Session Duration'.\n",[884,2469],{"alt":2470,"src":2471},"Écran de configuration finale pour l'application NodeWarden-API dans Cloudflare Access.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-api-application-final-details.webp",[481,2473,2474,2475],{},"Vous devriez maintenant avoir 2 applications créées.\n",[884,2476],{"alt":2477,"src":2478},"Le tableau de bord des applications Cloudflare Access affichant les deux applications Web et API créées avec succès.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-applications-list-final.webp",[429,2480,2482],{"id":2481},"le-mot-de-la-fin","Le mot de la fin",[434,2484,2485],{},"N'oubliez pas que Cloudflare n'est que votre bouclier extérieur. Pour conserver un coffre-fort (vault) véritablement sécurisé, assurez-vous de toujours utiliser un mot de passe maître robuste, d'activer l'authentification à double facteur (2FA) et de bien protéger votre compte Cloudflare.",{"title":424,"searchDepth":515,"depth":521,"links":2487},[2488,2489,2494],{"id":2282,"depth":527,"text":2283},{"id":2296,"depth":515,"text":2297,"children":2490},[2491,2492,2493],{"id":2303,"depth":521,"text":2304},{"id":2337,"depth":521,"text":2338},{"id":2411,"depth":521,"text":2412},{"id":2481,"depth":515,"text":2482},[1000,1001],"2026-05-27","Dès l'instant où votre instance NodeWarden est exposée publiquement sur Internet, elle commence à attirer des milliers de bots automatisés qui scannent les vulnérabilités 24h\u002F24 et 7j\u002F7.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fsecuriser-nodewarden-integration-cloudflare-guide.webp","Vignette d'un guide étape par étape pour sécuriser un coffre-fort NodeWarden avec l'intégration Cloudflare, illustrant un coffre numérique cadenassé et une baie de serveurs sécurisée.",{"schemaOrg":2501,"robots":1012,"sitemap":2504},[2502],{"@type":2243,"headline":2503,"description":2497},"Arrêtez d'exposer votre coffre-fort : Sécurisez NodeWarden avec Cloudflare",{"lastmod":2496},{"title":2503,"description":2497,"ogTitle":2503,"ogDescription":2497,"twitterTitle":2503,"twitterDescription":2497},"fr\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",[],"x38CQRDbgqbw7quR-hfyfj7bKLNktMFR_X3b2HISUII",{"id":2510,"title":2511,"author":1020,"body":2512,"category":3077,"date":3078,"description":3079,"extension":1004,"image":3080,"imageAlt":3081,"isPublished":1007,"meta":3082,"minRead":551,"navigation":1007,"path":387,"seo":3087,"stem":3088,"tags":3089,"updatedAt":1020,"__hash__":3090},"article\u002Ffr\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare.md","Auto-héberger un coffre de mots de passe type BitWarden",{"type":426,"value":2513,"toc":3062},[2514,2521,2525,2715,2719,2735,2739,2769,2773,2803,2807,2834,2838,2882,2886,2922,2926,2929,2933,2962,2966,2989,2993,2996,3013,3018,3021,3024,3038,3042,3055,3057],[434,2515,2516,2517,2520],{},"Vos mots de passe constituent votre propriété numérique la plus critique. Les garder en sécurité signifie les garder entre vos propres mains. En auto-hébergeant votre gestionnaire de mots de passe, vous prenez le contrôle de votre propre sécurité. ",[441,2518,2519],{},"Bitwarden","​ est largement considéré comme l'un des gestionnaires de mots de passe les plus fiables, et son code source est disponible sous la licence AGPL-3.0. NodeWarden est un serveur non officiel compatible avec Bitwarden, écrit en Typescript, qui peut être déployé gratuitement sur Cloudflare.",[429,2522,2524],{"id":2523},"comparaison-des-fonctionnalités-avec-le-serveur-bitwarden-officiel","Comparaison des fonctionnalités avec le serveur Bitwarden officiel",[2526,2527,2528,2546],"table",{},[2529,2530,2531],"thead",{},[2532,2533,2534,2538,2540,2543],"tr",{},[2535,2536,2537],"th",{},"Fonctionnalité",[2535,2539,2519],{},[2535,2541,2542],{},"NodeWarden",[2535,2544,2545],{},"Remarques",[2547,2548,2549,2566,2581,2593,2605,2620,2637,2652,2667,2679,2691,2704],"tbody",{},[2532,2550,2551,2555,2558,2560],{},[2552,2553,2554],"td",{},"Coffre-fort Web (Web Vault)",[2552,2556,2557],{},"✅",[2552,2559,2557],{},[2552,2561,2562,2565],{},[441,2563,2564],{},"Interface originale du coffre-fort web","​",[2532,2567,2568,2574,2576,2578],{},[2552,2569,2570,2571],{},"Synchronisation complète ",[473,2572,2573],{},"\u002Fapi\u002Fsync",[2552,2575,2557],{},[2552,2577,2557],{},[2552,2579,2580],{},"Compatibilité optimisée pour les clients officiels",[2532,2582,2583,2586,2588,2590],{},[2552,2584,2585],{},"Upload \u002F téléchargement de pièces jointes",[2552,2587,2557],{},[2552,2589,2557],{},[2552,2591,2592],{},"Cloudflare R2 ou KV",[2532,2594,2595,2598,2600,2602],{},[2552,2596,2597],{},"Send (Envoi)",[2552,2599,2557],{},[2552,2601,2557],{},[2552,2603,2604],{},"Supporte l'envoi de texte et de fichiers",[2532,2606,2607,2610,2612,2614],{},[2552,2608,2609],{},"Import \u002F Export",[2552,2611,2557],{},[2552,2613,2557],{},[2552,2615,2616,2617,2565],{},"Supporte l'importation de Bitwarden JSON \u002F CSV \u002F ",[441,2618,2619],{},"ZIP avec pièces jointes",[2532,2621,2622,2627,2630,2632],{},[2552,2623,2624,2565],{},[441,2625,2626],{},"Centre de sauvegarde cloud",[2552,2628,2629],{},"❌",[2552,2631,2557],{},[2552,2633,2634,2565],{},[441,2635,2636],{},"Sauvegarde planifiée vers WebDAV \u002F E3",[2532,2638,2639,2642,2645,2647],{},[2552,2640,2641],{},"Indice de mot de passe (web)",[2552,2643,2644],{},"⚠️ Limité",[2552,2646,2557],{},[2552,2648,2649,2565],{},[441,2650,2651],{},"Aucun email requis",[2532,2653,2654,2657,2659,2661],{},[2552,2655,2656],{},"TOTP \u002F Steam TOTP",[2552,2658,2557],{},[2552,2660,2557],{},[2552,2662,2663,2664],{},"Inclut le support ",[473,2665,2666],{},"steam:\u002F\u002F",[2532,2668,2669,2672,2674,2676],{},[2552,2670,2671],{},"Multi-utilisateurs",[2552,2673,2557],{},[2552,2675,2557],{},[2552,2677,2678],{},"Inscription sur invitation",[2532,2680,2681,2684,2686,2688],{},[2552,2682,2683],{},"Organisations \u002F Collections \u002F Rôles",[2552,2685,2557],{},[2552,2687,2629],{},[2552,2689,2690],{},"Non implémenté",[2532,2692,2693,2696,2698,2701],{},[2552,2694,2695],{},"Connexion 2FA",[2552,2697,2557],{},[2552,2699,2700],{},"⚠️ Partiel",[2552,2702,2703],{},"Actuellement seulement TOTP au niveau de l'utilisateur",[2532,2705,2706,2709,2711,2713],{},[2552,2707,2708],{},"SSO \u002F SCIM \u002F Annuaire d'entreprise",[2552,2710,2557],{},[2552,2712,2629],{},[2552,2714,2690],{},[429,2716,2718],{"id":2717},"ce-dont-nous-avons-besoin","Ce dont nous avons besoin :",[1158,2720,2721,2726,2732],{},[481,2722,2723],{},[441,2724,2725],{},"Un compte GitHub",[481,2727,2728,2731],{},[441,2729,2730],{},"Un compte Cloudflare","​ (Gratuit) avec le stockage R2 activé.",[481,2733,2734],{},"_Optionnel :_Un nom de domaine personnalisé géré dans Cloudflare.",[429,2736,2738],{"id":2737},"phase-1-préparer-le-code","Phase 1 : Préparer le code",[1158,2740,2741,2760],{},[481,2742,2743,2744,2748,2749,2753,2754,2756],{},"Forkez le dépôt NodeWarden depuis ",[484,2745,2746],{"href":2746,"rel":2747},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fnodewarden",[488]," depuis le dépôt original ",[484,2750,2751],{"href":2751,"rel":2752},"https:\u002F\u002Fgithub.com\u002Fshuaiplus\u002Fnodewarden",[488]," GitHub.",[881,2755],{},[884,2757],{"alt":2758,"src":2759},"Créer un fork du dépôt NodeWarden sur GitHub","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Ffork-nodewarden-repo.webp",[481,2761,2762,2763,2765],{},"Activez le workflow « Sync Upstream ».",[881,2764],{},[884,2766],{"alt":2767,"src":2768},"Activer le workflow Sync Upstream dans GitHub Actions","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fenable-sync-upstream.webp",[429,2770,2772],{"id":2771},"phase-2-déployer-sur-cloudflare","Phase 2 : Déployer sur Cloudflare",[1158,2774,2775,2784,2797],{},[481,2776,2777,2778,2780],{},"Créez une application Worker dans Cloudflare.",[881,2779],{},[884,2781],{"alt":2782,"src":2783},"Création d'une nouvelle application Worker dans le tableau de bord Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcreate-cloudflare-worker.webp",[481,2785,2786,2787,2789,2793],{},"Sélectionnez « Continue with GitHub » pour déployer l'application.",[881,2788],{},[884,2790],{"alt":2791,"src":2792},"Déploiement de l'application NodeWarden en se connectant à GitHub","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fdeploy-github-repo.webp",[884,2794],{"alt":2795,"src":2796},"État d'avancement de la construction et du déploiement du Worker Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-deploy-status.webp",[481,2798,2799,2800,455],{},"Attendez quelques instants que Cloudflare compile et déploie votre application. Il vous fournira une URL par défaut de type ",[473,2801,2802],{},"worker.dev",[1153,2804,2806],{"id":2805},"optionnel-ajouter-un-domaine-personnalisé","(Optionnel) Ajouter un domaine personnalisé :",[478,2808,2809,2815,2821],{},[481,2810,2811,2812,455],{},"Dans les paramètres de votre Cloudflare Worker, allez dans l'onglet ",[441,2813,2814],{},"Settings",[481,2816,2817,2818,455],{},"Cliquez sur ",[441,2819,2820],{},"+ Add",[481,2822,2823,2824,2826,2830],{},"Tapez le domaine de votre choix et suivez les instructions.",[881,2825],{},[884,2827],{"alt":2828,"src":2829},"Accès aux paramètres de domaine personnalisé dans Cloudflare Worker","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fworker-settings-custom-domain.webp",[884,2831],{"alt":2832,"src":2833},"Ajout d'un domaine personnalisé au Worker Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fadd-custom-domain.webp",[429,2835,2837],{"id":2836},"phase-3-sécuriser-votre-serveur-le-secret-jwt","Phase 3 : Sécuriser votre serveur (Le secret JWT)",[1158,2839,2840,2843,2856,2876],{},[481,2841,2842],{},"Allez sur votre navigateur web et entrez votre nom de domaine personnalisé ou le domaine 'worker.dev' généré.",[481,2844,2845,2846,2849,2850,2852],{},"Le message '",[441,2847,2848],{},"JWT_SECRET is missing","' s'affichera.",[881,2851],{},[884,2853],{"alt":2854,"src":2855},"Message d'erreur JWT_SECRET is missing sur le serveur NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fjwt-secret-missing-error.webp",[481,2857,2858,2859,2861,2862,2865,2866,2868,2872],{},"Copiez la clé secrète générée et retournez dans l'onglet Settings (Paramètres) de votre NodeWarden Worker, puis cliquez sur le bouton '",[441,2860,2820],{},"' dans la section '",[441,2863,2864],{},"Variables and Secrets","'.",[881,2867],{},[884,2869],{"alt":2870,"src":2871},"Section Variables et Secrets dans les paramètres du Worker Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fworker-variables-secrets.webp",[884,2873],{"alt":2874,"src":2875},"Ajout du secret JWT généré aux variables du Worker Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fadd-jwt-secret.webp",[481,2877,2878,2879,2865],{},"Collez le secret généré et cliquez sur le bouton '",[441,2880,2881],{},"Deploy \u002F Save",[429,2883,2885],{"id":2884},"phase-4-créer-votre-compte-administrateur","Phase 4 : Créer votre compte Administrateur",[1158,2887,2888,2897,2910,2919],{},[481,2889,2890,2891,2893],{},"Retournez sur votre navigateur web et rafraîchissez la page, vous obtiendrez la page de connexion suivante.",[881,2892],{},[884,2894],{"alt":2895,"src":2896},"Page de connexion du serveur NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fnodewarden-login.webp",[481,2898,2899,2900,2903,2904,2906],{},"Cliquez sur '",[441,2901,2902],{},"Create Account","' pour créer le compte admin.",[881,2905],{},[884,2907],{"alt":2908,"src":2909},"Cliquer sur le bouton Create Account sur la page de connexion NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcreate-account-button.webp",[481,2911,2912,2913,2915],{},"Connectez-vous avec le compte admin créé pour accéder au tableau de bord (Dashboard).",[881,2914],{},[884,2916],{"alt":2917,"src":2918},"Aperçu du tableau de bord d'administration NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fnodewarden-dashboard.webp",[481,2920,2921],{},"Le serveur est maintenant déployé et fonctionnel. Nous allons commencer à configurer les clients Bitwarden.",[429,2923,2925],{"id":2924},"phase-5-connecter-vos-appareils","Phase 5 : Connecter vos appareils",[434,2927,2928],{},"Vous pouvez utiliser les applications officielles Bitwarden sur tous vos appareils.",[2085,2930,2932],{"id":2931},"extension-chrome","Extension Chrome",[1158,2934,2935,2938,2941,2950,2959],{},[481,2936,2937],{},"Installez l'extension Bitwarden pour Chrome.",[481,2939,2940],{},"Ouvrez l'extension.",[481,2942,2943,2944,2946],{},"Cliquez sur le lien à côté de 'Accessing:' au bas de la fenêtre contextuelle.",[881,2945],{},[884,2947],{"alt":2948,"src":2949},"Sélection de l'option auto-hébergé dans l'extension Bitwarden pour Chrome","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-extension-self-hosted.webp",[481,2951,2952,2953,2955],{},"Entrez le nom de domaine du serveur NodeWarden.",[881,2954],{},[884,2956],{"alt":2957,"src":2958},"Saisie de l'URL du serveur dans l'extension Bitwarden pour Chrome","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-extension-domain.webp",[481,2960,2961],{},"Enregistrez les paramètres et connectez-vous avec votre compte.",[1153,2963,2965],{"id":2964},"application-ios","Application iOS",[1158,2967,2968,2971,2980],{},[481,2969,2970],{},"Installez l'application Bitwarden depuis l'App Store.",[481,2972,2973,2974,2976],{},"Ouvrez l'application et cliquez sur '' à côté de 'Logging in on:'.",[881,2975],{},[884,2977],{"alt":2978,"src":2979},"Accès aux paramètres auto-hébergés dans l'application Bitwarden pour iOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-ios-self-hosted.webp",[481,2981,2982,2983,2985],{},"Entrez le nom de domaine du serveur NodeWarden et cliquez sur le bouton '✓'.",[881,2984],{},[884,2986],{"alt":2987,"src":2988},"Configuration de l'URL du serveur dans l'application Bitwarden pour iOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-ios-domain.webp",[1153,2990,2992],{"id":2991},"autres-clients","Autres Clients",[434,2994,2995],{},"NodeWarden a été testé et confirmé compatible avec ces clients officiels Bitwarden :",[478,2997,2998,3001,3004,3007,3010],{},[481,2999,3000],{},"✅ Windows (bureau)",[481,3002,3003],{},"✅ Applications mobiles Android\u002FiOS",[481,3005,3006],{},"✅ Extensions de navigateur",[481,3008,3009],{},"✅ Linux (bureau)",[481,3011,3012],{},"⚠️ macOS (bureau) (non entièrement vérifié)",[3014,3015,3017],"h1",{"id":3016},"sauvegarde-du-coffre-fort","Sauvegarde du Coffre-fort",[434,3019,3020],{},"NodeWarden vous permet de sauvegarder votre coffre-fort sur un ordinateur local ou sur un stockage distant (WebDAV ou stockage compatible S3).",[434,3022,3023],{},"Pour automatiser les sauvegardes distantes :",[478,3025,3026,3029],{},[481,3027,3028],{},"Configurez les détails du stockage distant dans le tableau de bord de NodeWarden.",[481,3030,3031,3032,3034],{},"Assurez-vous que la tâche Cron est configurée dans les paramètres de votre Cloudflare Worker pour la sauvegarde distante automatique.",[881,3033],{},[884,3035],{"alt":3036,"src":3037},"Configuration des déclencheurs Cron pour les sauvegardes automatiques de la voûte dans Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-worker-cron.webp",[3014,3039,3041],{"id":3040},"dernières-recommandations-de-sécurité","Dernières recommandations de sécurité",[478,3043,3044,3047,3050],{},[481,3045,3046],{},"Sécurisez l'accès à votre compte Cloudflare, sinon vos données pourraient être compromises. Activez immédiatement l'authentification à deux facteurs (2FA) ou un Passkey sur votre compte Cloudflare.",[481,3048,3049],{},"Hébergez NodeWarden sur un compte Cloudflare dédié. Ne partagez pas les ressources avec d'autres applications web pour minimiser les risques de sécurité.",[481,3051,3052],{},[484,3053,3054],{"href":371},"Sécuriser NodeWarden avec Cloudflare",[3014,3056,957],{"id":956},[478,3058,3059],{},[481,3060,3061],{},"Guide de démarrage officiel de NodeWarden",{"title":424,"searchDepth":515,"depth":521,"links":3063},[3064,3065,3066,3067,3070,3071,3072],{"id":2523,"depth":515,"text":2524},{"id":2717,"depth":515,"text":2718},{"id":2737,"depth":515,"text":2738},{"id":2771,"depth":515,"text":2772,"children":3068},[3069],{"id":2805,"depth":521,"text":2806},{"id":2836,"depth":515,"text":2837},{"id":2884,"depth":515,"text":2885},{"id":2924,"depth":515,"text":2925,"children":3073},[3074,3075,3076],{"id":2931,"depth":527,"text":2932},{"id":2964,"depth":521,"text":2965},{"id":2991,"depth":521,"text":2992},[1000,1001],"2026-05-25","Vos mots de passe constituent votre propriété numérique la plus critique.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fserveur-auto-heberge-bitwarden.webp","Miniature du tutoriel sur l'auto-hébergement d'un serveur compatible Bitwarden, montrant un coffre-fort numérique et une baie de serveurs.",{"schemaOrg":3083,"robots":1012,"sitemap":3086},[3084],{"@type":2243,"headline":3085,"description":3079},"Comment sécuriser vos mots de passe dans votre propre coffre-fort en auto-hébergeant un serveur compatible Bitwarden",{"lastmod":3078},{"title":3085,"description":3079,"ogTitle":3085,"ogDescription":3079,"twitterTitle":3085,"twitterDescription":3079},"fr\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",[],"rshizV322tVDj_vS1QA1X87-Gyj6BNlapJW7-ntqS0U",{"id":3092,"title":3093,"author":424,"body":3094,"category":3971,"date":3972,"description":3973,"extension":1004,"image":3974,"imageAlt":3975,"isPublished":1007,"meta":3976,"minRead":557,"navigation":1007,"path":363,"seo":4011,"stem":4013,"tags":4014,"updatedAt":4010,"__hash__":4017},"article\u002Ffr\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp.md","Exposer Hermes Agent en privé via Cloudflare WARP",{"type":426,"value":3095,"toc":3953},[3096,3110,3120,3124,3127,3139,3143,3151,3155,3159,3207,3211,3345,3349,3383,3387,3390,3456,3459,3495,3498,3525,3529,3539,3543,3581,3668,3672,3677,3692,3701,3776,3781,3827,3831,3876,3890,3894,3938,3940,3950],[434,3097,3098,3099,3102,3103,3105,3106,3109],{},"Un défi courant se pose lorsque vous souhaitez accéder à votre ",[441,3100,3101],{},"Hermes Agent"," depuis d'autres appareils tels que des ordinateurs portables, des tablettes ou des téléphones sans l'exposer à l'Internet public. L'utilisation de ",[441,3104,926],{}," avec ",[441,3107,3108],{},"Cloudflare Zero Trust"," vous permet d'exposer globalement le Hermes Agent sans ouvrir le moindre port entrant sur votre pare-feu.",[434,3111,3112,3113,3116,3117,3119],{},"Si vous avez suivi notre guide précédent, '",[484,3114,3115],{"href":375},"Comment déployer l'Agent Hermes sur un serveur VPS Linux","', un Hermes Agent est déjà opérationnel 24h\u002F24 et 7j\u002F7. Au lieu de gérer la lourdeur des VPN traditionnels, nous allons utiliser le client ",[441,3118,926],{}," pour exposer le Hermes Agent à un réseau privé via Internet.",[429,3121,3123],{"id":3122},"comprendre-larchitecture","Comprendre l'architecture",[434,3125,3126],{},"Les composants en jeu :",[1158,3128,3129,3134],{},[481,3130,3131,3133],{},[441,3132,3108],{}," : Le tableau de bord chez Cloudflare où vous définissez les règles de routage et les politiques d'accès.",[481,3135,3136,3138],{},[441,3137,926],{}," : L'application client installée sur vos appareils (VPS, ordinateurs portables, téléphones). Elle intercepte le trafic destiné à votre réseau privé et le route de manière sécurisée.",[1153,3140,3142],{"id":3141},"prérequis","Prérequis",[478,3144,3145,3148],{},[481,3146,3147],{},"Un Hermes Agent en cours d'exécution sur votre VPS.",[481,3149,3150],{},"Un compte Cloudflare gratuit.",[429,3152,3154],{"id":3153},"guide-étape-par-étape","Guide étape par étape",[1153,3156,3158],{"id":3157},"étape-1-configurer-cloudflare-zero-trust","Étape 1 : Configurer Cloudflare Zero Trust",[1158,3160,3161,3169,3176,3186,3193,3200],{},[481,3162,3163,3164,455],{},"Connectez-vous à votre ",[484,3165,3168],{"href":3166,"rel":3167},"https:\u002F\u002Fdash.cloudflare.com\u002F",[488],"Tableau de bord Cloudflare",[481,3170,3171,3172],{},"Cliquez sur 'Zero Trust' dans le menu de gauche.\n",[884,3173],{"alt":3174,"src":3175},"Menu de navigation de la barre latérale gauche du tableau de bord Cloudflare avec l'option Zero Trust","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-left-menu.webp",[481,3177,3178,3179,2154,3182],{},"Si c'est votre première fois, vous serez invité à choisir un forfait (le niveau Gratuit convient parfaitement à cette configuration) et à nommer votre équipe (par exemple, ",[473,3180,3181],{},"ai-team",[884,3183],{"alt":3184,"src":3185},"Configuration initiale du compte Cloudflare Zero Trust et attribution du nom de l'équipe","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-team-setup.webp",[481,3187,3188,3189],{},"Cliquez sur 'Access' puis sur 'Policies' pour créer une politique d'accès définissant qui a accès au réseau.\n",[884,3190],{"alt":3191,"src":3192},"Page de stratégies d'accès Cloudflare Zero Trust montrant les règles configurées","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-access-policies-page.webp",[481,3194,3195,3196],{},"Cliquez sur 'Create new policy'.\n",[884,3197],{"alt":3198,"src":3199},"Cloudflare Access policies page showing no policies added and a button to create a new policy.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-no-policies-create-button.png",[481,3201,3202,3203],{},"Sélectionnez 'Emails' et entrez votre adresse e-mail sous 'Policy rules'.\n",[884,3204],{"alt":3205,"src":3206},"Cloudflare Access policy rule configuration screen with an email address specified as the inclusion criteria.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-rule-email.png",[1153,3208,3210],{"id":3209},"étape-2-configurer-le-client-cloudflare-warp-sur-le-vps","Étape 2 : Configurer le client Cloudflare WARP sur le VPS",[1158,3212,3213,3223,3229,3236,3239,3253,3256,3338],{},[481,3214,3215,3216,835,3219,3222],{},"Exécutez ",[473,3217,3218],{},"sudo apt update",[473,3220,3221],{},"sudo apt install cloudflare-warp"," dans le terminal de votre VPS.",[481,3224,3215,3225,3228],{},[473,3226,3227],{},"warp-cli registration new \u003CTEAM-NAME>"," dans le terminal de votre VPS, ce qui affichera une URL.",[481,3230,3231,3232,3235],{},"Copiez l'URL affichée, qui ressemblera à ",[473,3233,3234],{},"https:\u002F\u002F\u003Cteam>.cloudflareaccess.com\u002Fwarp",", et collez-la dans votre navigateur pour l'authentification.",[481,3237,3238],{},"L'authentification par e-mail étant utilisée dans la configuration de la politique ci-dessus, entrez votre e-mail pour vous authentifier.",[481,3240,3241,3242,3245,3246,3249,3250,2865],{},"Sur la page '",[441,3243,3244],{},"Success","' (Succès) du navigateur, faites un clic droit et sélectionnez '",[441,3247,3248],{},"Inspect","' (Inspecter) sur le bouton bleu '",[441,3251,3252],{},"Open Cloudflare WARP",[481,3254,3255],{},"Copiez le long jeton (token) qui est indiqué dans le lien du bouton.",[481,3257,3215,3258,3261,3262,3264,3265],{},[473,3259,3260],{},"warp-cli --accept-tos registration token \"https:\u002F\u002F\u003Cteam>.cloudflareaccess.com\u002Fauth?token=\u003Ccopied_token>\""," dans le terminal de votre VPS pour le connecter à Cloudflare Zero Trust.",[881,3263],{},"Si vous rencontrez l'erreur 'Error: Failed to communicate with the WARP API' sur Ubuntu 26, exécutez les commandes suivantes :",[498,3266,3270],{"className":3267,"code":3268,"language":3269,"meta":424,"style":424},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sudo systemctl restart warp-svc.service\n\n# Check status\nsudo systemctl status warp-svc.service\n\n# Run the warp-cli registration token again\nwarp-cli --accept-tos registration token   \"https:\u002F\u002F\u003Cteam>.cloudflareaccess.com\u002Fauth?token=\u003Ccopied_token>\"\n","bash",[473,3271,3272,3286,3290,3296,3307,3311,3316],{"__ignoreMap":424},[506,3273,3274,3277,3280,3283],{"class":508,"line":509},[506,3275,3276],{"class":1066},"sudo",[506,3278,3279],{"class":1080}," systemctl",[506,3281,3282],{"class":1080}," restart",[506,3284,3285],{"class":1080}," warp-svc.service\n",[506,3287,3288],{"class":508,"line":515},[506,3289,1100],{"emptyLinePlaceholder":1007},[506,3291,3292],{"class":508,"line":521},[506,3293,3295],{"class":3294},"sHwdD","# Check status\n",[506,3297,3298,3300,3302,3305],{"class":508,"line":527},[506,3299,3276],{"class":1066},[506,3301,3279],{"class":1080},[506,3303,3304],{"class":1080}," status",[506,3306,3285],{"class":1080},[506,3308,3309],{"class":508,"line":533},[506,3310,1100],{"emptyLinePlaceholder":1007},[506,3312,3313],{"class":508,"line":539},[506,3314,3315],{"class":3294},"# Run the warp-cli registration token again\n",[506,3317,3318,3321,3324,3327,3330,3333,3336],{"class":508,"line":545},[506,3319,3320],{"class":1066},"warp-cli",[506,3322,3323],{"class":1080}," --accept-tos",[506,3325,3326],{"class":1080}," registration",[506,3328,3329],{"class":1080}," token",[506,3331,3332],{"class":1076},"   \"",[506,3334,3335],{"class":1080},"https:\u002F\u002F\u003Cteam>.cloudflareaccess.com\u002Fauth?token=\u003Ccopied_token>",[506,3337,1764],{"class":1076},[481,3339,3340,3341],{},"Retournez au tableau de bord Cloudflare Zero Trust et cliquez sur 'Devices' (Appareils). Votre appareil VPS devrait maintenant s'afficher.\n",[884,3342],{"alt":3343,"src":3344},"Tableau de bord des appareils Zero Trust confirmant que le VPS Linux est connecté","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-devices-vps-connected.webp",[1153,3346,3348],{"id":3347},"étape-3-configurer-le-routage-du-trafic","Étape 3 : Configurer le routage du trafic",[1158,3350,3351,3358,3365,3372],{},[481,3352,3353,3354],{},"Cliquez sur le profil de votre VPS dans le tableau de bord Devices.\n",[884,3355],{"alt":3356,"src":3357},"Accès aux détails et aux paramètres du tunnel divisé pour l'appareil VPS enregistré","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-device-profile.webp",[481,3359,3360,3361],{},"Faites défiler jusqu'à la section 'Split Tunnels' (Tunnels divisés).\n",[884,3362],{"alt":3363,"src":3364},"Section des tunnels divisés sous les paramètres de profil du VPS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-split-tunnels-section.webp",[481,3366,3367,3368],{},"Cliquez sur the bouton 'Manage' (Gérer) et configurez les paramètres comme indiqué ci-dessous. Remplacez l'adresse IP si nécessaire.\n",[884,3369],{"alt":3370,"src":3371},"Gestion des exclusions d'adresses IP et d'hôtes dans les paramètres Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-manage-split-tunnels.webp",[481,3373,3374,3375,3378,3379,3382],{},"Exposer l'",[473,3376,3377],{},"address"," (adresse) et le ",[473,3380,3381],{},"host"," (hôte) acheminera le trafic vers vos services sur le même réseau privé.",[1153,3384,3386],{"id":3385},"étape-4-configurer-le-pare-feu-sur-le-vps","Étape 4 : Configurer le pare-feu sur le VPS",[434,3388,3389],{},"Activez le pare-feu pour n'autoriser que le sous-réseau '100.96.0.0\u002F12', en bloquant tout autre accès public entrant.",[498,3391,3393],{"className":3267,"code":3392,"language":3269,"meta":424,"style":424},"sudo ufw enable \nsudo ufw default allow outgoing \nsudo ufw default deny incoming\nsudo ufw allow in from 100.96.0.0\u002F12\n",[473,3394,3395,3408,3425,3439],{"__ignoreMap":424},[506,3396,3397,3399,3402,3405],{"class":508,"line":509},[506,3398,3276],{"class":1066},[506,3400,3401],{"class":1080}," ufw",[506,3403,3404],{"class":1080}," enable",[506,3406,3407],{"class":1678}," \n",[506,3409,3410,3412,3414,3417,3420,3423],{"class":508,"line":515},[506,3411,3276],{"class":1066},[506,3413,3401],{"class":1080},[506,3415,3416],{"class":1080}," default",[506,3418,3419],{"class":1080}," allow",[506,3421,3422],{"class":1080}," outgoing",[506,3424,3407],{"class":1678},[506,3426,3427,3429,3431,3433,3436],{"class":508,"line":521},[506,3428,3276],{"class":1066},[506,3430,3401],{"class":1080},[506,3432,3416],{"class":1080},[506,3434,3435],{"class":1080}," deny",[506,3437,3438],{"class":1080}," incoming\n",[506,3440,3441,3443,3445,3447,3450,3453],{"class":508,"line":527},[506,3442,3276],{"class":1066},[506,3444,3401],{"class":1080},[506,3446,3419],{"class":1080},[506,3448,3449],{"class":1080}," in",[506,3451,3452],{"class":1080}," from",[506,3454,3455],{"class":1080}," 100.96.0.0\u002F12\n",[434,3457,3458],{},"Autorisez le trafic loopback pour éviter de perturber les services locaux :",[498,3460,3462],{"className":3267,"code":3461,"language":3269,"meta":424,"style":424},"sudo ufw allow in on lo\nsudo ufw allow out on lo\n",[473,3463,3464,3480],{"__ignoreMap":424},[506,3465,3466,3468,3470,3472,3474,3477],{"class":508,"line":509},[506,3467,3276],{"class":1066},[506,3469,3401],{"class":1080},[506,3471,3419],{"class":1080},[506,3473,3449],{"class":1080},[506,3475,3476],{"class":1080}," on",[506,3478,3479],{"class":1080}," lo\n",[506,3481,3482,3484,3486,3488,3491,3493],{"class":508,"line":515},[506,3483,3276],{"class":1066},[506,3485,3401],{"class":1080},[506,3487,3419],{"class":1080},[506,3489,3490],{"class":1080}," out",[506,3492,3476],{"class":1080},[506,3494,3479],{"class":1080},[434,3496,3497],{},"Rechargez le pare-feu et vérifiez son statut :",[498,3499,3501],{"className":3267,"code":3500,"language":3269,"meta":424,"style":424},"sudo ufw reload \nsudo ufw status verbose\n",[473,3502,3503,3514],{"__ignoreMap":424},[506,3504,3505,3507,3509,3512],{"class":508,"line":509},[506,3506,3276],{"class":1066},[506,3508,3401],{"class":1080},[506,3510,3511],{"class":1080}," reload",[506,3513,3407],{"class":1678},[506,3515,3516,3518,3520,3522],{"class":508,"line":515},[506,3517,3276],{"class":1066},[506,3519,3401],{"class":1080},[506,3521,3304],{"class":1080},[506,3523,3524],{"class":1080}," verbose\n",[1153,3526,3528],{"id":3527},"étape-5-exposer-hermes-agent-au-réseau-privé","Étape 5 : Exposer Hermes Agent au réseau privé",[434,3530,3531,3532,3535,3536,455],{},"Nous allons exposer le ",[441,3533,3534],{},"Hermes Agent Web Dashboard"," à notre réseau privé et utiliser le fournisseur d'authentification par défaut, ",[441,3537,3538],{},"Nous Research",[2085,3540,3542],{"id":3541},"configurer-le-fournisseur-dauthentification","Configurer le fournisseur d'authentification",[1158,3544,3545,3554,3561,3568,3575],{},[481,3546,3547,3548,3553],{},"Rendez-vous sur ",[484,3549,3552],{"href":3550,"rel":3551},"https:\u002F\u002Fportal.nousresearch.com",[488],"portal.nousresearch.com"," pour créer un compte.",[481,3555,3556,3557],{},"Sélectionnez 'Local Dashboards' (Tableaux de bord locaux).\n",[884,3558],{"alt":3559,"src":3560},"Sélection de l'option Local Dashboards dans le portail de Nous Research","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fnous-portal-local-dashboards-selection.webp",[481,3562,3563,3564],{},"Cliquez sur 'Register Dashboard' (Enregistrer le tableau de bord).\n",[884,3565],{"alt":3566,"src":3567},"Clic sur le bouton Enregistrer le tableau de bord pour créer une nouvelle entrée","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fnous-portal-register-dashboard.webp",[481,3569,3570,3571],{},"Entrez l'adresse IP du réseau privé de votre VPS comme 'Dashboard redirect URI' (URI de redirection du tableau de bord) et cliquez sur 'Save' (Enregistrer).\n",[884,3572],{"alt":3573,"src":3574},"Enregistrement de l'adresse IP privée du VPS comme URI de redirection sur Nous Research","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fnous-portal-register-redirect-uri.webp",[481,3576,3577,3578,1054],{},"Copiez le 'OAuth client ID' et collez-le dans votre fichier ",[473,3579,3580],{},"config.yaml",[498,3582,3584],{"className":1057,"code":3583,"language":1059,"meta":424,"style":424},"dashboard:\n  theme: default\n  show_token_analytics: false\n  oauth:\n    client_id: agent:cmq02x7ha0002jk0ba3kfnb\n    portal_url: https:\u002F\u002Fportal.nousresearch.com\n  basic_auth:\n    username: ''\n    password_hash: ''\n",[473,3585,3586,3594,3604,3615,3622,3632,3642,3649,3659],{"__ignoreMap":424},[506,3587,3588,3591],{"class":508,"line":509},[506,3589,3590],{"class":1072},"dashboard",[506,3592,3593],{"class":1076},":\n",[506,3595,3596,3599,3601],{"class":508,"line":515},[506,3597,3598],{"class":1072},"  theme",[506,3600,1077],{"class":1076},[506,3602,3603],{"class":1080}," default\n",[506,3605,3606,3609,3611],{"class":508,"line":521},[506,3607,3608],{"class":1072},"  show_token_analytics",[506,3610,1077],{"class":1076},[506,3612,3614],{"class":3613},"sfNiH"," false\n",[506,3616,3617,3620],{"class":508,"line":527},[506,3618,3619],{"class":1072},"  oauth",[506,3621,3593],{"class":1076},[506,3623,3624,3627,3629],{"class":508,"line":533},[506,3625,3626],{"class":1072},"    client_id",[506,3628,1077],{"class":1076},[506,3630,3631],{"class":1080}," agent:cmq02x7ha0002jk0ba3kfnb\n",[506,3633,3634,3637,3639],{"class":508,"line":539},[506,3635,3636],{"class":1072},"    portal_url",[506,3638,1077],{"class":1076},[506,3640,3641],{"class":1080}," https:\u002F\u002Fportal.nousresearch.com\n",[506,3643,3644,3647],{"class":508,"line":545},[506,3645,3646],{"class":1072},"  basic_auth",[506,3648,3593],{"class":1076},[506,3650,3651,3654,3656],{"class":508,"line":551},[506,3652,3653],{"class":1072},"    username",[506,3655,1077],{"class":1076},[506,3657,3658],{"class":1076}," ''\n",[506,3660,3661,3664,3666],{"class":508,"line":557},[506,3662,3663],{"class":1072},"    password_hash",[506,3665,1077],{"class":1076},[506,3667,3658],{"class":1076},[2085,3669,3671],{"id":3670},"configurer-systemd-pour-démarrer-automatiquement-le-tableau-de-bord-hermes","Configurer Systemd pour démarrer automatiquement le tableau de bord Hermes",[1158,3673,3674],{},[481,3675,3676],{},"Créez un fichier de service :",[498,3678,3680],{"className":1797,"code":3679,"language":1799,"meta":424,"style":424},"sudo nano \u002Fetc\u002Fsystemd\u002Fsystem\u002Fhermes-dashboard.service\n",[473,3681,3682],{"__ignoreMap":424},[506,3683,3684,3686,3689],{"class":508,"line":509},[506,3685,3276],{"class":1066},[506,3687,3688],{"class":1080}," nano",[506,3690,3691],{"class":1080}," \u002Fetc\u002Fsystemd\u002Fsystem\u002Fhermes-dashboard.service\n",[1158,3693,3694],{"start":515},[481,3695,3696,3697,3700],{},"Collez la configuration suivante, en vous assurant que ",[473,3698,3699],{},"--host 0.0.0.0"," fait partie de la commande :",[498,3702,3706],{"className":3703,"code":3704,"language":3705,"meta":424,"style":424},"language-ini shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[Unit]\nDescription=Hermes Dashboard\nAfter=network.target\n\n[Service]\nUser=hermes\nWorkingDirectory=\u002Fhome\u002Fhermes\nExecStart=\u002Fhome\u002Fhermes\u002F.local\u002Fbin\u002Fhermes dashboard --host 0.0.0.0\nRestart=always\nRestartSec=10\nEnvironment=PATH=\u002Fhome\u002Fhermes\u002F.local\u002Fbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fusr\u002Fbin:\u002Fbin\n\n[Install]\nWantedBy=multi-user.target\n","ini",[473,3707,3708,3713,3718,3723,3727,3732,3737,3742,3747,3752,3757,3762,3766,3771],{"__ignoreMap":424},[506,3709,3710],{"class":508,"line":509},[506,3711,3712],{},"[Unit]\n",[506,3714,3715],{"class":508,"line":515},[506,3716,3717],{},"Description=Hermes Dashboard\n",[506,3719,3720],{"class":508,"line":521},[506,3721,3722],{},"After=network.target\n",[506,3724,3725],{"class":508,"line":527},[506,3726,1100],{"emptyLinePlaceholder":1007},[506,3728,3729],{"class":508,"line":533},[506,3730,3731],{},"[Service]\n",[506,3733,3734],{"class":508,"line":539},[506,3735,3736],{},"User=hermes\n",[506,3738,3739],{"class":508,"line":545},[506,3740,3741],{},"WorkingDirectory=\u002Fhome\u002Fhermes\n",[506,3743,3744],{"class":508,"line":551},[506,3745,3746],{},"ExecStart=\u002Fhome\u002Fhermes\u002F.local\u002Fbin\u002Fhermes dashboard --host 0.0.0.0\n",[506,3748,3749],{"class":508,"line":557},[506,3750,3751],{},"Restart=always\n",[506,3753,3754],{"class":508,"line":563},[506,3755,3756],{},"RestartSec=10\n",[506,3758,3759],{"class":508,"line":569},[506,3760,3761],{},"Environment=PATH=\u002Fhome\u002Fhermes\u002F.local\u002Fbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fusr\u002Fbin:\u002Fbin\n",[506,3763,3764],{"class":508,"line":575},[506,3765,1100],{"emptyLinePlaceholder":1007},[506,3767,3768],{"class":508,"line":581},[506,3769,3770],{},"[Install]\n",[506,3772,3773],{"class":508,"line":587},[506,3774,3775],{},"WantedBy=multi-user.target\n",[1158,3777,3778],{"start":521},[481,3779,3780],{},"Activez et démarrez le service :",[498,3782,3784],{"className":1797,"code":3783,"language":1799,"meta":424,"style":424},"sudo systemctl daemon-reload\nsudo systemctl enable hermes-dashboard\nsudo systemctl start hermes-dashboard\nsudo systemctl status hermes-dashboard\n",[473,3785,3786,3795,3806,3817],{"__ignoreMap":424},[506,3787,3788,3790,3792],{"class":508,"line":509},[506,3789,3276],{"class":1066},[506,3791,3279],{"class":1080},[506,3793,3794],{"class":1080}," daemon-reload\n",[506,3796,3797,3799,3801,3803],{"class":508,"line":515},[506,3798,3276],{"class":1066},[506,3800,3279],{"class":1080},[506,3802,3404],{"class":1080},[506,3804,3805],{"class":1080}," hermes-dashboard\n",[506,3807,3808,3810,3812,3815],{"class":508,"line":521},[506,3809,3276],{"class":1066},[506,3811,3279],{"class":1080},[506,3813,3814],{"class":1080}," start",[506,3816,3805],{"class":1080},[506,3818,3819,3821,3823,3825],{"class":508,"line":527},[506,3820,3276],{"class":1066},[506,3822,3279],{"class":1080},[506,3824,3304],{"class":1080},[506,3826,3805],{"class":1080},[1153,3828,3830],{"id":3829},"étape-6-installer-le-client-cloudflare-warp-sur-lordinateur","Étape 6 : Installer le client Cloudflare WARP sur l'ordinateur",[1158,3832,3833,3841,3844,3851,3858,3865],{},[481,3834,3835,3836,455],{},"Téléchargez le client Cloudflare WARP depuis le ",[484,3837,3840],{"href":3838,"rel":3839},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fwarp-client\u002Fget-started\u002F",[488],"portail de Cloudflare",[481,3842,3843],{},"Ouvrez et lancez le client Cloudflare WARP après l'installation.",[481,3845,3846,3847],{},"Connectez-vous lorsque vous y êtes invité.\n",[884,3848],{"alt":3849,"src":3850},"Invite de connexion du client Cloudflare WARP sur l'ordinateur de bureau","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-warp-desktop-login-prompt.webp",[481,3852,3853,3854],{},"Une page 'Success' (Succès) s'affichera après une connexion réussie.\n",[884,3855],{"alt":3856,"src":3857},"Page de succès d'authentification après connexion à Cloudflare Zero Trust sur bureau","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-warp-desktop-login-success.webp",[481,3859,3860,3861],{},"Le client WARP devrait maintenant indiquer qu'il est connecté à votre équipe Zero Trust.\n",[884,3862],{"alt":3863,"src":3864},"Client Cloudflare WARP de bureau confirmant la connexion active au réseau privé Zero Trust","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-warp-desktop-client-connected.webp",[481,3866,3867,3868,3871,3872],{},"Accédez à votre navigateur web et entrez votre IP privée (par exemple, ",[473,3869,3870],{},"100.96.0.3","). Le Hermes Web Dashboard devrait se charger avec succès.\n",[884,3873],{"alt":3874,"src":3875},"Accès au tableau de bord Web privé de Hermes Agent sur un navigateur de bureau","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fhermes-agent-dashboard-desktop-view.webp",[3877,3878,3879],"blockquote",{},[434,3880,3881,3884,3885,3889],{},[441,3882,3883],{},"Conseil de pro pour les utilisateurs macOS :"," Si vous utilisez le client WARP pour accéder à plusieurs comptes Cloudflare, consultez notre guide rapide sur ",[441,3886,3887],{},[484,3888,423],{"href":399}," pour passer d'un compte à l'autre en toute fluidité.",[1153,3891,3893],{"id":3892},"étape-7-installer-le-client-cloudflare-warp-sur-les-appareils-ios","Étape 7 : Installer le client Cloudflare WARP sur les appareils iOS",[1158,3895,3896,3903,3911,3919,3927],{},[481,3897,3898,3899,3902],{},"Installez ",[441,3900,3901],{},"Cloudflare One"," depuis l'App Store.",[481,3904,3905,3906],{},"Ouvrez l'application Cloudflare One et entrez le nom de votre équipe lorsque vous y êtes invité.\n",[884,3907],{"alt":3908,"src":3909,"width":3910},"Saisie du nom de l'équipe Cloudflare Zero Trust dans l'application Cloudflare One sur iOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-one-ios-team-name-prompt.webp",239,[481,3912,3913,3914],{},"Connectez-vous en utilisant la même adresse e-mail que celle configurée dans la règle de politique ci-dessus.\n",[884,3915],{"alt":3916,"src":3917,"width":3918},"Invite d'authentification par e-mail pour Cloudflare Zero Trust sur iOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-one-ios-email-login.webp",229,[481,3920,3921,3922],{},"Une fois connecté, cela devrait ressembler à ceci :\n",[884,3923],{"alt":3924,"src":3925,"width":3926},"Application Cloudflare One affichant l'état connecté sur l'appareil mobile iOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-one-ios-client-connected.webp",322,[481,3928,3929,3930,3932,3933],{},"Accédez à votre navigateur web et entrez l'IP privée ",[473,3931,3870],{}," pour accéder au Hermes Web Dashboard sur votre appareil mobile.\n",[884,3934],{"alt":3935,"src":3936,"width":3937},"Accès à l'interface du tableau de bord Web de Hermes Agent sur navigateur mobile","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fhermes-agent-dashboard-mobile-view.webp",345,[429,3939,950],{"id":949},[434,3941,3942,3943,3945,3946,3949],{},"Avec ",[441,3944,3108],{}," gérant les politiques d'identité et le client ",[441,3947,3948],{},"WARP"," acheminant le trafic via un tunnel crypté, votre Hermes Agent est accessible de manière sécurisée depuis vos appareils dans le monde entier. Cette configuration pose des fondations sécurisées et robustes pour créer et accéder à une infrastructure d'IA privée et entièrement à distance.",[989,3951,3952],{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":424,"searchDepth":515,"depth":521,"links":3954},[3955,3958,3970],{"id":3122,"depth":515,"text":3123,"children":3956},[3957],{"id":3141,"depth":521,"text":3142},{"id":3153,"depth":515,"text":3154,"children":3959},[3960,3961,3962,3963,3964,3968,3969],{"id":3157,"depth":521,"text":3158},{"id":3209,"depth":521,"text":3210},{"id":3347,"depth":521,"text":3348},{"id":3385,"depth":521,"text":3386},{"id":3527,"depth":521,"text":3528,"children":3965},[3966,3967],{"id":3541,"depth":527,"text":3542},{"id":3670,"depth":527,"text":3671},{"id":3829,"depth":521,"text":3830},{"id":3892,"depth":521,"text":3893},{"id":949,"depth":515,"text":950},[1414,1000],"2026-07-09","Apprenez à exposer et à accéder mondialement à votre Hermes Agent en toute sécurité via Cloudflare WARP et Zero Trust, sans ouvrir de port pare-feu entrant.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002FFR-Exposing-Hermes-Agent-to-Private-Network-Using-Cloudflare-WARP.webp","Exposer en toute sécurité Hermes Agent à un réseau privé via Cloudflare Zero Trust et un tunnel WARP",{"schemaOrg":3977,"robots":1012,"sitemap":4009},[3978],{"@type":1011,"headline":3093,"description":3973,"name":3093,"image":3974,"step":3979},[3980,3985,3989,3993,3997,4001,4005],{"@type":3981,"name":3982,"text":3983,"url":3984,"image":3175},"HowToStep","Configurer Cloudflare Zero Trust","Connectez-vous à votre Tableau de bord Cloudflare. Cliquez sur 'Zero Trust' dans le menu de gauche. Si c'est votre première fois, vous serez invité à choisir un forfait (le niveau Gratuit convient parfaitement à cette configuration) et à nommer votre","#step-1",{"@type":3981,"name":3986,"text":3987,"url":3988,"image":3344},"Configurer le client Cloudflare WARP sur le VPS","Exécutez sudo apt update et sudo apt install cloudflare-warp dans le terminal de votre VPS. Exécutez warp-cli registration new \u003CTEAM-NAME> dans le terminal de votre VPS, ce qui affichera une URL. Copiez l'URL affichée, qui ressemblera à https:\u002F\u002F\u003Cteam","#step-2",{"@type":3981,"name":3990,"text":3991,"url":3992,"image":3357},"Configurer le routage du trafic","Cliquez sur le profil de votre VPS dans le tableau de bord Devices. Faites défiler jusqu'à la section 'Split Tunnels' (Tunnels divisés). Cliquez sur the bouton 'Manage' (Gérer) et configurez les paramètres comme indiqué ci-dessous. Remplacez l'adress","#step-3",{"@type":3981,"name":3994,"text":3995,"url":3996},"Configurer le pare-feu sur le VPS","Activez le pare-feu pour n'autoriser que le sous-réseau '100.96.0.0\u002F12', en bloquant tout autre accès public entrant. bash Autorisez le trafic loopback pour éviter de perturber les services locaux : bash Rechargez le pare-feu et vérifiez son statut :","#step-4",{"@type":3981,"name":3998,"text":3999,"url":4000},"Exposer Hermes Agent au réseau privé","Nous allons exposer le Hermes Agent Web Dashboard à notre réseau privé et utiliser le fournisseur d'authentification par défaut, Nous Research.","#step-5",{"@type":3981,"name":4002,"text":4003,"url":4004,"image":3850},"Installer le client Cloudflare WARP sur l'ordinateur","Téléchargez le client Cloudflare WARP depuis le portail de Cloudflare. Ouvrez et lancez le client Cloudflare WARP après l'installation. Connectez-vous lorsque vous y êtes invité. Une page 'Success' (Succès) s'affichera après une connexion réussie. Le","#step-6",{"@type":3981,"name":4006,"text":4007,"url":4008,"image":3909},"Installer le client Cloudflare WARP sur les appareils iOS","Installez Cloudflare One depuis l'App Store. Ouvrez l'application Cloudflare One et entrez le nom de votre équipe lorsque vous y êtes invité. Connectez-vous en utilisant la même adresse e-mail que celle configurée dans la règle de politique ci-dessus","#step-7",{"lastmod":4010},"2026-09-28",{"title":4012,"description":3973,"ogTitle":3093,"ogDescription":3973,"twitterTitle":3093,"twitterDescription":3973},"Accès sécurisé à Hermes Agent avec Cloudflare Zero Trust","fr\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",[926,1019,3101,4015,4016],"Réseau privé","Tutoriel","znaIPQ7_5S4t576NDV1Cm2dwmV4KfgwgNWNih_62HSs",1792490006593]