[{"data":1,"prerenderedAt":4078},["ShallowReactive",2],{"published-article-paths":3,"search-navigation":348,"\u002Fid\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac":421,"\u002Fid\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":169,"seo":1014,"stem":1015,"tags":1016,"updatedAt":1020,"__hash__":1021},"article\u002Fid\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac.md","Beralih di antara beberapa profil Cloudflare WARP pada 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},"apa-itu-cloudflare-warp","Apa Itu Cloudflare WARP?",[434,435,436],"p",{},"Cloudflare WARP adalah aplikasi sisi klien (client-side) yang merutekan lalu lintas perangkat tertentu melalui jaringan global Cloudflare, bukan langsung menuju ke internet publik.",[434,438,439,440,444],{},"Aplikasi ini membuat terowongan terenkripsi yang dibangun di atas protokol ",[441,442,443],"strong",{},"WireGuard",", mengamankan lalu lintas dari perangkat ke pusat data Cloudflare terdekat. Kebijakan kemudian dapat dibuat di dasbor Cloudflare Anda untuk memfilter, mencatat (log), memeriksa, atau merutekan lalu lintas masuk ini.",[429,446,448],{"id":447},"mengapa-kita-membutuhkan-cloudflare-warp","Mengapa Kita Membutuhkan Cloudflare WARP?",[434,450,451,452,455],{},"Untuk mengekspos sumber daya internal dengan aman—seperti layanan web pribadi atau aplikasi SaaS—kepada karyawan, kontraktor, dan pemangku kepentingan lainnya, klien Cloudflare WARP digunakan sebagai titik penegakan sisi klien untuk ",[441,453,454],{},"Zero Trust Network Access (ZTNA)",".",[434,457,458],{},"Klien Cloudflare WARP diinstal di laptop atau ponsel pengguna. Aplikasi ini mengharuskan pengguna untuk melakukan autentikasi dan memenuhi pemeriksaan postur keamanan tertentu (seperti berasal dari rentang IP yang disetujui, menggunakan domain email terdaftar, atau menjalankan firewall aktif) sebelum memberikan akses.",[434,460,461],{},"Dengan menyalurkan lalu lintas perangkat langsung ke Cloudflare, identitas pengguna, perangkat, dan kebijakan diverifikasi sebelum permintaan sampai ke sumber daya internal. Hasilnya, sumber daya internal tidak pernah terekspos ke internet publik, dan setiap permintaan tercatat serta diaudit sepenuhnya.",[429,463,465],{"id":464},"mendukung-beberapa-profil-warp-pada-satu-perangkat","Mendukung Beberapa Profil WARP pada Satu Perangkat",[434,467,468],{},"Ketika pengguna perlu beralih antara akun Cloudflare pribadi dan perusahaan, atau ketika administrator sistem mengelola beberapa penyewa (tenant), dukungan untuk beberapa profil WARP pada satu perangkat menjadi sangat krusial.",[434,470,471,472,476],{},"Untuk mencapai hal ini di macOS, kita dapat menggunakan file profil MDM ",[473,474,475],"code",{},".mobileconfig"," untuk menentukan dan mendaftarkan lingkungan WARP yang berbeda.",[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"," langsung dari Cloudflare.",[481,495,496],{},"Di bawah ini adalah contoh tampilan konfigurasi tersebut:",[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],{},"Ganti ",[473,833,834],{},"your-team-name-1"," dan ",[473,837,838],{},"your-team-name-2"," dengan nama tim Cloudflare Zero Trust Anda masing-masing.",[481,841,842,843,846,847,850,851,455],{},"Jalankan perintah ",[473,844,845],{},"uuidgen"," di Terminal Anda untuk menghasilkan UUID unik, lalu gunakan untuk mengganti nilai tempat penampung (placeholder) ",[473,848,849],{},"PayloadUUID"," di file ",[473,852,475],{},[481,854,855,856,859,860,862],{},"Pastikan string ",[473,857,858],{},"PayloadIdentifier"," juga berisi ",[473,861,849],{}," yang diperbarui agar profil tetap berbeda.",[481,864,865,866,868],{},"Simpan file ",[473,867,475],{}," yang telah Anda edit.",[481,870,871,872,875,876,879,880,883],{},"Buka ",[441,873,874],{},"Pengaturan Sistem"," di Mac Anda, cari ",[441,877,878],{},"Profil"," (Profiles), lalu pilih.",[881,882],"br",{},[884,885],"img",{"alt":886,"src":887},"Panel Profil di Pengaturan Sistem 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],{},"Klik ",[441,892,893],{},"Instal, lihat, atau hapus..."," (Install, view or remove...) untuk mulai menambahkan profil konfigurasi baru Anda.",[881,896],{},[884,898],{"alt":899,"src":900},"Tombol instal, lihat, atau hapus profil 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],{},"Klik ikon ",[441,905,906],{},"+"," (plus) di sudut kiri bawah dan pilih file ",[473,909,475],{}," yang telah Anda simpan.",[881,912],{},[884,914],{"alt":915,"src":916},"Tombol plus (+) profil macOS untuk menambahkan profil baru","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},"Memilih file .mobileconfig di 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],{},"Pilih ",[441,925,926],{},"Cloudflare WARP"," dan klik ",[441,929,930],{},"Instal"," (Install) untuk menerapkan konfigurasi.",[881,933],{},[884,935],{"alt":936,"src":937},"Mengonfirmasi instalasi profil Cloudflare WARP di 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],{},"Mulai ulang klien Cloudflare WARP Anda. Sekarang Anda akan melihat pengalih multi-profil di antarmuka pengguna:",[881,942],{},[884,944],{"alt":945,"src":946},"Klien Cloudflare WARP dengan pengalih multi-profil di 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},"kesimpulan","Kesimpulan",[434,952,953],{},"Klien Cloudflare WARP bertindak sebagai titik keamanan krusial pada perangkat pengguna, membuat Akses Jaringan Zero Trust (ZTNA) menjadi tangguh sekaligus sangat praktis. Menjaga sumber daya internal tetap terisolasi dari internet publik memastikan setiap upaya koneksi diautentikasi, dievaluasi, dan diaudit dengan aman.",[429,955,957],{"id":956},"referensi","Referensi",[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","Konfigurasikan dan beralih antara beberapa organisasi Cloudflare WARP di macOS menggunakan file .mobileconfig. Panduan MDM lengkap untuk administrator TI.","md","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002FID-Switch-Between-Multiple-Cloudflare-WARP-Orgs-on-Mac.webp","Konfigurasi Beberapa Profil Cloudflare WARP pada 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},"id\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",[1017,926,1018,1019],"macOS","MDM","Zero Trust",null,"g75vUIN1mRvIdprX3WwNzBHE5-tIZ2ZSJhOV0EsNCBM",{"surround":1023,"related":2255},[1024,1437],{"id":1025,"title":1026,"author":424,"body":1027,"category":1419,"date":1421,"description":1422,"extension":1004,"image":1423,"imageAlt":1424,"isPublished":1007,"meta":1425,"minRead":527,"navigation":1007,"path":145,"seo":1429,"stem":1430,"tags":1431,"updatedAt":1020,"__hash__":1436},"article\u002Fid\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them.md","Skill Agen AI: Apa Itu dan Bagaimana Cara Membuatnya",{"type":426,"value":1028,"toc":1409},[1029,1033,1044,1055,1124,1130,1134,1137,1146,1152,1157,1213,1224,1230,1233,1289,1293,1300,1307,1310,1321,1325,1370,1373,1390,1392,1403,1406],[429,1030,1032],{"id":1031},"apa-itu-skill-agen-ai","Apa Itu Skill Agen AI?",[434,1034,1035,1036,1039,1040,1043],{},"Skill agen (agent skill) adalah ",[441,1037,1038],{},"kumpulan instruksi"," yang dapat digunakan kembali — sebuah prosedur standar yang memberi tahu agen cara melakukan jenis tugas tertentu dengan baik. Skill ini terdiri dari satu file Markdown bernama ",[473,1041,1042],{},"SKILL.md"," dan dapat menyertakan file lain yang diperlukan untuk tugas tersebut, seperti dokumen referensi, templat, atau skrip yang dapat dieksekusi.",[434,1045,1046,1047,1054],{},"Mari kita ambil skill ",[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"," sebagai contoh:",[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],{},"File ",[473,1128,1042],{}," berisi blok kecil metadata dan isi instruksi. Metadata terdiri dari nama dan deskripsi skill, yang dimuat oleh agen AI saat pertama kali dijalankan.",[429,1131,1133],{"id":1132},"bagaimana-cara-kerja-skill-agen-ai-progressive-disclosure","Bagaimana Cara Kerja Skill Agen AI: Progressive Disclosure",[434,1135,1136],{},"Pada awalnya, hanya nama dan deskripsi skill yang dimuat ke dalam konteks. Ketika permintaan pengguna cocok dengan deskripsi skill, barulah isi instruksi lengkap dimuat ke dalam konteks yang sama.",[434,1138,1139,1140,1145],{},"Mari kita lihat bagaimana skill ",[484,1141,1143],{"href":1049,"rel":1142},[488],[473,1144,1053],{}," digunakan.",[434,1147,1148],{},[884,1149],{"alt":1150,"src":1151},"Diagram urutan yang mengilustrasikan mekanisme pengungkapan progresif untuk eksekusi keahlian agen AI","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},"langkah-demi-langkah","Langkah demi Langkah",[1158,1159,1160,1166,1172,1178,1184,1197,1207],"ol",{},[481,1161,1162,1165],{},[441,1163,1164],{},"Permintaan (Request)"," — Pengguna meminta sesuatu kepada agen (\"uji ketahanan desain alur kerja saya\").",[481,1167,1168,1171],{},[441,1169,1170],{},"Prompt pemilihan (Selection prompt)"," — Permintaan pengguna, bersama dengan deskripsi dari semua skill yang tersedia, dikirim ke LLM.",[481,1173,1174,1177],{},[441,1175,1176],{},"LLM memilih"," — LLM membandingkan permintaan dengan setiap deskripsi dan mengembalikan skill yang cocok.",[481,1179,1180,1183],{},[441,1181,1182],{},"Konfirmasi"," — Agen menampilkan skill yang diusulkan kepada pengguna untuk dikonfirmasi (atau ditolak\u002Fdisesuaikan).",[481,1185,1186,1189,1190,1194,1195,455],{},[441,1187,1188],{},"Instruksi dimuat"," — Agen mengambil instruksi ",[1191,1192,1193],"em",{},"lengkap"," untuk skill yang telah dikonfirmasi: isi dari file ",[473,1196,1042],{},[481,1198,1199,1202,1203,1206],{},[441,1200,1201],{},"Prompt eksekusi (Execution prompt)"," — Permintaan pengguna ",[441,1204,1205],{},"ditambah instruksi skill yang dipilih"," dikirim ke LLM.",[481,1208,1209,1212],{},[441,1210,1211],{},"Respons"," — LLM menghasilkan output, yaitu pertanyaan pengujian pertama.",[434,1214,1215,1216,1223],{},"Sekarang mari gunakan ",[484,1217,1220],{"href":1218,"rel":1219},"https:\u002F\u002Fgithub.com\u002Fcoleam00\u002Fexcalidraw-diagram-skill",[488],[473,1221,1222],{},"excalidraw-diagram-skill"," untuk mengilustrasikan bagaimana skill yang memiliki dokumen referensi digunakan:",[434,1225,1226],{},[884,1227],{"alt":1228,"src":1229},"Diagram urutan yang menunjukkan agen AI mengeksekusi keahlian yang dimuat dengan file referensi dan templat eksternal","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},"langkah-demi-langkah-1",[1158,1234,1235,1240,1246,1255,1259,1272,1280],{},[481,1236,1237,1239],{},[441,1238,1164],{}," — Pengguna meminta sesuatu kepada agen (\"gambarkan alur kerja proses deployment\").",[481,1241,1242,1245],{},[441,1243,1244],{},"Prompt pemilihan"," — Permintaan pengguna, bersama dengan deskripsi semua skill yang tersedia, dikirim ke LLM.",[481,1247,1248,1250,1251,1254],{},[441,1249,1176],{}," — LLM membandingkan permintaan dengan setiap deskripsi dan mengembalikan skill yang cocok. Di sini, \"gambarkan alur kerja\" cocok dengan deskripsi ",[473,1252,1253],{},"excalidraw-diagram",", sehingga skill tersebut dipilih.",[481,1256,1257,1183],{},[441,1258,1182],{},[481,1260,1261,1189,1263,1265,1266,1268,1269,1271],{},[441,1262,1188],{},[1191,1264,1193],{}," untuk skill yang telah dikonfirmasi: isi ",[473,1267,1042],{}," beserta file referensi lainnya (untuk ",[473,1270,1253],{},", ini mencakup palet warna, skema JSON, dan templat elemen).",[481,1273,1274,1202,1277,1279],{},[441,1275,1276],{},"Prompt eksekusi",[441,1278,1205],{}," dikirim ke LLM. Model sekarang memiliki metodologi mendalam yang dibutuhkannya.",[481,1281,1282,1284,1285,1288],{},[441,1283,1211],{}," — LLM menghasilkan output (file JSON ",[473,1286,1287],{},".excalidraw","), yang kemudian dikembalikan oleh agen kepada pengguna.",[429,1290,1292],{"id":1291},"skill-agen-ai-vs-tools-dan-mcp","Skill Agen AI vs. Tools dan MCP",[434,1294,1295,1296,1299],{},"Skill tidak menggantikan prompt, tools, atau integrasi Model Context Protocol (MCP). Tools dan integrasi MCP memperluas jangkauan agen ke sistem eksternal — seperti melakukan query ke database, memanggil API, dan sebagainya. Sementara itu, skill memperdalam keahlian praktis (",[1191,1297,1298],{},"know-how",") agen untuk menyelesaikan suatu tugas.",[434,1301,1302,1303,1306],{},"Sebuah MCP seperti ",[484,1304,1305],{"href":395},"Cara Setup NetSuite MCP di ChatGPT dan Claude"," memungkinkan agen menjawab pertanyaan pengguna dengan mengakses data keuangan dan operasional langsung di NetSuite. Kemudian, skill pelaporan operasional NetSuite akan memandu agen tentang cara menyusun laporan tersebut dan menyajikan jawabannya sebagai laporan yang rapi kepada pengguna.",[434,1308,1309],{},"Beberapa skenario penggunaan skill meliputi:",[478,1311,1312,1315,1318],{},[481,1313,1314],{},"Alur kerja multi-langkah (multi-step workflows)",[481,1316,1317],{},"Pemrosesan dokumen, seperti mengekstrak data dari PDF",[481,1319,1320],{},"Standarisasi pembuatan kode (code-generation)",[429,1322,1324],{"id":1323},"cara-membuat-skill-agen-ai","Cara Membuat Skill Agen AI",[1158,1326,1327,1337,1351,1360],{},[481,1328,1329,1332,1333,1336],{},[441,1330,1331],{},"Buat folder"," dengan nama yang mewakili skill tersebut (misalnya ",[473,1334,1335],{},"netsuite-operation-report\u002F",").",[481,1338,1339,1344,1345,1347,1348,1350],{},[441,1340,1341,1342],{},"Tulis ",[473,1343,1042],{}," dengan menyertakan ",[473,1346,1073],{},", ",[473,1349,1086],{}," yang tajam, dan isi instruksi yang ringkas (di bawah 200 kata).",[481,1352,1353,1356,1357,1359],{},[441,1354,1355],{},"Tambahkan aset\u002Fsumber daya"," yang dibutuhkan tugas tersebut — dokumen referensi, templat, skrip. Jaga agar ",[473,1358,1042],{}," tetap pendek dan buat tautan ke detailnya.",[481,1361,1362,1365,1366,1369],{},[441,1363,1364],{},"Instal skill"," di tempat yang dapat ditemukan oleh agen. Rujuk ke ",[484,1367,1368],{"href":359},"Sentralisasi Skill untuk Agen AI"," untuk informasi cara mengelola skill di berbagai agen.",[434,1371,1372],{},"Beberapa tips menulis skill yang baik:",[478,1374,1375,1378,1384,1387],{},[481,1376,1377],{},"Tulis deskripsi untuk pemicu sistem (trigger), bukan untuk dibaca manusia.",[481,1379,1380,1381,1383],{},"Jaga agar ",[473,1382,1042],{}," tetap ramping — di bawah 200 kata. Letakkan kasus umum di bagian isi, dan biarkan kasus khusus berada di dokumen referensi.",[481,1385,1386],{},"Gunakan skrip untuk hal-hal yang bersifat deterministik. Jangan meminta LLM melakukan perhitungan aritmatika.",[481,1388,1389],{},"Gunakan versi. Lakukan commit ke git.",[429,1391,950],{"id":949},[434,1393,1394,1395,1398,1399,1402],{},"Berbeda dengan tools dan MCP yang mendefinisikan ",[1191,1396,1397],{},"apa yang harus dihubungkan",", skill agen mengemas ",[1191,1400,1401],{},"bagaimana cara melakukan pekerjaan",". Keduanya adalah pelengkap penting, bukan pengganti satu sama lain.",[434,1404,1405],{},"With memanfaatkan progressive disclosure, skill menjaga context window agen Anda tetap bersih dan efisien — memuat instruksi mendalam, dokumen referensi, dan skrip eksekusi hanya ketika permintaan pengguna memicunya.",[989,1407,1408],{},"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":1410},[1411,1412,1416,1417,1418],{"id":1031,"depth":515,"text":1032},{"id":1132,"depth":515,"text":1133,"children":1413},[1414,1415],{"id":1155,"depth":521,"text":1156},{"id":1232,"depth":521,"text":1156},{"id":1291,"depth":515,"text":1292},{"id":1323,"depth":515,"text":1324},{"id":949,"depth":515,"text":950},[1420],"ai-agents","2026-06-26","Pelajari apa itu skill agen AI, cara kerja progressive disclosure, dan langkah praktis membangun skill kustom yang dapat digunakan kembali untuk alur kerja.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FAI%20Agent%20Skills%20What%20They%20Are%20%26%20How%20to%20Create%20Them\u002FID-AI-Agent-Skills-What-They-Are-%26-How-to-Create-Them.webp","Panduan Skill Agen AI: Cara Membuat Workflow Reusable",{"schemaOrg":1426,"robots":1012,"sitemap":1428},[1427],{"@type":1011,"headline":1026,"description":1422},{"lastmod":1421},{"title":1424,"description":1422,"ogTitle":1026,"ogDescription":1422,"twitterTitle":1026,"twitterDescription":1422},"id\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",[1432,1433,1434,1435],"Agen AI","Keahlian Agen","Alur Kerja yang Dapat Digunakan Kembali","Tutorial AI","UBcL6WjIce5K5DByxI6GshOgI77Q1AiBfEbFA11RXeo",{"id":1438,"title":1439,"author":1020,"body":1440,"category":2236,"date":2237,"description":2238,"extension":1004,"image":2239,"imageAlt":2240,"isPublished":1007,"meta":2241,"minRead":545,"navigation":1007,"path":177,"seo":2247,"stem":2248,"tags":2249,"updatedAt":1020,"__hash__":2254},"article\u002Fid\u002Farticle\u002Fuse-cloudflare-as-ai-memory.md","Membangun Sistem Memori AI Persisten di Cloudflare",{"type":426,"value":1441,"toc":2218},[1442,1446,1449,1452,1456,1459,1473,1477,1484,1498,1501,1504,1548,1552,1633,1637,1662,1779,1790,1794,1799,1844,1868,1872,1877,1950,1955,1959,1993,2001,2040,2044,2076,2080,2088,2093,2123,2127,2167,2169,2172,2175,2178,2181,2215],[429,1443,1445],{"id":1444},"pentingnya-memori-ai-persisten-untuk-agen","Pentingnya Memori AI Persisten untuk Agen",[434,1447,1448],{},"Seiring dengan semakin terintegrasinya asisten AI ke dalam kehidupan kita sehari-hari, kita sering kali menghadapi masalah konteks kosong (blank context). Keputusan yang dibuat minggu lalu terlupakan, sehingga kita harus memasukkan detail tech stack yang sama dan mengatur preferensi pengguna berulang kali di setiap sesi baru.",[434,1450,1451],{},"Alih-alih memulai dari awal setiap kali, kita perlu membangun sistem memori yang terus berkembang, secara konsisten memahami keputusan pengguna, dan menghilangkan kebutuhan untuk mengulang konteks secara terus-menerus.",[429,1453,1455],{"id":1454},"sistem-memori-ai-mandiri-vs-bawaan","Sistem Memori AI Mandiri vs. Bawaan",[434,1457,1458],{},"Banyak agen AI dilengkapi dengan memori bawaan, tetapi kita jarang menggunakan satu agen saja untuk semua kebutuhan. Kita menggunakan Claude untuk merancang dan menyusun arsitektur proyek, Kimi untuk menulis kode, dan ChatGPT untuk riset mendalam. Konteks tidak dibagikan di antara agen-agen ini; semuanya tetap terisolasi di setiap alat secara terpisah.",[434,1460,1461,1462,1467,1468,1472],{},"Dari sudut pandang rekayasa perangkat lunak, kita tidak mempercayai kotak hitam (black box). Kita membutuhkan sistem memori AI yang dapat diobservasi, diaudit, dan berada di bawah kendali kita sepenuhnya. Proyek sumber terbuka ",[484,1463,1466],{"href":1464,"rel":1465},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fsecond-brain-cloudflare\u002Ftree\u002Fmain",[488],"Second Brain",", yang merupakan fork dari ",[484,1469,1470],{"href":1470,"rel":1471},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-cloudflare",[488],", menyediakan sistem memori persisten dan mandiri (self-hosted) dengan dukungan Model Context Protocol (MCP). Agen AI apa pun yang kompatibel seperti Claude, ChatGPT, atau Kimi Code dapat berbagi konteks memori terpadu yang sama.",[429,1474,1476],{"id":1475},"cara-membangun-memori-ai-second-brain-di-cloudflare","Cara Membangun Memori AI Second Brain di Cloudflare",[434,1478,1479,1480,1483],{},"Sistem memori Second Brain diterapkan di atas ",[441,1481,1482],{},"Cloudflare Workers",", yang menyediakan infrastruktur serverless berlatensi sangat rendah yang terdistribusi secara global. Hal ini memungkinkan operasi pencarian memori (recall) dan penyimpanan berjalan hampir instan dalam logika berpikir AI.",[434,1485,1486,1487,1490,1491,1494,1495,1497],{},"Model embedding dari ",[441,1488,1489],{},"Workers AI"," digunakan untuk menghasilkan vektor. Embedding ini disimpan di ",[441,1492,1493],{},"Cloudflare Vectorize",", yang merupakan database vektor terdistribusi global yang sangat optimal. ",[441,1496,1493],{}," melakukan pencarian kemiripan kosinus (cosine similarity) untuk mengidentifikasi memori dengan relevansi semantik.",[434,1499,1500],{},"Second Brain juga dilengkapi dengan mekanisme deduplikasi dan penggabungan cerdas. Konten dengan kemiripan kurang dari 85% akan disimpan langsung; jika tidak, konten tersebut akan diblokir atau ditandai sebagai kandidat duplikat. Teks panjang yang melebihi 1.600 karakter akan dipotong berdasarkan batas kalimat atau baris baru, dengan tetap mempertahankan tumpang tindih (overlap) sebanyak 200 karakter untuk menjaga kontinuitas konteks. Setiap potongan kemudian divektorisasi untuk pencocokan presisi tinggi.",[434,1502,1503],{},"Alat-alat berikut diekspos sebagai antarmuka MCP untuk digunakan langsung oleh agen AI:",[478,1505,1506,1512,1518,1524,1530,1536,1542],{},[481,1507,1508,1511],{},[473,1509,1510],{},"remember",": Menyimpan ide, keputusan, preferensi, dan konteks proyek secara umum.",[481,1513,1514,1517],{},[473,1515,1516],{},"append",": Menambahkan pembaruan ke memori yang sudah ada.",[481,1519,1520,1523],{},[473,1521,1522],{},"update",": Mengganti memori yang ada secara keseluruhan.",[481,1525,1526,1529],{},[473,1527,1528],{},"recall",": Menemukan memori berdasarkan makna semantiknya, bukan kata kunci yang tepat.",[481,1531,1532,1535],{},[473,1533,1534],{},"list_recent",": Menampilkan memori yang baru disimpan.",[481,1537,1538,1541],{},[473,1539,1540],{},"forget",": Menghapus memori secara permanen.",[481,1543,1544,1547],{},[473,1545,1546],{},"link\u002Fconnections",": Menghubungkan memori yang saling berkaitan (fitur graf v2).",[1153,1549,1551],{"id":1550},"menyiapkan-second-brain-di-cloudflare","Menyiapkan Second Brain di Cloudflare",[1158,1553,1554,1571,1578,1585,1592,1599,1610,1616,1619,1626],{},[481,1555,890,1556,1559,1560,1565,1566,1570],{},[473,1557,1558],{},"Deploy to Cloudflare"," pada halaman ",[484,1561,1564],{"href":1562,"rel":1563},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fsecond-brain-cloudflare",[488],"Github repo",". [[",[884,1567],{"alt":1568,"src":1569},"Halaman GitHub dengan tombol Deploy to Cloudflare yang disorot","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fdeploy-to-cloudflare-button.webp","]]",[481,1572,1573,1574],{},"Isi formulir Cloudflare Worker yang ditampilkan.\n",[884,1575],{"alt":1576,"src":1577},"Formulir konfigurasi deployment Cloudflare Workers","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-worker-deployment-form.webp",[481,1579,1580,1581],{},"Masukkan '384' untuk Dimensions; pilih 'cosine' untuk Metric; lalu klik tombol Deploy.\n",[884,1582],{"alt":1583,"src":1584},"Tampilan pengaturan pembuatan database Cloudflare Vectorize","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-vectorize-configuration.webp",[481,1586,1587,1588],{},"Gambar berikut menunjukkan ringkasan dari Second Brain Anda di Cloudflare Worker:\n",[884,1589],{"alt":1590,"src":1591},"Dasbor ikhtisar dari worker Second Brain yang dideploy","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-worker-second-brain-overview.webp",[481,1593,1594,1595],{},"Buka tab 'Settings', lalu klik ikon edit pada variabel 'AUTH_TOKEN' untuk membuat token keamanan:\n",[884,1596],{"alt":1597,"src":1598},"Pengaturan variabel Cloudflare Worker yang menyoroti AUTH_TOKEN","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-worker-auth-token-settings.webp",[481,1600,1601,1602,1606],{},"Klik tautan 'Rotate' untuk memasukkan nilai baru: ",[884,1603],{"alt":1604,"src":1605},"Tampilan modifikasi dan rotasi variabel AUTH_TOKEN","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-worker-auth-token-rotate.webp",[884,1607],{"alt":1608,"src":1609},"Memasukkan string acak yang dihasilkan ke kolom nilai AUTH_TOKEN","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-worker-auth-token-value-input.webp",[481,1611,842,1612,1615],{},[473,1613,1614],{},"openssl rand -base64 32"," di terminal macOS untuk menghasilkan nilai acak yang aman dan tempelkan di bidang input 'Value'.",[481,1617,1618],{},"Klik tombol 'Deploy' untuk menyimpan nilai baru dari variabel 'AUTH_TOKEN'.",[481,1620,1621,1622],{},"Buka URL worker Second Brain Anda di peramban web.\n",[884,1623],{"alt":1624,"src":1625},"Tampilan masuk Web UI Second Brain dengan input Bearer Token","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fsecond-brain-web-ui-login.webp",[481,1627,1628,1629,1632],{},"Masukkan 'AUTH_TOKEN' yang telah dibuat pada kolom input ",[473,1630,1631],{},"Bearer token"," dan klik tombol 'Connect' untuk masuk ke dashboard Web UI.",[1153,1634,1636],{"id":1635},"mengintegrasikan-claude-desktop-via-mcp","Mengintegrasikan Claude Desktop via MCP",[1158,1638,1639,1646,1653],{},[481,1640,1641,1642],{},"Klik 'Customize' pada pengaturan Claude Desktop.\n",[884,1643],{"alt":1644,"src":1645},"Antarmuka Claude Desktop yang menunjuk ke tombol Customize","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-customize-button.webp",[481,1647,1648,1649],{},"Klik 'Developer' untuk membuka dan mengedit file konfigurasi server MCP secara manual:\n",[884,1650],{"alt":1651,"src":1652},"Menu pengaturan Developer Claude Desktop untuk mengakses konfigurasi MCP","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-developer-menu.webp",[481,1654,1655,1656,850,1659,1077],{},"Tambahkan blok kode berikut ke bagian ",[473,1657,1658],{},"mcpServers",[473,1660,1661],{},"claude_desktop_config.json",[498,1663,1667],{"className":1664,"code":1665,"language":1666,"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,1668,1669,1687,1711,1725,1737,1748,1759,1769,1774],{"__ignoreMap":424},[506,1670,1671,1674,1677,1680,1684],{"class":508,"line":509},[506,1672,1673],{"class":1076},"    \"",[506,1675,1676],{"class":1080},"second-brain",[506,1678,1679],{"class":1076},"\"",[506,1681,1683],{"class":1682},"sTEyZ",": ",[506,1685,1686],{"class":1076},"{\n",[506,1688,1689,1692,1696,1698,1700,1703,1706,1708],{"class":508,"line":515},[506,1690,1691],{"class":1076},"      \"",[506,1693,1695],{"class":1694},"spNyl","command",[506,1697,1679],{"class":1076},[506,1699,1077],{"class":1076},[506,1701,1702],{"class":1076}," \"",[506,1704,1705],{"class":1080},"npx",[506,1707,1679],{"class":1076},[506,1709,1710],{"class":1076},",\n",[506,1712,1713,1715,1718,1720,1722],{"class":508,"line":521},[506,1714,1691],{"class":1076},[506,1716,1717],{"class":1694},"args",[506,1719,1679],{"class":1076},[506,1721,1077],{"class":1076},[506,1723,1724],{"class":1076}," [\n",[506,1726,1727,1730,1733,1735],{"class":508,"line":527},[506,1728,1729],{"class":1076},"        \"",[506,1731,1732],{"class":1080},"mcp-remote",[506,1734,1679],{"class":1076},[506,1736,1710],{"class":1076},[506,1738,1739,1741,1744,1746],{"class":508,"line":533},[506,1740,1729],{"class":1076},[506,1742,1743],{"class":1080},"https:\u002F\u002F\u003Cyour-worker-url>\u002Fmcp",[506,1745,1679],{"class":1076},[506,1747,1710],{"class":1076},[506,1749,1750,1752,1755,1757],{"class":508,"line":539},[506,1751,1729],{"class":1076},[506,1753,1754],{"class":1080},"--header",[506,1756,1679],{"class":1076},[506,1758,1710],{"class":1076},[506,1760,1761,1763,1766],{"class":508,"line":545},[506,1762,1729],{"class":1076},[506,1764,1765],{"class":1080},"Authorization: Bearer \u003Cyour-token>",[506,1767,1768],{"class":1076},"\"\n",[506,1770,1771],{"class":508,"line":551},[506,1772,1773],{"class":1076},"      ]\n",[506,1775,1776],{"class":508,"line":557},[506,1777,1778],{"class":1076},"    }\n",[434,1780,1781,1785,1786],{},[884,1782],{"alt":1783,"src":1784},"JSON konfigurasi MCP Claude Desktop yang berisi server Second Brain","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-mcp-config-json.webp","\n4. Mulai ulang Claude Desktop dan periksa daftar 'Local MCP servers'. Statusnya harus menunjukkan 'running' (sedang berjalan).\n",[884,1787],{"alt":1788,"src":1789},"Claude Desktop menampilkan status berjalan untuk server MCP Second Brain","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-mcp-status-running.webp",[1153,1791,1793],{"id":1792},"mengintegrasikan-claude-code-via-mcp","Mengintegrasikan Claude Code via MCP",[478,1795,1796],{},[481,1797,1798],{},"Jalankan perintah berikut untuk menambahkan server MCP baru:",[498,1800,1804],{"className":1801,"code":1802,"language":1803,"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,1805,1806],{"__ignoreMap":424},[506,1807,1808,1811,1814,1817,1820,1823,1826,1829,1832,1835,1838,1841],{"class":508,"line":509},[506,1809,1810],{"class":1066},"claude",[506,1812,1813],{"class":1080}," mcp",[506,1815,1816],{"class":1080}," add",[506,1818,1819],{"class":1080}," --transport",[506,1821,1822],{"class":1080}," http",[506,1824,1825],{"class":1080}," second-brain",[506,1827,1828],{"class":1080}," https:\u002F\u002F",[506,1830,1831],{"class":1076},"\u003C",[506,1833,1834],{"class":1080},"your-worker-ur",[506,1836,1837],{"class":1682},"l",[506,1839,1840],{"class":1076},">",[506,1842,1843],{"class":1080},"\u002Fmcp\n",[478,1845,1846,1852],{},[481,1847,1848,1849,455],{},"Claude Code akan mendeteksi bahwa endpoint memerlukan OAuth dan akan membuka halaman masuk di peramban web untuk memasukkan ",[473,1850,1851],{},"AUTH_TOKEN",[481,1853,1854,1855,1858,1859,1862,1863,455],{},"Buat file ",[473,1856,1857],{},"CLAUDE.md"," di folder ",[473,1860,1861],{},"~\u002F.claude"," dengan instruksi yang dijelaskan di ",[484,1864,1867],{"href":1865,"rel":1866},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-cloudflare\u002Fblob\u002Fmain\u002FAI_Instructions\u002FCLAUDE_INSTRUCTIONS.md",[488],"CLAUDE_INSTRUCTIONS.md",[1153,1869,1871],{"id":1870},"mengintegrasikan-gemini-cli-via-mcp","Mengintegrasikan Gemini CLI via MCP",[1158,1873,1874],{},[481,1875,1876],{},"Tambahkan pengaturan server MCP berikut ke file '.\u002F.gemini\u002Fsettings.json' Anda:",[498,1878,1880],{"className":1664,"code":1879,"language":1666,"meta":424,"style":424},"    \"second-brain\": {\n      \"httpUrl\": \"https:\u002F\u002F\u003Cyour-worker-url>\u002Fmcp\",\n      \"oauth\": {\n        \"enabled\": true\n      }\n    }\n",[473,1881,1882,1894,1913,1927,1941,1946],{"__ignoreMap":424},[506,1883,1884,1886,1888,1890,1892],{"class":508,"line":509},[506,1885,1673],{"class":1076},[506,1887,1676],{"class":1080},[506,1889,1679],{"class":1076},[506,1891,1683],{"class":1682},[506,1893,1686],{"class":1076},[506,1895,1896,1898,1901,1903,1905,1907,1909,1911],{"class":508,"line":515},[506,1897,1691],{"class":1076},[506,1899,1900],{"class":1694},"httpUrl",[506,1902,1679],{"class":1076},[506,1904,1077],{"class":1076},[506,1906,1702],{"class":1076},[506,1908,1743],{"class":1080},[506,1910,1679],{"class":1076},[506,1912,1710],{"class":1076},[506,1914,1915,1917,1920,1922,1924],{"class":508,"line":521},[506,1916,1691],{"class":1076},[506,1918,1919],{"class":1694},"oauth",[506,1921,1679],{"class":1076},[506,1923,1077],{"class":1076},[506,1925,1926],{"class":1076}," {\n",[506,1928,1929,1931,1934,1936,1938],{"class":508,"line":527},[506,1930,1729],{"class":1076},[506,1932,1933],{"class":1066},"enabled",[506,1935,1679],{"class":1076},[506,1937,1077],{"class":1076},[506,1939,1940],{"class":1076}," true\n",[506,1942,1943],{"class":508,"line":533},[506,1944,1945],{"class":1076},"      }\n",[506,1947,1948],{"class":508,"line":539},[506,1949,1778],{"class":1076},[1158,1951,1952],{"start":515},[481,1953,1954],{},"Jalankan Gemini CLI.",[1153,1956,1958],{"id":1957},"menguji-second-brain-di-agen-ai","Menguji Second Brain di Agen AI",[1158,1960,1961,1972,1986],{},[481,1962,1963,1964,1967,1968],{},"Saat mendefinisikan palet warna merek sederhana di ",[441,1965,1966],{},"Claude Desktop",", Second Brain tidak langsung dipanggil secara default.\n",[884,1969],{"alt":1970,"src":1971},"Pengujian pertama di Claude Desktop tanpa lapisan memori Second Brain yang aktif","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-first-run-brand-palette.webp",[481,1973,1974,1975,1978,1979,1981,1982],{},"Saat menggunakan kata kunci sederhana seperti 'remember', hanya alat bawaan lokal ",[473,1976,1977],{},"memory_user-edits"," di ",[441,1980,1966],{}," yang digunakan, bukan lapisan penyimpanan jarak jauh Second Brain.\n",[884,1983],{"alt":1984,"src":1985},"Claude Desktop beralih ke pengeditan pengguna bawaan lokal alih-alih Second Brain","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-remember-built-in-tool-fallback.webp",[481,1987,1988,1989,1992],{},"Saat mengirim perintah berikut di ",[441,1990,1991],{},"Claude Code",", integrasi dengan Second Brain berhasil dipanggil:",[498,1994,1999],{"className":1995,"code":1997,"language":1998},[1996],"language-text","Remember Our brand palette uses `#1a1a2e` as primary, `#16213e` as secondary, and `#e94560` as accent. Never use pure black.\"\n","text",[473,2000,1997],{"__ignoreMap":424},[434,2002,2003,2007,2008,2011,2012,2016,2017,2020,2021,2023,2024,2028,2029,2032,2033,2016,2037],{},[884,2004],{"alt":2005,"src":2006},"Jendela terminal Claude Code menampilkan pemicuan sukses dari MCP Second Brain","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-code-second-brain-mcp-called.webp","\n4. Verifikasi pengaturan warna baru yang disimpan di ",[441,2009,2010],{},"Second Brain di Cloudflare",":\n",[884,2013],{"alt":2014,"src":2015},"Memverifikasi kode warna merek yang disimpan pada Web UI database Second Brain","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fsecond-brain-web-ui-color-verification.webp","\n- ",[1191,2018,2019],{},"Claude Code dapat berfungsi secara otomatis karena file instruksi CLAUDE_INSTRUCTIONS.md berisi aturan yang mengarah pada kata kunci 'Second Brain'.","\n5. Untuk menggunakan integrasi ini di ",[441,2022,1966],{},", kata kunci 'Second Brain' harus disebutkan secara eksplisit dalam prompt Anda untuk memaksa penyimpanan atau pembacaan di lapisan memori persisten ini.\n",[884,2025],{"alt":2026,"src":2027},"Memicu Second Brain di Claude Desktop dengan menyebutkan kata kunci secara eksplisit","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-second-brain-explicit-trigger.webp","\n6. Hal yang sama berlaku untuk ",[441,2030,2031],{},"Gemini CLI",", Anda harus menyebutkan kata kunci 'Second Brain' untuk mengaktifkan alat MCP Second Brain.\n",[884,2034],{"alt":2035,"src":2036},"Jendela terminal Gemini CLI mendemonstrasikan panggilan sukses ke MCP Second Brain","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fgemini-cli-second-brain-trigger.webp",[1191,2038,2039],{},"Menambahkan instruksi serupa ke file GEMINI.md, seperti yang telah dilakukan pada CLAUDE_INSTRUCTIONS.md, akan mengaktifkan Second Brain di latar belakang tanpa harus menulis kata kunci secara manual.",[1153,2041,2043],{"id":2042},"ekstensi-peramban-web","Ekstensi Peramban Web",[478,2045,2046,2049],{},[481,2047,2048],{},"Ekstensi tersedia untuk peramban web Chrome, Firefox, dan Microsoft Edge.",[481,2050,2051,2052],{},"Fitur ekstensi meliputi:\n",[478,2053,2054,2060,2066],{},[481,2055,2056,2059],{},[441,2057,2058],{},"Mengambil halaman saat ini"," — menyimpan judul dan URL halaman ke Second Brain.",[481,2061,2062,2065],{},[441,2063,2064],{},"Mengambil teks terpilih"," — pilih teks apa pun pada halaman sebelum mengklik ikon ekstensi; cuplikan tersebut akan disimpan bersama judul dan URL.",[481,2067,2068,2071,2072,2075],{},[441,2069,2070],{},"Menambahkan catatan cepat"," — ketik catatan atau gunakan ",[473,2073,2074],{},"#hashtags"," langsung di popup ekstensi sebelum menyimpan; hashtag akan diekstrak secara otomatis sebagai tag.",[1153,2077,2079],{"id":2078},"sinkronisasi-pengetahuan-pribadi-dengan-plugin-obsidian","Sinkronisasi Pengetahuan Pribadi dengan Plugin Obsidian",[478,2081,2082,2085],{},[481,2083,2084],{},"Tersedia plugin Obsidian untuk menyinkronkan catatan dari Obsidian Vault Anda langsung ke Second Brain di Cloudflare.",[481,2086,2087],{},"Catatan dapat ditandai dengan tag khusus untuk disinkronkan ke penyimpanan persisten.",[2089,2090,2092],"h4",{"id":2091},"menginstal-plugin-obsidian","Menginstal Plugin Obsidian",[1158,2094,2095,2102,2109,2116],{},[481,2096,2097,2098],{},"Buka Obsidian → Settings → Community Plugins\n",[884,2099],{"alt":2100,"src":2101},"Panel pengaturan Obsidian menavigasi ke bagian Community Plugins","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-settings-community-plugins.webp",[481,2103,2104,2105],{},"Klik tombol 'Browse'.\n",[884,2106],{"alt":2107,"src":2108},"Halaman pencarian plugin komunitas Obsidian menampilkan tombol Browse","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-community-plugins-browse.webp",[481,2110,2111,2112],{},"Cari 'Second Brain Sync'.\n",[884,2113],{"alt":2114,"src":2115},"Mencari plugin Second Brain Sync di toko plugin Obsidian","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-community-plugins-search-second-brain.webp",[481,2117,2118,2119],{},"Klik tombol 'Install' lalu 'Enable'.\n",[884,2120],{"alt":2121,"src":2122},"Menginstal dan mengaktifkan plugin Second Brain Sync di Obsidian","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-plugin-install-and-enable.webp",[2089,2124,2126],{"id":2125},"mengonfigurasi-plugin-obsidian","Mengonfigurasi Plugin Obsidian",[1158,2128,2129,2132,2139,2146,2153,2160],{},[481,2130,2131],{},"Buka Obsidian → Settings → Second Brain Sync",[481,2133,2134,2135],{},"Masukkan 'URL' dan 'Auth token' Anda.\n",[884,2136],{"alt":2137,"src":2138},"Memasukkan URL Worker dan Token Otorisasi di pengaturan plugin Obsidian","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-plugin-configuration-credentials.webp",[481,2140,2141,2142],{},"Klik tombol 'Test' untuk memverifikasi koneksi.\n",[884,2143],{"alt":2144,"src":2145},"Pengujian koneksi plugin Obsidian menunjukkan verifikasi sukses","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-plugin-connection-test-success.webp",[481,2147,2148,2149],{},"Konfigurasikan perilaku sinkronisasi. Atur tag sinkronisasi di 'Sync tag' dan aktifkan 'Auto-sync on save'.\n",[884,2150],{"alt":2151,"src":2152},"Mengonfigurasi Sync Tag dan mengaktifkan sinkronisasi otomatis saat menyimpan di Obsidian","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-plugin-sync-behavior-settings.webp",[481,2154,2155,2156],{},"Buat catatan di Obsidian dengan tag 'second-brain', sesuai dengan yang dikonfigurasi di 'Sync tag'.\n",[884,2157],{"alt":2158,"src":2159},"Membuat catatan Obsidian baru dengan tag second-brain untuk sinkronisasi","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-note-with-sync-tag.webp",[481,2161,2162,2163],{},"Catatan tersebut kini telah disimpan dan disinkronkan ke Second Brain yang diterapkan di Cloudflare.\n",[884,2164],{"alt":2165,"src":2166},"Memverifikasi catatan Obsidian yang sukses disinkronkan pada Web UI Second Brain","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fsecond-brain-web-ui-synced-note-verification.webp",[429,2168,950],{"id":949},[434,2170,2171],{},"Second Brain menawarkan solusi sumber terbuka yang cerdas untuk mengatasi salah satu masalah paling membuat frustrasi dalam AI: ketiadaan memori persisten. Dengan memadukan proyek ini dengan infrastruktur Cloudflare yang skalabel, kita mendapatkan lapisan memori semantik mandiri yang terdistribusi secara global dengan latensi sangat rendah. Dukungan MCP yang tertanam di Second Brain membuat memori ini sepenuhnya portabel di berbagai agen AI.",[434,2173,2174],{},"Plugin Obsidian memperluas arsitektur ini dengan menghubungkan catatan pribadi di dalam vault dengan logika berpikir AI. Catatan mentah Anda diubah menjadi konteks terstruktur yang dapat dipahami dan dipanggil secara semantik oleh agen AI kapan saja.",[434,2176,2177],{},"Dengan menyatukan self-hosting, pencarian semantik vektor, dan standar integrasi berbasis MCP; Second Brain membuktikan dirinya bukan sekadar tempat penyimpanan memori, melainkan fondasi praktis untuk membangun ekosistem AI yang andal.",[429,2179,2180],{"id":956},"Referensi:",[478,2182,2183,2189,2195,2202,2209],{},[481,2184,2185],{},[484,2186,2187],{"href":2187,"rel":2188},"https:\u002F\u002Fwww.thesecondbrain.dev\u002F",[488],[481,2190,2191],{},[484,2192,2193],{"href":2193,"rel":2194},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-cloudflare\u002Fwiki\u002FHow-It-Works",[488],[481,2196,2197],{},[484,2198,2201],{"href":2199,"rel":2200},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-cloudflare\u002Fwiki\u002FConnect-to-AI-Clients",[488],"Connect to AI Clients",[481,2203,2204],{},[484,2205,2208],{"href":2206,"rel":2207},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-cloudflare\u002Fwiki\u002FObsidian-Plugin",[488],"Second Brain Obsidian Plugin",[481,2210,2211],{},[484,2212,2213],{"href":2213,"rel":2214},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-obsidian-plugin",[488],[989,2216,2217],{},"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":2219},[2220,2221,2222,2234,2235],{"id":1444,"depth":515,"text":1445},{"id":1454,"depth":515,"text":1455},{"id":1475,"depth":515,"text":1476,"children":2223},[2224,2225,2226,2227,2228,2229,2230],{"id":1550,"depth":521,"text":1551},{"id":1635,"depth":521,"text":1636},{"id":1792,"depth":521,"text":1793},{"id":1870,"depth":521,"text":1871},{"id":1957,"depth":521,"text":1958},{"id":2042,"depth":521,"text":2043},{"id":2078,"depth":521,"text":2079,"children":2231},[2232,2233],{"id":2091,"depth":527,"text":2092},{"id":2125,"depth":527,"text":2126},{"id":949,"depth":515,"text":950},{"id":956,"depth":515,"text":2180},[1001,1420],"2026-08-07","Pelajari cara membangun sistem memori AI persisten dan mandiri di Cloudflare menggunakan Second Brain dan MCP. Berbagi konteks di Claude dan Obsidian.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002FID-Use-Cloudflare-as-AI-memory.webp","Sistem memori AI persisten dan mandiri yang dideploy di Cloudflare Workers dan Vectorize dengan dukungan MCP dan sinkronisasi Obsidian.",{"schemaOrg":2242,"robots":1012,"sitemap":2246},[2243],{"@type":2244,"headline":2245,"description":2238},"TechArticle","Sistem Memori AI Mandiri dengan Cloudflare & MCP",{"lastmod":2237},{"title":2245,"description":2238,"ogTitle":1439,"ogDescription":2238,"twitterTitle":1439,"twitterDescription":2238},"id\u002Farticle\u002Fuse-cloudflare-as-ai-memory",[2250,2251,2252,1466,2253],"Cloudflare","MCP","Memori AI","Obsidian","9yZS7dESNmDcB1oP9vh_bLPfFb6ffNM8_A7ZXzmLTj8",[2256,2558,3149],{"id":2257,"title":2258,"author":1020,"body":2259,"category":2544,"date":2545,"description":2546,"extension":1004,"image":2547,"imageAlt":2548,"isPublished":1007,"meta":2549,"minRead":551,"navigation":1007,"path":371,"seo":2554,"stem":2555,"tags":2556,"updatedAt":1020,"__hash__":2557},"article\u002Fid\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare.md","Sembunyikan NodeWarden Anda di Balik Cloudflare",{"type":426,"value":2260,"toc":2535},[2261,2268,2274,2303,2307,2318,2321,2325,2328,2332,2366,2370,2376,2443,2447,2457,2520,2524],[434,2262,2263,2264,2267],{},"Saat NodeWarden Anda terekspos secara publik di internet, ia akan mulai menarik ribuan bot otomatis yang mencari celah keamanan selama 24\u002F7. Untuk melindungi data sensitif Anda, ",[1191,2265,2266],{},"instance"," NodeWarden Anda harus dikunci dengan tingkat keamanan maksimal.",[434,2269,2270,2271,2273],{},"Untuk mengamankan ",[1191,2272,2266],{}," NodeWarden Anda, ada dua fitur Cloudflare yang bisa digunakan:",[478,2275,2276,2290],{},[481,2277,2278,2281,2282,2285,2286,2289],{},[441,2279,2280],{},"Cloudflare IP Access Rules:"," Memungkinkan Anda untuk memblokir, memberikan tantangan keamanan (",[1191,2283,2284],{},"challenge","), atau mengizinkan ",[1191,2287,2288],{},"traffic"," berdasarkan alamat IP atau negara tertentu.",[481,2291,2292,2295,2296,2299,2300,2302],{},[441,2293,2294],{},"Cloudflare Zero Trust (Direkomendasikan):"," Bertindak sebagai ",[1191,2297,2298],{},"gateway"," aman yang membuat ",[1191,2301,2266],{}," NodeWarden Anda sama sekali tidak terlihat oleh publik, dan hanya mengizinkan pengguna yang sah untuk masuk.",[2089,2304,2306],{"id":2305},"mengapa-kami-merekomendasikan-cloudflare-zero-trust","Mengapa kami merekomendasikan Cloudflare Zero Trust",[434,2308,2309,2310,2313,2314,2317],{},"Kami sangat menyarankan penggunaan Cloudflare Zero Trust karena ",[1191,2311,2312],{},"IP Access Rules"," terikat pada alamat IP atau negara. Ini berarti Anda harus memperbarui aturan Anda secara manual setiap kali Anda bepergian atau jika Anda menggunakan IP dinamis. Sebaliknya, Cloudflare Zero Trust mengandalkan ",[441,2315,2316],{},"identitas"," Anda, bukan lokasi Anda—sehingga memberikan Anda akses yang lancar dan aman ke NodeWarden.",[2319,2320],"hr",{},[429,2322,2324],{"id":2323},"panduan-konfigurasi","Panduan Konfigurasi",[434,2326,2327],{},"Ikuti langkah-langkah berikut untuk mengonfigurasi Cloudflare Zero Trust untuk NodeWarden.",[2089,2329,2331],{"id":2330},"fase-1-memulai","Fase 1: Memulai",[1158,2333,2334,2345,2352,2359],{},[481,2335,2336,2337,2340,2341],{},"Di ",[1191,2338,2339],{},"dashboard"," Cloudflare Anda, klik 'Zero Trust' dari menu sebelah kiri.\n",[884,2342],{"alt":2343,"src":2344},"Bilah sisi dashboard Cloudflare menunjukkan opsi Zero Trust yang dipilih di menu navigasi.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-dashboard-zero-trust-sidebar.webp",[481,2346,2347,2348],{},"Klik 'Access controls' lalu klik 'Applications'.\n",[884,2349],{"alt":2350,"src":2351},"Menu navigasi Cloudflare Zero Trust dengan bagian Kontrol akses yang diperluas.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-zero-trust-access-controls-menu.webp",[481,2353,2354,2355],{},"Anda mungkin akan diminta untuk memilih paket ('Choose a plan').\n",[884,2356],{"alt":2357,"src":2358},"Layar pengaturan akun Cloudflare Zero Trust yang meminta pengguna untuk memilih paket langganan.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-zero-trust-choose-plan-setup.webp",[481,2360,2361,2362],{},"Klik tombol 'Choose a plan' dan pilih 'Zero Trust Free'.\n",[884,2363],{"alt":2364,"src":2365},"Halaman detail paket Zero Trust Free di Cloudflare, menyoroti tombol Pilih paket.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-zero-trust-free-plan-selection.webp",[2089,2367,2369],{"id":2368},"fase-2-mengamankan-antarmuka-web-anda","Fase 2: Mengamankan Antarmuka Web Anda",[434,2371,2372,2373,2375],{},"Pertama, kita akan membuat aplikasi untuk melindungi ",[1191,2374,2339],{}," web NodeWarden.",[1158,2377,2378,2385,2392,2399,2406,2413,2420,2423,2430,2433],{},[481,2379,2380,2381],{},"Klik 'Create new application' untuk membuat aplikasi pertama.\n",[884,2382],{"alt":2383,"src":2384},"Dashboard Aplikasi Cloudflare Access yang menampilkan tombol Buat aplikasi baru.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-create-new-application.webp",[481,2386,2387,2388],{},"Pilih 'Self-hosted and private'.\n",[884,2389],{"alt":2390,"src":2391},"Modal Tambahkan aplikasi di Cloudflare Access dengan jenis aplikasi Self-hosted dan privat yang dipilih.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-add-self-hosted-application.webp",[481,2393,2394,2395],{},"Masukkan nama domain dari NodeWarden Anda.\n",[884,2396],{"alt":2397,"src":2398},"Layar konfigurasi aplikasi Cloudflare Access yang menunjukkan hostname publik yang diatur ke warden.techvoyage.dev.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-application-public-hostname.webp",[481,2400,2401,2402],{},"Klik 'Create new policy' untuk membuat kebijakan.\n",[884,2403],{"alt":2404,"src":2405},"Halaman kebijakan Cloudflare Access menunjukkan tidak ada kebijakan yang ditambahkan dan tombol untuk membuat kebijakan baru.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-no-policies-create-button.webp",[481,2407,2408,2409],{},"Pilih 'Emails' dan masukkan email Anda di bawah 'Policy rules'.\n",[884,2410],{"alt":2411,"src":2412},"Layar konfigurasi aturan kebijakan Cloudflare Access dengan alamat email yang ditentukan sebagai kriteria inklusi.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-rule-email.webp",[481,2414,2415,2416],{},"Masukkan nama dan pilih 'Allow' di bawah 'Policy details'.\n",[884,2417],{"alt":2418,"src":2419},"Layar detail kebijakan Cloudflare Access menunjukkan nama kebijakan NodeWarden-Web dan tindakan yang diatur ke Izinkan.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-details-allow.webp",[481,2421,2422],{},"Klik 'Save Policy' untuk membuat kebijakan.",[481,2424,2425,2426],{},"Masukkan nama dan pilih '1 month' pada bagian 'Details'.\n",[884,2427],{"alt":2428,"src":2429},"Ringkasan konfigurasi akhir untuk aplikasi Cloudflare Access bernama NodeWarden-Web dengan durasi sesi satu bulan.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-application-final-details.webp",[481,2431,2432],{},"Klik 'Create' untuk membuat aplikasi.",[481,2434,2435,2438,2439],{},[441,2436,2437],{},"Uji coba:"," Buka domain tersebut di browser web, Anda akan melihat 'Cloudflare Access' meminta Anda memasukkan email.\n",[884,2440],{"alt":2441,"src":2442},"Pratinjau layar login Cloudflare Access untuk NodeWarden-Web, yang meminta alamat email.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-login-screen-preview.webp",[2089,2444,2446],{"id":2445},"fase-3-mengizinkan-sinkronisasi-klien-bitwarden-api-bypass","Fase 3: Mengizinkan Sinkronisasi Klien BitWarden (API Bypass)",[434,2448,2449,2450,2452,2453,2456],{},"Aplikasi desktop dan seluler BitWarden tidak dapat memproses layar login email Cloudflare, jadi kita perlu membuat aplikasi kedua yang mengizinkan ",[1191,2451,2288],{}," untuk melewati (",[1191,2454,2455],{},"bypass",") layar login tersebut khusus untuk keperluan sinkronisasi API.",[1158,2458,2459,2470,2485,2489,2496,2503,2506,2513],{},[481,2460,2461,2462,2465,2466,2469],{},"Kembali ke Applications dan klik ",[441,2463,2464],{},"Create new application",", lalu pilih ",[441,2467,2468],{},"Self-hosted and private"," lagi.",[481,2471,2472,2473,2476,2477,2480,2481],{},"Masukkan 'api\u002F",[1191,2474,2475],{},"', 'identity\u002F","', 'notifications\u002F",[1191,2478,2479],{},"' dan 'icons\u002F","' pada bagian Destinations.\n",[884,2482],{"alt":2483,"src":2484},"Mengonfigurasi beberapa hostname publik untuk bypass API di Cloudflare Access, termasuk jalur api, identity, notifications, dan icons.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-api-bypass-destinations.webp",[481,2486,2401,2487],{},[884,2488],{"alt":2404,"src":2405},[481,2490,2491,2492],{},"Pilih 'Everyone' di bawah 'Policy rules'.\n",[884,2493],{"alt":2494,"src":2495},"Konfigurasi aturan kebijakan Cloudflare Access dengan Semua Orang dipilih untuk mengizinkan akses luas ke jalur tertentu.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-rule-everyone.webp",[481,2497,2498,2499],{},"Masukkan nama dan pilih 'Bypass' di bawah 'Policy details'.\n",[884,2500],{"alt":2501,"src":2502},"Detail kebijakan Cloudflare Access untuk NodeWarden-API dengan tindakan yang diatur ke Bypass.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-details-bypass.webp",[481,2504,2505],{},"Klik 'Save Policy' untuk menyimpan kebijakan.",[481,2507,2508,2509],{},"Masukkan nama dan pilih '1 month' untuk 'Session Duration'.\n",[884,2510],{"alt":2511,"src":2512},"Layar konfigurasi akhir untuk aplikasi NodeWarden-API di Cloudflare Access.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-api-application-final-details.webp",[481,2514,2515,2516],{},"Sekarang Anda seharusnya sudah memiliki 2 aplikasi yang dibuat.\n",[884,2517],{"alt":2518,"src":2519},"Dashboard aplikasi Cloudflare Access menunjukkan aplikasi Web dan API yang berhasil dibuat.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-applications-list-final.webp",[429,2521,2523],{"id":2522},"catatan-penutup","Catatan Penutup",[434,2525,2526,2527,2530,2531,2534],{},"Ingatlah bahwa Cloudflare hanyalah perisai pelindung luar Anda. Untuk menjaga brankas (",[1191,2528,2529],{},"vault",") data yang benar-benar aman, pastikan Anda tetap menggunakan kata sandi utama (",[1191,2532,2533],{},"master password",") yang kuat, mengaktifkan Autentikasi Dua Faktor (2FA), dan menjaga keamanan akun Cloudflare Anda.",{"title":424,"searchDepth":515,"depth":521,"links":2536},[2537,2538,2543],{"id":2305,"depth":527,"text":2306},{"id":2323,"depth":515,"text":2324,"children":2539},[2540,2541,2542],{"id":2330,"depth":527,"text":2331},{"id":2368,"depth":527,"text":2369},{"id":2445,"depth":527,"text":2446},{"id":2522,"depth":515,"text":2523},[1000,1001],"2026-05-27","Saat NodeWarden Anda terekspos secara publik di internet, ia akan mulai menarik ribuan bot otomatis yang mencari celah keamanan selama 24\u002F7.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fpanduan-amankan-nodewarden-integrasi-cloudflare.webp","Gambar thumbnail panduan langkah demi langkah untuk mengamankan brankas NodeWarden dengan integrasi Cloudflare, menampilkan ilustrasi brankas digital yang terkunci dan rak server yang terlindungi.",{"schemaOrg":2550,"robots":1012,"sitemap":2553},[2551],{"@type":2244,"headline":2552,"description":2546},"Berhenti Mengekspos Brankas Anda: Amankan NodeWarden dengan Cloudflare",{"lastmod":2545},{"title":2552,"description":2546,"ogTitle":2552,"ogDescription":2546,"twitterTitle":2552,"twitterDescription":2546},"id\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",[],"16gLcWHwWoh1K-3qpLuWzp8znYiioCdEohQg9N1Bf1g",{"id":2559,"title":2560,"author":1020,"body":2561,"category":3135,"date":3136,"description":3137,"extension":1004,"image":3138,"imageAlt":3139,"isPublished":1007,"meta":3140,"minRead":551,"navigation":1007,"path":387,"seo":3145,"stem":3146,"tags":3147,"updatedAt":1020,"__hash__":3148},"article\u002Fid\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare.md","Cara Self-Host Brankas Kata Sandi ala BitWarden",{"type":426,"value":2562,"toc":3120},[2563,2566,2572,2576,2766,2770,2786,2790,2820,2824,2854,2858,2892,2896,2940,2944,2980,2984,2987,2991,3020,3024,3047,3051,3054,3071,3076,3079,3082,3096,3100,3113,3115],[434,2564,2565],{},"Password adalah aset digital kamu yang paling penting, dan memastikannya tetap aman berarti menyimpannya di tangan kamu sendiri. Dengan melakukan self-hosting password manager, kamu bisa mengontrol keamanan kamu sendiri. ",[434,2567,2568,2571],{},[441,2569,2570],{},"BitWarden","​ secara luas dianggap sebagai salah satu yang paling dipercaya dalam bidang manajemen password, dan source code-nya tersedia di bawah lisensi AGPL-3.0. Sebuah server tidak resmi yang kompatibel dengan BitWarden, yaitu NodeWarden, ditulis dalam Typescript dan bisa di-deploy secara gratis di Cloudflare.",[429,2573,2575],{"id":2574},"perbandingan-fitur-dengan-server-resmi-bitwarden","Perbandingan Fitur dengan Server Resmi BitWarden",[2577,2578,2579,2597],"table",{},[2580,2581,2582],"thead",{},[2583,2584,2585,2589,2591,2594],"tr",{},[2586,2587,2588],"th",{},"Kemampuan",[2586,2590,2570],{},[2586,2592,2593],{},"NodeWarden",[2586,2595,2596],{},"Catatan",[2598,2599,2600,2617,2632,2644,2656,2671,2688,2703,2718,2730,2742,2755],"tbody",{},[2583,2601,2602,2606,2609,2611],{},[2603,2604,2605],"td",{},"Web Vault",[2603,2607,2608],{},"✅",[2603,2610,2608],{},[2603,2612,2613,2616],{},[441,2614,2615],{},"Antarmuka Web Vault asli","​",[2583,2618,2619,2625,2627,2629],{},[2603,2620,2621,2622],{},"Full sync ",[473,2623,2624],{},"\u002Fapi\u002Fsync",[2603,2626,2608],{},[2603,2628,2608],{},[2603,2630,2631],{},"Kompatibilitas dioptimalkan untuk klien resmi",[2583,2633,2634,2637,2639,2641],{},[2603,2635,2636],{},"Upload \u002F download Attachment",[2603,2638,2608],{},[2603,2640,2608],{},[2603,2642,2643],{},"Cloudflare R2 atau KV",[2583,2645,2646,2649,2651,2653],{},[2603,2647,2648],{},"Send",[2603,2650,2608],{},[2603,2652,2608],{},[2603,2654,2655],{},"Mendukung Send dalam bentuk teks maupun file",[2583,2657,2658,2661,2663,2665],{},[2603,2659,2660],{},"Import \u002F Export",[2603,2662,2608],{},[2603,2664,2608],{},[2603,2666,2667,2668,2616],{},"Mendukung impor JSON \u002F CSV \u002F ",[441,2669,2670],{},"ZIP BitWarden dengan attachment",[2583,2672,2673,2678,2681,2683],{},[2603,2674,2675,2616],{},[441,2676,2677],{},"Pusat Backup Cloud",[2603,2679,2680],{},"❌",[2603,2682,2608],{},[2603,2684,2685,2616],{},[441,2686,2687],{},"Backup terjadwal ke WebDAV \u002F E3",[2583,2689,2690,2693,2696,2698],{},[2603,2691,2692],{},"Petunjuk password (web)",[2603,2694,2695],{},"⚠️ Terbatas",[2603,2697,2608],{},[2603,2699,2700,2616],{},[441,2701,2702],{},"Tidak membutuhkan email",[2583,2704,2705,2708,2710,2712],{},[2603,2706,2707],{},"TOTP \u002F Steam TOTP",[2603,2709,2608],{},[2603,2711,2608],{},[2603,2713,2714,2715],{},"Termasuk dukungan ",[473,2716,2717],{},"steam:\u002F\u002F",[2583,2719,2720,2723,2725,2727],{},[2603,2721,2722],{},"Multi-user",[2603,2724,2608],{},[2603,2726,2608],{},[2603,2728,2729],{},"Registrasi berbasis invite (undangan)",[2583,2731,2732,2735,2737,2739],{},[2603,2733,2734],{},"Organisasi \u002F Koleksi \u002F Peran Anggota",[2603,2736,2608],{},[2603,2738,2680],{},[2603,2740,2741],{},"Belum diimplementasikan",[2583,2743,2744,2747,2749,2752],{},[2603,2745,2746],{},"Login 2FA",[2603,2748,2608],{},[2603,2750,2751],{},"⚠️ Parsial",[2603,2753,2754],{},"Saat ini hanya TOTP pada tingkat user",[2583,2756,2757,2760,2762,2764],{},[2603,2758,2759],{},"SSO \u002F SCIM \u002F Enterprise directory",[2603,2761,2608],{},[2603,2763,2680],{},[2603,2765,2741],{},[429,2767,2769],{"id":2768},"apa-saja-yang-kita-butuhkan","Apa saja yang kita butuhkan:",[1158,2771,2772,2777,2783],{},[481,2773,2774],{},[441,2775,2776],{},"Akun GitHub",[481,2778,2779,2782],{},[441,2780,2781],{},"Akun Cloudflare","​ (Gratis) yang sudah mengaktifkan R2 Storage.",[481,2784,2785],{},"_Opsional:_Custom domain yang dikelola di Cloudflare.",[1153,2787,2789],{"id":2788},"fase-1-siapkan-kode","Fase 1: Siapkan Kode",[1158,2791,2792,2811],{},[481,2793,2794,2795,2799,2800,2804,2805,2807],{},"Lakukan _Fork_repositori NodeWarden dari ",[484,2796,2797],{"href":2797,"rel":2798},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fnodewarden",[488]," dari repositori aslinya, ",[484,2801,2802],{"href":2802,"rel":2803},"https:\u002F\u002Fgithub.com\u002Fshuaiplus\u002Fnodewarden",[488]," GitHub.",[881,2806],{},[884,2808],{"alt":2809,"src":2810},"Melakukan fork pada repositori NodeWarden di GitHub","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Ffork-nodewarden-repo.webp",[481,2812,2813,2814,2816],{},"Aktifkan Workflow \"Sync Upstream\".",[881,2815],{},[884,2817],{"alt":2818,"src":2819},"Mengaktifkan workflow Sync Upstream di GitHub Actions","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fenable-sync-upstream.webp",[1153,2821,2823],{"id":2822},"fase-2-deploy-ke-cloudflare","Fase 2: Deploy ke Cloudflare",[1158,2825,2826,2835,2848],{},[481,2827,2828,2829,2831],{},"Buat Aplikasi Worker di Cloudflare.",[881,2830],{},[884,2832],{"alt":2833,"src":2834},"Membuat aplikasi Worker baru di dashboard Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcreate-cloudflare-worker.webp",[481,2836,2837,2838,2840,2844],{},"Pilih 'Continue with GitHub' untuk mendeploy app tersebut.",[881,2839],{},[884,2841],{"alt":2842,"src":2843},"Men-deploy aplikasi NodeWarden dengan menghubungkan ke GitHub","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fdeploy-github-repo.webp",[884,2845],{"alt":2846,"src":2847},"Progres pembangunan dan deployment Worker Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-deploy-status.webp",[481,2849,2850,2851,455],{},"Tunggu beberapa saat agar Cloudflare melakukan build dan deploy app kamu. Nantinya kamu akan diberi URL default ",[473,2852,2853],{},"worker.dev",[1153,2855,2857],{"id":2856},"opsional-tambahkan-custom-domain","(Opsional) Tambahkan Custom Domain:",[478,2859,2860,2866,2879],{},[481,2861,2862,2863,455],{},"Di dalam setting Cloudflare Worker kamu, masuk ke tab ",[441,2864,2865],{},"Settings",[481,2867,2868,2869,2872,2873,2872,2876,455],{},"Klik ",[441,2870,2871],{},"Triggers","​ -> ",[441,2874,2875],{},"Custom Domains",[441,2877,2878],{},"+ Add Custom Domain",[481,2880,2881,2882,2884,2888],{},"Ketik domain pilihan kamu dan ikuti petunjuknya.",[881,2883],{},[884,2885],{"alt":2886,"src":2887},"Menavigasi ke pengaturan domain kustom di Worker Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fworker-settings-custom-domain.webp",[884,2889],{"alt":2890,"src":2891},"Menambahkan domain kustom ke Worker Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fadd-custom-domain.webp",[1153,2893,2895],{"id":2894},"fase-3-amankan-server-kamu-jwt-secret","Fase 3: Amankan Server Kamu (JWT Secret)",[1158,2897,2898,2901,2913,2934],{},[481,2899,2900],{},"Buka browser web dan masukkan custom domain atau domain 'worker.dev' yang telah di-generate.",[481,2902,2903,2904,455,2907,2909],{},"Kamu akan mendapati peringatan '",[441,2905,2906],{},"JWT_SECRET is missing'",[881,2908],{},[884,2910],{"alt":2911,"src":2912},"Pesan error JWT_SECRET is missing di server NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fjwt-secret-missing-error.webp",[481,2914,2915,2916,2919,2920,2923,2924,2926,2930],{},"Copy secret key yang di-generate, lalu kembali ke tab Settings di NodeWarden Worker, kemudian klik tombol '",[441,2917,2918],{},"+ Add","' di bagian '",[441,2921,2922],{},"Variables and Secrets","'.",[881,2925],{},[884,2927],{"alt":2928,"src":2929},"Bagian Variabel dan Rahasia di pengaturan Worker Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fworker-variables-secrets.webp",[884,2931],{"alt":2932,"src":2933},"Menambahkan rahasia JWT yang dihasilkan ke variabel Worker Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fadd-jwt-secret.webp",[481,2935,2936,2937,2923],{},"Masukkan secret yang di-generate tadi, lalu klik tombol '",[441,2938,2939],{},"Deploy \u002F Save",[1153,2941,2943],{"id":2942},"fase-4-buat-akun-admin","Fase 4: Buat Akun Admin",[1158,2945,2946,2955,2968,2977],{},[481,2947,2948,2949,2951],{},"Kembali ke browser web lalu refresh halamannya, kamu akan melihat halaman login berikut.",[881,2950],{},[884,2952],{"alt":2953,"src":2954},"Halaman login server NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fnodewarden-login.webp",[481,2956,2957,2958,2961,2962,2964],{},"Klik '",[441,2959,2960],{},"Create Account","' untuk membuat akun admin.",[881,2963],{},[884,2965],{"alt":2966,"src":2967},"Mengklik tombol Create Account di halaman login NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcreate-account-button.webp",[481,2969,2970,2971,2973],{},"Login menggunakan akun admin yang baru saja dibuat ke dalam Dashboard.",[881,2972],{},[884,2974],{"alt":2975,"src":2976},"Tinjauan dashboard admin NodeWarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fnodewarden-dashboard.webp",[481,2978,2979],{},"Sekarang server kita sudah di-deploy dan berjalan. Selanjutnya kita mulai mengatur klien BitWarden.",[1153,2981,2983],{"id":2982},"fase-5-hubungkan-perangkat-kamu","Fase 5: Hubungkan Perangkat Kamu",[434,2985,2986],{},"Kamu bisa menggunakan aplikasi resmi BitWarden di semua perangkat kamu.",[2089,2988,2990],{"id":2989},"ekstensi-chrome","Ekstensi Chrome",[1158,2992,2993,2996,2999,3008,3017],{},[481,2994,2995],{},"Install ekstensi BitWarden di Chrome.",[481,2997,2998],{},"Buka ekstensinya.",[481,3000,3001,3002,3004],{},"Klik link di sebelah 'Accessing:' pada bagian bawah popup.",[881,3003],{},[884,3005],{"alt":3006,"src":3007},"Memilih opsi self-hosted di ekstensi Chrome Bitwarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-extension-self-hosted.webp",[481,3009,3010,3011,3013],{},"Masukkan nama domain dari server NodeWarden.",[881,3012],{},[884,3014],{"alt":3015,"src":3016},"Memasukkan URL server di ekstensi Chrome Bitwarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-extension-domain.webp",[481,3018,3019],{},"Simpan pengaturan lalu login dengan akun kamu.",[2089,3021,3023],{"id":3022},"aplikasi-ios","Aplikasi iOS",[1158,3025,3026,3029,3038],{},[481,3027,3028],{},"Install aplikasi Bitwarden dari App Store.",[481,3030,3031,3032,3034],{},"Buka aplikasi tersebut lalu klik 'Self-hosted' di sebelah 'Logging in on:'.",[881,3033],{},[884,3035],{"alt":3036,"src":3037},"Mengakses pengaturan self-hosted di aplikasi iOS Bitwarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-ios-self-hosted.webp",[481,3039,3040,3041,3043],{},"Masukkan nama domain server NodeWarden lalu klik tombol '✓'.",[881,3042],{},[884,3044],{"alt":3045,"src":3046},"Mengonfigurasi URL server di aplikasi iOS Bitwarden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fbitwarden-ios-domain.webp",[2089,3048,3050],{"id":3049},"klien-lainnya","Klien Lainnya",[434,3052,3053],{},"NodeWarden telah diuji dan dikonfirmasi kompatibel dengan klien resmi BitWarden berikut ini:",[478,3055,3056,3059,3062,3065,3068],{},[481,3057,3058],{},"✅ Windows desktop",[481,3060,3061],{},"✅ Aplikasi mobile Android\u002FiOS",[481,3063,3064],{},"✅ Ekstensi browser",[481,3066,3067],{},"✅ Linux desktop",[481,3069,3070],{},"⚠️ macOS desktop (belum sepenuhnya diverifikasi)",[3072,3073,3075],"h1",{"id":3074},"backup-brankas-vault","Backup Brankas (Vault)",[434,3077,3078],{},"NodeWarden memungkinkan kamu untuk melakukan backup vault ke komputer lokal atau penyimpanan remote (storage yang kompatibel dengan WebDAV atau S3).",[434,3080,3081],{},"Untuk mengotomatiskan backup remote:",[478,3083,3084,3087],{},[481,3085,3086],{},"Konfigurasikan rincian penyimpanan remote di dalam dashboard NodeWarden.",[481,3088,3089,3090,3092],{},"Pastikan Cron task sudah diatur pada pengaturan Cloudflare Worker untuk auto remote backup.",[881,3091],{},[884,3093],{"alt":3094,"src":3095},"Mengonfigurasi pemicu Cron untuk backup brankas otomatis di Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-worker-cron.webp",[3072,3097,3099],{"id":3098},"pesan-keamanan-terakhir","Pesan Keamanan Terakhir",[478,3101,3102,3105,3108],{},[481,3103,3104],{},"Amankan akses akun Cloudflare kamu, jika tidak, data kamu bisa diretas. Segera aktifkan Two-Factor Authentication (2FA) atau Passkey pada akun Cloudflare kamu.",[481,3106,3107],{},"Host NodeWarden di akun Cloudflare khusus (dedicated). Jangan bagikan sumber daya dengan web app lain untuk meminimalisir risiko keamanan.",[481,3109,3110],{},[484,3111,3112],{"href":371},"Amankan NodeWarden dengan Cloudflare",[3072,3114,957],{"id":956},[478,3116,3117],{},[481,3118,3119],{},"Panduan Memulai NodeWarden Resmi",{"title":424,"searchDepth":515,"depth":521,"links":3121},[3122,3123],{"id":2574,"depth":515,"text":2575},{"id":2768,"depth":515,"text":2769,"children":3124},[3125,3126,3127,3128,3129,3130],{"id":2788,"depth":521,"text":2789},{"id":2822,"depth":521,"text":2823},{"id":2856,"depth":521,"text":2857},{"id":2894,"depth":521,"text":2895},{"id":2942,"depth":521,"text":2943},{"id":2982,"depth":521,"text":2983,"children":3131},[3132,3133,3134],{"id":2989,"depth":527,"text":2990},{"id":3022,"depth":527,"text":3023},{"id":3049,"depth":527,"text":3050},[1000,1001],"2026-05-25","Password adalah aset digital kamu yang paling penting, dan memastikannya tetap aman berarti menyimpannya di tangan kamu sendiri.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosting%20NodeWarden%20at%20Cloudflare\u002Fself-hosting-server-bitwarden.webp","Thumbnail tutorial self-hosting server kompatibel Bitwarden, menampilkan brankas digital dan rak server yang aman.",{"schemaOrg":3141,"robots":1012,"sitemap":3144},[3142],{"@type":2244,"headline":3143,"description":3137},"Cara Mengamankan Password di Brankas Sendiri dengan Self-Hosting Server Kompatibel BitWarden",{"lastmod":3136},{"title":3143,"description":3137,"ogTitle":3143,"ogDescription":3137,"twitterTitle":3143,"twitterDescription":3137},"id\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",[],"Q4VKcUkGGAKxg8onbP1O5RNAVbJONfPqmKpy9vff_U4",{"id":3150,"title":3151,"author":424,"body":3152,"category":4031,"date":4032,"description":4033,"extension":1004,"image":4034,"imageAlt":4035,"isPublished":1007,"meta":4036,"minRead":551,"navigation":1007,"path":363,"seo":4071,"stem":4073,"tags":4074,"updatedAt":4070,"__hash__":4077},"article\u002Fid\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp.md","Cara Mengekspos Hermes Agent secara Privat dengan WARP",{"type":426,"value":3153,"toc":4013},[3154,3168,3178,3182,3185,3197,3201,3209,3213,3217,3267,3271,3406,3410,3444,3448,3451,3517,3520,3556,3559,3586,3590,3600,3604,3643,3728,3732,3737,3752,3761,3836,3841,3887,3891,3936,3950,3954,3998,4000,4010],[434,3155,3156,3157,3160,3161,3163,3164,3167],{},"Sebuah tantangan umum muncul ketika Anda ingin mengakses ",[441,3158,3159],{},"Hermes Agent"," Anda dari perangkat lain seperti laptop, tablet, atau ponsel tanpa mengeksposnya ke internet publik. Memanfaatkan ",[441,3162,926],{}," dengan ",[441,3165,3166],{},"Cloudflare Zero Trust"," memungkinkan Anda untuk mengekspos Hermes Agent secara global tanpa membuka satu port masuk pun pada firewall Anda.",[434,3169,3170,3171,3174,3175,3177],{},"Jika Anda telah mengikuti panduan kami sebelumnya, '",[484,3172,3173],{"href":375},"Cara Menginstal dan Mendeploy Hermes Agent di VPS Linux","', maka Hermes Agent sudah berjalan 24\u002F7. Alih-alih berurusan dengan kerumitan VPN tradisional, kita akan menggunakan klien ",[441,3176,926],{}," untuk mengekspos Hermes Agent ke jaringan privat melalui internet.",[429,3179,3181],{"id":3180},"memahami-arsitektur","Memahami Arsitektur",[434,3183,3184],{},"Komponen yang digunakan:",[1158,3186,3187,3192],{},[481,3188,3189,3191],{},[441,3190,3166],{},": Dasbor di Cloudflare tempat Anda menentukan aturan perutean (routing) dan kebijakan akses.",[481,3193,3194,3196],{},[441,3195,926],{},": Aplikasi klien yang diinstal pada perangkat Anda (VPS, laptop, ponsel). Aplikasi ini mencegat lalu lintas yang ditujukan ke jaringan privat Anda dan merutekannya dengan aman.",[1153,3198,3200],{"id":3199},"prasyarat","Prasyarat",[478,3202,3203,3206],{},[481,3204,3205],{},"Hermes Agent yang sedang berjalan di VPS Anda.",[481,3207,3208],{},"Akun Cloudflare gratis.",[429,3210,3212],{"id":3211},"panduan-langkah-demi-langkah","Panduan Langkah demi Langkah",[1153,3214,3216],{"id":3215},"langkah-1-siapkan-cloudflare-zero-trust","Langkah 1: Siapkan Cloudflare Zero Trust",[1158,3218,3219,3228,3235,3246,3253,3260],{},[481,3220,3221,3222,3227],{},"Masuk ke ",[484,3223,3226],{"href":3224,"rel":3225},"https:\u002F\u002Fdash.cloudflare.com\u002F",[488],"Dasbor Cloudflare"," Anda.",[481,3229,3230,3231],{},"Klik 'Zero Trust' dari menu sebelah kiri.\n",[884,3232],{"alt":3233,"src":3234},"Menu navigasi bilah sisi kiri dasbor Cloudflare dengan opsi Zero Trust","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-left-menu.webp",[481,3236,3237,3238,3241,3242],{},"Jika ini adalah pertama kalinya, Anda akan diminta untuk memilih paket (tingkat Gratis sudah sangat cukup untuk pengaturan ini) dan memberi nama tim Anda (misal, ",[473,3239,3240],{},"ai-team",").\n",[884,3243],{"alt":3244,"src":3245},"Menyiapkan akun Cloudflare Zero Trust untuk pertama kali dan memberi nama tim","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-team-setup.webp",[481,3247,3248,3249],{},"Klik 'Access' lalu 'Policies' untuk membuat kebijakan akses yang menentukan siapa saja yang memiliki akses ke jaringan tersebut.\n",[884,3250],{"alt":3251,"src":3252},"Halaman Kebijakan Akses Cloudflare Zero Trust yang menampilkan aturan akses yang baru dikonfigurasi","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-access-policies-page.webp",[481,3254,3255,3256],{},"Klik 'Create new policy'.\n",[884,3257],{"alt":3258,"src":3259},"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,3261,3262,3263],{},"Pilih 'Emails' dan masukkan email Anda pada 'Policy rules'.\n",[884,3264],{"alt":3265,"src":3266},"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,3268,3270],{"id":3269},"langkah-2-siapkan-klien-cloudflare-warp-di-vps","Langkah 2: Siapkan Klien Cloudflare WARP di VPS",[1158,3272,3273,3284,3290,3297,3300,3314,3317,3399],{},[481,3274,3275,3276,3279,3280,3283],{},"Jalankan ",[473,3277,3278],{},"sudo apt update"," and ",[473,3281,3282],{},"sudo apt install cloudflare-warp"," di terminal VPS Anda.",[481,3285,3275,3286,3289],{},[473,3287,3288],{},"warp-cli registration new \u003CTEAM-NAME>"," di terminal VPS Anda, perintah ini akan mencetak sebuah URL.",[481,3291,3292,3293,3296],{},"Salin URL yang dicetak, yang akan terlihat seperti ",[473,3294,3295],{},"https:\u002F\u002F\u003Cteam>.cloudflareaccess.com\u002Fwarp",", lalu tempelkan ke browser Anda untuk otentikasi.",[481,3298,3299],{},"Karena otentikasi email digunakan dalam pengaturan kebijakan di atas, masukkan email Anda untuk mengotentikasi.",[481,3301,3302,3303,3306,3307,3310,3311,2923],{},"Di halaman '",[441,3304,3305],{},"Success","' (Sukses) pada browser, klik kanan lalu pilih '",[441,3308,3309],{},"Inspect","' pada tombol biru '",[441,3312,3313],{},"Open Cloudflare WARP",[481,3315,3316],{},"Salin token panjang yang terdapat di dalam tautan tombol tersebut.",[481,3318,3275,3319,3322,3323,3325,3326],{},[473,3320,3321],{},"warp-cli --accept-tos registration token \"https:\u002F\u002F\u003Cteam>.cloudflareaccess.com\u002Fauth?token=\u003Ccopied_token>\""," di terminal VPS Anda untuk menghubungkannya dengan Cloudflare Zero Trust.",[881,3324],{},"Jika Anda menemui 'Error: Failed to communicate with the WARP API' di Ubuntu 26, jalankan perintah berikut:",[498,3327,3331],{"className":3328,"code":3329,"language":3330,"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,3332,3333,3347,3351,3357,3368,3372,3377],{"__ignoreMap":424},[506,3334,3335,3338,3341,3344],{"class":508,"line":509},[506,3336,3337],{"class":1066},"sudo",[506,3339,3340],{"class":1080}," systemctl",[506,3342,3343],{"class":1080}," restart",[506,3345,3346],{"class":1080}," warp-svc.service\n",[506,3348,3349],{"class":508,"line":515},[506,3350,1100],{"emptyLinePlaceholder":1007},[506,3352,3353],{"class":508,"line":521},[506,3354,3356],{"class":3355},"sHwdD","# Check status\n",[506,3358,3359,3361,3363,3366],{"class":508,"line":527},[506,3360,3337],{"class":1066},[506,3362,3340],{"class":1080},[506,3364,3365],{"class":1080}," status",[506,3367,3346],{"class":1080},[506,3369,3370],{"class":508,"line":533},[506,3371,1100],{"emptyLinePlaceholder":1007},[506,3373,3374],{"class":508,"line":539},[506,3375,3376],{"class":3355},"# Run the warp-cli registration token again\n",[506,3378,3379,3382,3385,3388,3391,3394,3397],{"class":508,"line":545},[506,3380,3381],{"class":1066},"warp-cli",[506,3383,3384],{"class":1080}," --accept-tos",[506,3386,3387],{"class":1080}," registration",[506,3389,3390],{"class":1080}," token",[506,3392,3393],{"class":1076},"   \"",[506,3395,3396],{"class":1080},"https:\u002F\u002F\u003Cteam>.cloudflareaccess.com\u002Fauth?token=\u003Ccopied_token>",[506,3398,1768],{"class":1076},[481,3400,3401,3402],{},"Kembali to dasbor Cloudflare Zero Trust, lalu klik 'Devices' (Perangkat). Perangkat VPS Anda kini seharusnya sudah ditampilkan.\n",[884,3403],{"alt":3404,"src":3405},"Dasbor Perangkat Zero Trust mengonfirmasi bahwa VPS Linux telah terhubung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-devices-vps-connected.webp",[1153,3407,3409],{"id":3408},"langkah-3-siapkan-perutean-lalu-lintas","Langkah 3: Siapkan Perutean Lalu Lintas",[1158,3411,3412,3419,3426,3433],{},[481,3413,3414,3415],{},"Klik profil VPS Anda di dasbor Devices.\n",[884,3416],{"alt":3417,"src":3418},"Mengakses detail dan pengaturan split tunnel untuk perangkat VPS yang terdaftar","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-device-profile.webp",[481,3420,3421,3422],{},"Gulir ke bawah ke bagian 'Split Tunnels'.\n",[884,3423],{"alt":3424,"src":3425},"Bagian Split Tunnels di bawah pengaturan profil VPS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-split-tunnels-section.webp",[481,3427,3428,3429],{},"Klik tombol 'Manage' (Kelola) dan konfigurasikan pengaturannya seperti gambar di bawah ini. Ganti alamat IP jika perlu.\n",[884,3430],{"alt":3431,"src":3432},"Mengelola pengecualian IP dan nama host Split Tunnels di pengaturan Cloudflare","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-manage-split-tunnels.webp",[481,3434,3435,3436,3439,3440,3443],{},"Mengekspos ",[473,3437,3438],{},"address"," (alamat) dan ",[473,3441,3442],{},"host"," akan merutekan lalu lintas ke layanan Anda melalui jaringan privat yang sama.",[1153,3445,3447],{"id":3446},"langkah-4-konfigurasi-firewall-di-vps","Langkah 4: Konfigurasi Firewall di VPS",[434,3449,3450],{},"Aktifkan firewall untuk mengizinkan subnet '100.96.0.0\u002F12' saja, dan memblokir seluruh akses masuk publik lainnya.",[498,3452,3454],{"className":3328,"code":3453,"language":3330,"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,3455,3456,3469,3486,3500],{"__ignoreMap":424},[506,3457,3458,3460,3463,3466],{"class":508,"line":509},[506,3459,3337],{"class":1066},[506,3461,3462],{"class":1080}," ufw",[506,3464,3465],{"class":1080}," enable",[506,3467,3468],{"class":1682}," \n",[506,3470,3471,3473,3475,3478,3481,3484],{"class":508,"line":515},[506,3472,3337],{"class":1066},[506,3474,3462],{"class":1080},[506,3476,3477],{"class":1080}," default",[506,3479,3480],{"class":1080}," allow",[506,3482,3483],{"class":1080}," outgoing",[506,3485,3468],{"class":1682},[506,3487,3488,3490,3492,3494,3497],{"class":508,"line":521},[506,3489,3337],{"class":1066},[506,3491,3462],{"class":1080},[506,3493,3477],{"class":1080},[506,3495,3496],{"class":1080}," deny",[506,3498,3499],{"class":1080}," incoming\n",[506,3501,3502,3504,3506,3508,3511,3514],{"class":508,"line":527},[506,3503,3337],{"class":1066},[506,3505,3462],{"class":1080},[506,3507,3480],{"class":1080},[506,3509,3510],{"class":1080}," in",[506,3512,3513],{"class":1080}," from",[506,3515,3516],{"class":1080}," 100.96.0.0\u002F12\n",[434,3518,3519],{},"Izinkan lalu lintas loopback untuk menghindari gangguan pada layanan lokal:",[498,3521,3523],{"className":3328,"code":3522,"language":3330,"meta":424,"style":424},"sudo ufw allow in on lo\nsudo ufw allow out on lo\n",[473,3524,3525,3541],{"__ignoreMap":424},[506,3526,3527,3529,3531,3533,3535,3538],{"class":508,"line":509},[506,3528,3337],{"class":1066},[506,3530,3462],{"class":1080},[506,3532,3480],{"class":1080},[506,3534,3510],{"class":1080},[506,3536,3537],{"class":1080}," on",[506,3539,3540],{"class":1080}," lo\n",[506,3542,3543,3545,3547,3549,3552,3554],{"class":508,"line":515},[506,3544,3337],{"class":1066},[506,3546,3462],{"class":1080},[506,3548,3480],{"class":1080},[506,3550,3551],{"class":1080}," out",[506,3553,3537],{"class":1080},[506,3555,3540],{"class":1080},[434,3557,3558],{},"Muat ulang firewall dan verifikasi statusnya:",[498,3560,3562],{"className":3328,"code":3561,"language":3330,"meta":424,"style":424},"sudo ufw reload \nsudo ufw status verbose\n",[473,3563,3564,3575],{"__ignoreMap":424},[506,3565,3566,3568,3570,3573],{"class":508,"line":509},[506,3567,3337],{"class":1066},[506,3569,3462],{"class":1080},[506,3571,3572],{"class":1080}," reload",[506,3574,3468],{"class":1682},[506,3576,3577,3579,3581,3583],{"class":508,"line":515},[506,3578,3337],{"class":1066},[506,3580,3462],{"class":1080},[506,3582,3365],{"class":1080},[506,3584,3585],{"class":1080}," verbose\n",[1153,3587,3589],{"id":3588},"langkah-5-ekspos-hermes-agent-ke-jaringan-privat","Langkah 5: Ekspos Hermes Agent ke Jaringan Privat",[434,3591,3592,3593,3596,3597,455],{},"Kita akan mengekspos ",[441,3594,3595],{},"Hermes Agent Web Dashboard"," ke jaringan privat kita dan menggunakan penyedia otentikasi default, ",[441,3598,3599],{},"Nous Research",[2089,3601,3603],{"id":3602},"siapkan-penyedia-otentikasi","Siapkan Penyedia Otentikasi",[1158,3605,3606,3615,3622,3629,3636],{},[481,3607,3608,3609,3614],{},"Kunjungi ",[484,3610,3613],{"href":3611,"rel":3612},"https:\u002F\u002Fportal.nousresearch.com",[488],"portal.nousresearch.com"," untuk mendaftarkan sebuah akun.",[481,3616,3617,3618],{},"Pilih 'Local Dashboards' (Dasbor Lokal).\n",[884,3619],{"alt":3620,"src":3621},"Memilih opsi Local Dashboards di portal Nous Research","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fnous-portal-local-dashboards-selection.webp",[481,3623,3624,3625],{},"Klik 'Register Dashboard' (Daftarkan Dasbor).\n",[884,3626],{"alt":3627,"src":3628},"Mengklik tombol Register Dashboard untuk membuat entri dasbor baru","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fnous-portal-register-dashboard.webp",[481,3630,3631,3632],{},"Masukkan alamat IP jaringan privat VPS Anda sebagai 'Dashboard redirect URI' dan klik 'Save' (Simpan).\n",[884,3633],{"alt":3634,"src":3635},"Mendaftarkan alamat IP jaringan privat VPS sebagai redirect URI di portal Nous Research","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fnous-portal-register-redirect-uri.webp",[481,3637,3638,3639,3642],{},"Salin 'OAuth client ID' dan tempelkan ke dalam file ",[473,3640,3641],{},"config.yaml"," Anda:",[498,3644,3646],{"className":1057,"code":3645,"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,3647,3648,3654,3664,3675,3682,3692,3702,3709,3719],{"__ignoreMap":424},[506,3649,3650,3652],{"class":508,"line":509},[506,3651,2339],{"class":1072},[506,3653,2011],{"class":1076},[506,3655,3656,3659,3661],{"class":508,"line":515},[506,3657,3658],{"class":1072},"  theme",[506,3660,1077],{"class":1076},[506,3662,3663],{"class":1080}," default\n",[506,3665,3666,3669,3671],{"class":508,"line":521},[506,3667,3668],{"class":1072},"  show_token_analytics",[506,3670,1077],{"class":1076},[506,3672,3674],{"class":3673},"sfNiH"," false\n",[506,3676,3677,3680],{"class":508,"line":527},[506,3678,3679],{"class":1072},"  oauth",[506,3681,2011],{"class":1076},[506,3683,3684,3687,3689],{"class":508,"line":533},[506,3685,3686],{"class":1072},"    client_id",[506,3688,1077],{"class":1076},[506,3690,3691],{"class":1080}," agent:cmq02x7ha0002jk0ba3kfnb\n",[506,3693,3694,3697,3699],{"class":508,"line":539},[506,3695,3696],{"class":1072},"    portal_url",[506,3698,1077],{"class":1076},[506,3700,3701],{"class":1080}," https:\u002F\u002Fportal.nousresearch.com\n",[506,3703,3704,3707],{"class":508,"line":545},[506,3705,3706],{"class":1072},"  basic_auth",[506,3708,2011],{"class":1076},[506,3710,3711,3714,3716],{"class":508,"line":551},[506,3712,3713],{"class":1072},"    username",[506,3715,1077],{"class":1076},[506,3717,3718],{"class":1076}," ''\n",[506,3720,3721,3724,3726],{"class":508,"line":557},[506,3722,3723],{"class":1072},"    password_hash",[506,3725,1077],{"class":1076},[506,3727,3718],{"class":1076},[2089,3729,3731],{"id":3730},"siapkan-systemd-agar-dasbor-hermes-autostart","Siapkan Systemd agar Dasbor Hermes Autostart",[1158,3733,3734],{},[481,3735,3736],{},"Buat sebuah file layanan:",[498,3738,3740],{"className":1801,"code":3739,"language":1803,"meta":424,"style":424},"sudo nano \u002Fetc\u002Fsystemd\u002Fsystem\u002Fhermes-dashboard.service\n",[473,3741,3742],{"__ignoreMap":424},[506,3743,3744,3746,3749],{"class":508,"line":509},[506,3745,3337],{"class":1066},[506,3747,3748],{"class":1080}," nano",[506,3750,3751],{"class":1080}," \u002Fetc\u002Fsystemd\u002Fsystem\u002Fhermes-dashboard.service\n",[1158,3753,3754],{"start":515},[481,3755,3756,3757,3760],{},"Tempelkan konfigurasi berikut, dan pastikan ",[473,3758,3759],{},"--host 0.0.0.0"," disertakan dalam perintah tersebut:",[498,3762,3766],{"className":3763,"code":3764,"language":3765,"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,3767,3768,3773,3778,3783,3787,3792,3797,3802,3807,3812,3817,3822,3826,3831],{"__ignoreMap":424},[506,3769,3770],{"class":508,"line":509},[506,3771,3772],{},"[Unit]\n",[506,3774,3775],{"class":508,"line":515},[506,3776,3777],{},"Description=Hermes Dashboard\n",[506,3779,3780],{"class":508,"line":521},[506,3781,3782],{},"After=network.target\n",[506,3784,3785],{"class":508,"line":527},[506,3786,1100],{"emptyLinePlaceholder":1007},[506,3788,3789],{"class":508,"line":533},[506,3790,3791],{},"[Service]\n",[506,3793,3794],{"class":508,"line":539},[506,3795,3796],{},"User=hermes\n",[506,3798,3799],{"class":508,"line":545},[506,3800,3801],{},"WorkingDirectory=\u002Fhome\u002Fhermes\n",[506,3803,3804],{"class":508,"line":551},[506,3805,3806],{},"ExecStart=\u002Fhome\u002Fhermes\u002F.local\u002Fbin\u002Fhermes dashboard --host 0.0.0.0\n",[506,3808,3809],{"class":508,"line":557},[506,3810,3811],{},"Restart=always\n",[506,3813,3814],{"class":508,"line":563},[506,3815,3816],{},"RestartSec=10\n",[506,3818,3819],{"class":508,"line":569},[506,3820,3821],{},"Environment=PATH=\u002Fhome\u002Fhermes\u002F.local\u002Fbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fusr\u002Fbin:\u002Fbin\n",[506,3823,3824],{"class":508,"line":575},[506,3825,1100],{"emptyLinePlaceholder":1007},[506,3827,3828],{"class":508,"line":581},[506,3829,3830],{},"[Install]\n",[506,3832,3833],{"class":508,"line":587},[506,3834,3835],{},"WantedBy=multi-user.target\n",[1158,3837,3838],{"start":521},[481,3839,3840],{},"Aktifkan dan jalankan layanan:",[498,3842,3844],{"className":1801,"code":3843,"language":1803,"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,3845,3846,3855,3866,3877],{"__ignoreMap":424},[506,3847,3848,3850,3852],{"class":508,"line":509},[506,3849,3337],{"class":1066},[506,3851,3340],{"class":1080},[506,3853,3854],{"class":1080}," daemon-reload\n",[506,3856,3857,3859,3861,3863],{"class":508,"line":515},[506,3858,3337],{"class":1066},[506,3860,3340],{"class":1080},[506,3862,3465],{"class":1080},[506,3864,3865],{"class":1080}," hermes-dashboard\n",[506,3867,3868,3870,3872,3875],{"class":508,"line":521},[506,3869,3337],{"class":1066},[506,3871,3340],{"class":1080},[506,3873,3874],{"class":1080}," start",[506,3876,3865],{"class":1080},[506,3878,3879,3881,3883,3885],{"class":508,"line":527},[506,3880,3337],{"class":1066},[506,3882,3340],{"class":1080},[506,3884,3365],{"class":1080},[506,3886,3865],{"class":1080},[1153,3888,3890],{"id":3889},"langkah-6-instal-klien-cloudflare-warp-di-desktop","Langkah 6: Instal Klien Cloudflare WARP di Desktop",[1158,3892,3893,3901,3904,3911,3918,3925],{},[481,3894,3895,3896,455],{},"Unduh klien Cloudflare WARP dari ",[484,3897,3900],{"href":3898,"rel":3899},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fwarp-client\u002Fget-started\u002F",[488],"portal Cloudflare",[481,3902,3903],{},"Buka dan luncurkan klien Cloudflare WARP setelah proses instalasi.",[481,3905,3906,3907],{},"Masuk (Log in) ketika diminta.\n",[884,3908],{"alt":3909,"src":3910},"Perintah login klien Cloudflare WARP pada komputer desktop","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-warp-desktop-login-prompt.webp",[481,3912,3913,3914],{},"Halaman 'Success' (Sukses) akan ditampilkan setelah login berhasil.\n",[884,3915],{"alt":3916,"src":3917},"Halaman web sukses otentikasi setelah masuk ke Cloudflare Zero Trust di desktop","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-warp-desktop-login-success.webp",[481,3919,3920,3921],{},"Klien WARP seharusnya sekarang menunjukkan bahwa ia terhubung ke tim Zero Trust Anda.\n",[884,3922],{"alt":3923,"src":3924},"Klien Cloudflare WARP desktop mengonfirmasi koneksi aktif ke jaringan privat","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-warp-desktop-client-connected.webp",[481,3926,3927,3928,3931,3932],{},"Buka browser web Anda dan masukkan IP privat Anda (misalnya, ",[473,3929,3930],{},"100.96.0.3","). Hermes Web Dashboard akan dimuat dengan sukses.\n",[884,3933],{"alt":3934,"src":3935},"Mengakses Dasbor Web Hermes Agent privat di browser pada desktop","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fhermes-agent-dashboard-desktop-view.webp",[3937,3938,3939],"blockquote",{},[434,3940,3941,3944,3945,3949],{},[441,3942,3943],{},"Kiat Pro untuk Pengguna macOS:"," Jika Anda menggunakan klien WARP untuk mengakses beberapa akun Cloudflare, lihat panduan cepat kami mengenai ",[441,3946,3947],{},[484,3948,423],{"href":399}," agar dapat beralih antar akun dengan mulus.",[1153,3951,3953],{"id":3952},"langkah-7-instal-klien-cloudflare-warp-di-perangkat-ios","Langkah 7: Instal Klien Cloudflare WARP di Perangkat iOS",[1158,3955,3956,3963,3971,3979,3987],{},[481,3957,3958,3959,3962],{},"Instal ",[441,3960,3961],{},"Cloudflare One"," dari App Store.",[481,3964,3965,3966],{},"Buka aplikasi Cloudflare One dan masukkan nama tim Anda saat diminta.\n",[884,3967],{"alt":3968,"src":3969,"width":3970},"Memasukkan nama tim Cloudflare Zero Trust di aplikasi Cloudflare One di 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,3972,3973,3974],{},"Log in menggunakan alamat email yang sama dengan yang telah dikonfigurasi pada aturan kebijakan di atas.\n",[884,3975],{"alt":3976,"src":3977,"width":3978},"Perintah otentikasi email untuk Cloudflare Zero Trust di iOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-one-ios-email-login.webp",229,[481,3980,3981,3982],{},"Setelah terhubung, tampilannya akan seperti ini:\n",[884,3983],{"alt":3984,"src":3985,"width":3986},"Aplikasi Cloudflare One menampilkan status terhubung pada perangkat seluler iOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-one-ios-client-connected.webp",322,[481,3988,3989,3990,3992,3993],{},"Buka browser web Anda dan masukkan IP privat ",[473,3991,3930],{}," untuk mengakses Hermes Web Dashboard di perangkat seluler Anda.\n",[884,3994],{"alt":3995,"src":3996,"width":3997},"Mengakses antarmuka Dasbor Web Hermes Agent di browser ponsel seluler","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fhermes-agent-dashboard-mobile-view.webp",345,[429,3999,950],{"id":949},[434,4001,4002,4003,4005,4006,4009],{},"Dengan ",[441,4004,3166],{}," yang menangani kebijakan identitas dan klien ",[441,4007,4008],{},"WARP"," yang merutekan lalu lintas melalui terowongan terenkripsi, Hermes Agent Anda sekarang dapat diakses secara aman dari perangkat Anda secara global. Pengaturan ini meletakkan fondasi yang aman dan kuat untuk membangun serta mengakses infrastruktur AI privat yang sepenuhnya dapat diakses dari jarak jauh.",[989,4011,4012],{},"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":4014},[4015,4018,4030],{"id":3180,"depth":515,"text":3181,"children":4016},[4017],{"id":3199,"depth":521,"text":3200},{"id":3211,"depth":515,"text":3212,"children":4019},[4020,4021,4022,4023,4024,4028,4029],{"id":3215,"depth":521,"text":3216},{"id":3269,"depth":521,"text":3270},{"id":3408,"depth":521,"text":3409},{"id":3446,"depth":521,"text":3447},{"id":3588,"depth":521,"text":3589,"children":4025},[4026,4027],{"id":3602,"depth":527,"text":3603},{"id":3730,"depth":527,"text":3731},{"id":3889,"depth":521,"text":3890},{"id":3952,"depth":521,"text":3953},{"id":949,"depth":515,"text":950},[1420,1000],"2026-07-09","Pelajari cara mengekspos dan mengakses Hermes Agent Anda secara global dengan aman menggunakan Cloudflare WARP dan Zero Trust tanpa membuka port firewall masuk.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002FID-Exposing-Hermes-Agent-to-Private-Network-Using-Cloudflare-WARP.webp","Mengekspos Hermes Agent secara aman ke jaringan privat menggunakan Cloudflare Zero Trust dan terowongan WARP",{"schemaOrg":4037,"robots":1012,"sitemap":4069},[4038],{"@type":1011,"headline":3151,"description":4033,"name":3151,"image":4034,"step":4039},[4040,4045,4049,4053,4057,4061,4065],{"@type":4041,"name":4042,"text":4043,"url":4044,"image":3234},"HowToStep","Siapkan Cloudflare Zero Trust","Masuk ke Dasbor Cloudflare Anda. Klik 'Zero Trust' dari menu sebelah kiri. Jika ini adalah pertama kalinya, Anda akan diminta untuk memilih paket (tingkat Gratis sudah sangat cukup untuk pengaturan ini) dan memberi nama tim Anda (misal, ai-team). Kli","#step-1",{"@type":4041,"name":4046,"text":4047,"url":4048,"image":3405},"Siapkan Klien Cloudflare WARP di VPS","Jalankan sudo apt update and sudo apt install cloudflare-warp di terminal VPS Anda. Jalankan warp-cli registration new \u003CTEAM-NAME> di terminal VPS Anda, perintah ini akan mencetak sebuah URL. Salin URL yang dicetak, yang akan terlihat seperti https:\u002F","#step-2",{"@type":4041,"name":4050,"text":4051,"url":4052,"image":3418},"Siapkan Perutean Lalu Lintas","Klik profil VPS Anda di dasbor Devices. Gulir ke bawah ke bagian 'Split Tunnels'. Klik tombol 'Manage' (Kelola) dan konfigurasikan pengaturannya seperti gambar di bawah ini. Ganti alamat IP jika perlu. Mengekspos address (alamat) dan host akan merute","#step-3",{"@type":4041,"name":4054,"text":4055,"url":4056},"Konfigurasi Firewall di VPS","Aktifkan firewall untuk mengizinkan subnet '100.96.0.0\u002F12' saja, dan memblokir seluruh akses masuk publik lainnya. bash Izinkan lalu lintas loopback untuk menghindari gangguan pada layanan lokal: bash Muat ulang firewall dan verifikasi statusnya: bas","#step-4",{"@type":4041,"name":4058,"text":4059,"url":4060},"Ekspos Hermes Agent ke Jaringan Privat","Kita akan mengekspos Hermes Agent Web Dashboard ke jaringan privat kita dan menggunakan penyedia otentikasi default, Nous Research.","#step-5",{"@type":4041,"name":4062,"text":4063,"url":4064,"image":3910},"Instal Klien Cloudflare WARP di Desktop","Unduh klien Cloudflare WARP dari portal Cloudflare. Buka dan luncurkan klien Cloudflare WARP setelah proses instalasi. Masuk (Log in) ketika diminta. Halaman 'Success' (Sukses) akan ditampilkan setelah login berhasil. Klien WARP seharusnya sekarang m","#step-6",{"@type":4041,"name":4066,"text":4067,"url":4068,"image":3969},"Instal Klien Cloudflare WARP di Perangkat iOS","Instal Cloudflare One dari App Store. Buka aplikasi Cloudflare One dan masukkan nama tim Anda saat diminta. Log in menggunakan alamat email yang sama dengan yang telah dikonfigurasi pada aturan kebijakan di atas. Setelah terhubung, tampilannya akan s","#step-7",{"lastmod":4070},"2026-09-28",{"title":4072,"description":4033,"ogTitle":3151,"ogDescription":4033,"twitterTitle":3151,"twitterDescription":4033},"Akses Aman Hermes Agent dengan Cloudflare Zero Trust","id\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",[926,1019,3159,4075,4076],"Jaringan privat","Tutorial","Wh3s_kiAj69-Gnv-QMhchTPh3C1rs2rSgTg22y7n9dE",1792490007392]