[{"data":1,"prerenderedAt":5296},["ShallowReactive",2],{"published-article-paths":3,"search-navigation":348,"\u002Fde\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp":421,"\u002Fde\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp-surround":1410},[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":1357,"date":1360,"description":1361,"extension":1362,"image":1363,"imageAlt":1364,"isPublished":646,"meta":1365,"minRead":1034,"navigation":646,"path":11,"seo":1402,"stem":1404,"tags":1405,"updatedAt":1401,"__hash__":1409},"article\u002Fde\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp.md","Den Hermes Agent privat mit Cloudflare WARP freigeben","",{"type":426,"value":427,"toc":1339},"minimark",[428,445,456,461,464,478,483,492,496,500,553,557,710,714,747,751,754,821,824,860,863,890,894,905,910,949,1042,1046,1051,1068,1077,1157,1162,1208,1212,1258,1273,1277,1321,1325,1335],[429,430,431,432,436,437,440,441,444],"p",{},"Eine häufige Herausforderung entsteht, wenn Sie von anderen Geräten wie Laptops, Tablets oder Telefonen auf Ihren ",[433,434,435],"strong",{},"Hermes Agent"," zugreifen möchten, ohne ihn dem öffentlichen Internet preiszugeben. Durch die Nutzung von ",[433,438,439],{},"Cloudflare WARP"," mit ",[433,442,443],{},"Cloudflare Zero Trust"," können Sie den Hermes Agent weltweit verfügbar machen, ohne einen einzigen eingehenden Port an Ihrer Firewall öffnen zu müssen.",[429,446,447,448,452,453,455],{},"Wenn Sie unserer vorherigen Anleitung, '",[449,450,451],"a",{"href":375},"Anleitung zur Bereitstellung des Hermes Agents auf Linux-VPS","', gefolgt sind, läuft bereits ein Hermes Agent rund um die Uhr. Anstatt sich mit dem Mehraufwand herkömmlicher VPNs zu befassen, werden wir den ",[433,454,439],{},"-Client verwenden, um den Hermes Agent über das Internet in einem privaten Netzwerk bereitzustellen.",[457,458,460],"h2",{"id":459},"die-architektur-verstehen","Die Architektur verstehen",[429,462,463],{},"Die beteiligten Komponenten:",[465,466,467,473],"ol",{},[468,469,470,472],"li",{},[433,471,443],{},": Das Dashboard bei Cloudflare, in dem Sie Routing-Regeln und Zugriffsrichtlinien definieren.",[468,474,475,477],{},[433,476,439],{},": Die Client-Anwendung, die auf Ihren Geräten (VPS, Laptops, Telefone) installiert ist. Sie fängt den für Ihr privates Netzwerk bestimmten Datenverkehr ab und leitet ihn sicher weiter.",[479,480,482],"h3",{"id":481},"voraussetzungen","Voraussetzungen",[484,485,486,489],"ul",{},[468,487,488],{},"Ein laufender Hermes Agent auf Ihrem VPS.",[468,490,491],{},"Ein kostenloses Cloudflare-Konto.",[457,493,495],{"id":494},"schritt-für-schritt-anleitung","Schritt-für-Schritt-Anleitung",[479,497,499],{"id":498},"schritt-1-cloudflare-zero-trust-einrichten","Schritt 1: Cloudflare Zero Trust einrichten",[465,501,502,512,520,532,539,546],{},[468,503,504,505,511],{},"Melden Sie sich bei Ihrem ",[449,506,510],{"href":507,"rel":508},"https:\u002F\u002Fdash.cloudflare.com\u002F",[509],"nofollow","Cloudflare Dashboard"," an.",[468,513,514,515],{},"Klicken Sie im linken Menü auf 'Zero Trust'.\n",[516,517],"img",{"alt":518,"src":519},"Navigationsmenü in der linken Seitenleiste des Cloudflare-Dashboards mit der Option Zero Trust","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-left-menu.webp",[468,521,522,523,527,528],{},"Wenn dies Ihr erstes Mal ist, werden Sie aufgefordert, einen Tarif zu wählen (der kostenlose Tarif reicht für dieses Setup völlig aus) und Ihr Team zu benennen (z. B. ",[524,525,526],"code",{},"ai-team",").\n",[516,529],{"alt":530,"src":531},"Einrichten des ersten Cloudflare Zero Trust-Kontos und Benennen des Teams","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-team-setup.webp",[468,533,534,535],{},"Klicken Sie auf 'Access' und dann auf 'Policies', um eine Zugriffsrichtlinie zu erstellen, die festlegt, wer Zugriff auf das Netzwerk hat.\n",[516,536],{"alt":537,"src":538},"Cloudflare Zero Trust Access-Richtlinienseite mit den neu konfigurierten Zugriffsregeln","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-access-policies-page.webp",[468,540,541,542],{},"Klicken Sie auf 'Create new policy'.\n",[516,543],{"alt":544,"src":545},"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",[468,547,548,549],{},"Wählen Sie 'Emails' und geben Sie Ihre E-Mail-Adresse unter 'Policy rules' ein.\n",[516,550],{"alt":551,"src":552},"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",[479,554,556],{"id":555},"schritt-2-den-cloudflare-warp-client-auf-dem-vps-einrichten","Schritt 2: Den Cloudflare WARP-Client auf dem VPS einrichten",[465,558,559,570,576,583,586,601,604,703],{},[468,560,561,562,565,566,569],{},"Führen Sie ",[524,563,564],{},"sudo apt update"," und ",[524,567,568],{},"sudo apt install cloudflare-warp"," im Terminal auf Ihrem VPS aus.",[468,571,561,572,575],{},[524,573,574],{},"warp-cli registration new \u003CTEAM-NAME>"," im Terminal auf Ihrem VPS aus, was eine URL ausgibt.",[468,577,578,579,582],{},"Kopieren Sie die ausgegebene URL, die wie ",[524,580,581],{},"https:\u002F\u002F\u003Cteam>.cloudflareaccess.com\u002Fwarp"," aussieht, und fügen Sie sie zur Authentifizierung in Ihren Browser ein.",[468,584,585],{},"Da bei der oben genannten Richtlinieneinrichtung die E-Mail-Authentifizierung verwendet wird, geben Sie Ihre E-Mail-Adresse ein, um sich zu authentifizieren.",[468,587,588,589,592,593,596,597,600],{},"Klicken Sie auf der Seite '",[433,590,591],{},"Success","' (Erfolg) im Browser mit der rechten Maustaste auf die blaue Schaltfläche '",[433,594,595],{},"Open Cloudflare WARP","' und wählen Sie '",[433,598,599],{},"Inspect","' (Untersuchen).",[468,602,603],{},"Kopieren Sie den langen Token, der im Link der Schaltfläche angezeigt wird.",[468,605,561,606,609,610,613,614],{},[524,607,608],{},"warp-cli --accept-tos registration token \"https:\u002F\u002F\u003Cteam>.cloudflareaccess.com\u002Fauth?token=\u003Ccopied_token>\""," im Terminal auf Ihrem VPS aus, um es mit Cloudflare Zero Trust zu verbinden.",[611,612],"br",{},"Falls der Fehler 'Error: Failed to communicate with the WARP API' auf Ubuntu 26 auftritt, führen Sie die folgenden Befehle aus:",[615,616,620],"pre",{"className":617,"code":618,"language":619,"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",[524,621,622,641,648,655,667,672,678],{"__ignoreMap":424},[623,624,627,631,635,638],"span",{"class":625,"line":626},"line",1,[623,628,630],{"class":629},"sBMFI","sudo",[623,632,634],{"class":633},"sfazB"," systemctl",[623,636,637],{"class":633}," restart",[623,639,640],{"class":633}," warp-svc.service\n",[623,642,644],{"class":625,"line":643},2,[623,645,647],{"emptyLinePlaceholder":646},true,"\n",[623,649,651],{"class":625,"line":650},3,[623,652,654],{"class":653},"sHwdD","# Check status\n",[623,656,658,660,662,665],{"class":625,"line":657},4,[623,659,630],{"class":629},[623,661,634],{"class":633},[623,663,664],{"class":633}," status",[623,666,640],{"class":633},[623,668,670],{"class":625,"line":669},5,[623,671,647],{"emptyLinePlaceholder":646},[623,673,675],{"class":625,"line":674},6,[623,676,677],{"class":653},"# Run the warp-cli registration token again\n",[623,679,681,684,687,690,693,697,700],{"class":625,"line":680},7,[623,682,683],{"class":629},"warp-cli",[623,685,686],{"class":633}," --accept-tos",[623,688,689],{"class":633}," registration",[623,691,692],{"class":633}," token",[623,694,696],{"class":695},"sMK4o","   \"",[623,698,699],{"class":633},"https:\u002F\u002F\u003Cteam>.cloudflareaccess.com\u002Fauth?token=\u003Ccopied_token>",[623,701,702],{"class":695},"\"\n",[468,704,705,706],{},"Kehren Sie zum Cloudflare Zero Trust-Dashboard zurück und klicken Sie auf 'Devices' (Geräte). Ihr VPS-Gerät sollte nun angezeigt werden.\n",[516,707],{"alt":708,"src":709},"Zero Trust-Geräte-Dashboard zur Bestätigung, dass der Linux-VPS verbunden ist","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-devices-vps-connected.webp",[479,711,713],{"id":712},"schritt-3-datenverkehr-routing-einrichten","Schritt 3: Datenverkehr-Routing einrichten",[465,715,716,723,730,737],{},[468,717,718,719],{},"Klicken Sie im Geräte-Dashboard auf das Profil Ihres VPS.\n",[516,720],{"alt":721,"src":722},"Zugriff auf Details und Split-Tunnel-Einstellungen für das registrierte VPS-Gerät","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-device-profile.webp",[468,724,725,726],{},"Scrollen Sie nach unten zum Abschnitt 'Split Tunnels'.\n",[516,727],{"alt":728,"src":729},"Abschnitt Split Tunnels unter den VPS-Profil-Einstellungen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-split-tunnels-section.webp",[468,731,732,733],{},"Klicken Sie auf die Schaltfläche 'Manage' (Verwalten) und konfigurieren Sie die Einstellungen wie unten gezeigt. Ersetzen Sie die IP-Adresse bei Bedarf.\n",[516,734],{"alt":735,"src":736},"Verwalten von Split-Tunnel-IP- und Hostnamen-Ausschlüssen in den Cloudflare-Einstellungen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-manage-split-tunnels.webp",[468,738,739,740,565,743,746],{},"Durch die Freigabe von ",[524,741,742],{},"address",[524,744,745],{},"host"," wird der Datenverkehr über dasselbe private Netzwerk an Ihre Dienste weitergeleitet.",[479,748,750],{"id":749},"schritt-4-firewall-auf-dem-vps-konfigurieren","Schritt 4: Firewall auf dem VPS konfigurieren",[429,752,753],{},"Aktivieren Sie die Firewall so, dass nur das Subnetz '100.96.0.0\u002F12' zugelassen wird und alle anderen öffentlichen eingehenden Zugriffe blockiert werden.",[615,755,757],{"className":617,"code":756,"language":619,"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",[524,758,759,773,790,804],{"__ignoreMap":424},[623,760,761,763,766,769],{"class":625,"line":626},[623,762,630],{"class":629},[623,764,765],{"class":633}," ufw",[623,767,768],{"class":633}," enable",[623,770,772],{"class":771},"sTEyZ"," \n",[623,774,775,777,779,782,785,788],{"class":625,"line":643},[623,776,630],{"class":629},[623,778,765],{"class":633},[623,780,781],{"class":633}," default",[623,783,784],{"class":633}," allow",[623,786,787],{"class":633}," outgoing",[623,789,772],{"class":771},[623,791,792,794,796,798,801],{"class":625,"line":650},[623,793,630],{"class":629},[623,795,765],{"class":633},[623,797,781],{"class":633},[623,799,800],{"class":633}," deny",[623,802,803],{"class":633}," incoming\n",[623,805,806,808,810,812,815,818],{"class":625,"line":657},[623,807,630],{"class":629},[623,809,765],{"class":633},[623,811,784],{"class":633},[623,813,814],{"class":633}," in",[623,816,817],{"class":633}," from",[623,819,820],{"class":633}," 100.96.0.0\u002F12\n",[429,822,823],{},"Lassen Sie Loopback-Datenverkehr zu, um lokale Dienste nicht zu unterbrechen:",[615,825,827],{"className":617,"code":826,"language":619,"meta":424,"style":424},"sudo ufw allow in on lo\nsudo ufw allow out on lo\n",[524,828,829,845],{"__ignoreMap":424},[623,830,831,833,835,837,839,842],{"class":625,"line":626},[623,832,630],{"class":629},[623,834,765],{"class":633},[623,836,784],{"class":633},[623,838,814],{"class":633},[623,840,841],{"class":633}," on",[623,843,844],{"class":633}," lo\n",[623,846,847,849,851,853,856,858],{"class":625,"line":643},[623,848,630],{"class":629},[623,850,765],{"class":633},[623,852,784],{"class":633},[623,854,855],{"class":633}," out",[623,857,841],{"class":633},[623,859,844],{"class":633},[429,861,862],{},"Laden Sie die Firewall neu und überprüfen Sie den Status:",[615,864,866],{"className":617,"code":865,"language":619,"meta":424,"style":424},"sudo ufw reload \nsudo ufw status verbose\n",[524,867,868,879],{"__ignoreMap":424},[623,869,870,872,874,877],{"class":625,"line":626},[623,871,630],{"class":629},[623,873,765],{"class":633},[623,875,876],{"class":633}," reload",[623,878,772],{"class":771},[623,880,881,883,885,887],{"class":625,"line":643},[623,882,630],{"class":629},[623,884,765],{"class":633},[623,886,664],{"class":633},[623,888,889],{"class":633}," verbose\n",[479,891,893],{"id":892},"schritt-5-den-hermes-agent-im-privaten-netzwerk-freigeben","Schritt 5: Den Hermes Agent im privaten Netzwerk freigeben",[429,895,896,897,900,901,904],{},"Wir werden das ",[433,898,899],{},"Hermes Agent Web Dashboard"," für unser privates Netzwerk freigeben und den Standard-Authentifizierungsanbieter ",[433,902,903],{},"Nous Research"," verwenden.",[906,907,909],"h4",{"id":908},"den-authentifizierungsanbieter-einrichten","Den Authentifizierungsanbieter einrichten",[465,911,912,921,928,935,942],{},[468,913,914,915,920],{},"Gehen Sie zu ",[449,916,919],{"href":917,"rel":918},"https:\u002F\u002Fportal.nousresearch.com",[509],"portal.nousresearch.com",", um ein Konto zu registrieren.",[468,922,923,924],{},"Wählen Sie 'Local Dashboards' (Lokale Dashboards).\n",[516,925],{"alt":926,"src":927},"Auswählen der Option Local Dashboards im Nous Research-Portal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fnous-portal-local-dashboards-selection.webp",[468,929,930,931],{},"Klicken Sie auf 'Register Dashboard' (Dashboard registrieren).\n",[516,932],{"alt":933,"src":934},"Klicken auf die Schaltfläche Register Dashboard, um einen neuen Dashboard-Eintrag zu erstellen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fnous-portal-register-dashboard.webp",[468,936,937,938],{},"Geben Sie die IP-Adresse des privaten Netzwerks Ihres VPS als 'Dashboard redirect URI' ein und klicken Sie auf 'Save' (Speichern).\n",[516,939],{"alt":940,"src":941},"Registrieren der privaten VPS-IP-Adresse als Redirect-URI im Nous Research-Portal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fnous-portal-register-redirect-uri.webp",[468,943,944,945,948],{},"Kopieren Sie die 'OAuth client ID' und fügen Sie sie in Ihre ",[524,946,947],{},"config.yaml","-Datei ein:",[615,950,954],{"className":951,"code":952,"language":953,"meta":424,"style":424},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","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","yaml",[524,955,956,965,976,987,994,1004,1014,1021,1032],{"__ignoreMap":424},[623,957,958,962],{"class":625,"line":626},[623,959,961],{"class":960},"swJcz","dashboard",[623,963,964],{"class":695},":\n",[623,966,967,970,973],{"class":625,"line":643},[623,968,969],{"class":960},"  theme",[623,971,972],{"class":695},":",[623,974,975],{"class":633}," default\n",[623,977,978,981,983],{"class":625,"line":650},[623,979,980],{"class":960},"  show_token_analytics",[623,982,972],{"class":695},[623,984,986],{"class":985},"sfNiH"," false\n",[623,988,989,992],{"class":625,"line":657},[623,990,991],{"class":960},"  oauth",[623,993,964],{"class":695},[623,995,996,999,1001],{"class":625,"line":669},[623,997,998],{"class":960},"    client_id",[623,1000,972],{"class":695},[623,1002,1003],{"class":633}," agent:cmq02x7ha0002jk0ba3kfnb\n",[623,1005,1006,1009,1011],{"class":625,"line":674},[623,1007,1008],{"class":960},"    portal_url",[623,1010,972],{"class":695},[623,1012,1013],{"class":633}," https:\u002F\u002Fportal.nousresearch.com\n",[623,1015,1016,1019],{"class":625,"line":680},[623,1017,1018],{"class":960},"  basic_auth",[623,1020,964],{"class":695},[623,1022,1024,1027,1029],{"class":625,"line":1023},8,[623,1025,1026],{"class":960},"    username",[623,1028,972],{"class":695},[623,1030,1031],{"class":695}," ''\n",[623,1033,1035,1038,1040],{"class":625,"line":1034},9,[623,1036,1037],{"class":960},"    password_hash",[623,1039,972],{"class":695},[623,1041,1031],{"class":695},[906,1043,1045],{"id":1044},"systemd-einrichten-um-das-hermes-dashboard-automatisch-zu-starten","Systemd einrichten, um das Hermes Dashboard automatisch zu starten",[465,1047,1048],{},[468,1049,1050],{},"Erstellen Sie eine Service-Datei:",[615,1052,1056],{"className":1053,"code":1054,"language":1055,"meta":424,"style":424},"language-shell shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sudo nano \u002Fetc\u002Fsystemd\u002Fsystem\u002Fhermes-dashboard.service\n","shell",[524,1057,1058],{"__ignoreMap":424},[623,1059,1060,1062,1065],{"class":625,"line":626},[623,1061,630],{"class":629},[623,1063,1064],{"class":633}," nano",[623,1066,1067],{"class":633}," \u002Fetc\u002Fsystemd\u002Fsystem\u002Fhermes-dashboard.service\n",[465,1069,1070],{"start":643},[468,1071,1072,1073,1076],{},"Fügen Sie die folgende Konfiguration ein und stellen Sie sicher, dass ",[524,1074,1075],{},"--host 0.0.0.0"," Teil des Befehls ist:",[615,1078,1082],{"className":1079,"code":1080,"language":1081,"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",[524,1083,1084,1089,1094,1099,1103,1108,1113,1118,1123,1128,1134,1140,1145,1151],{"__ignoreMap":424},[623,1085,1086],{"class":625,"line":626},[623,1087,1088],{},"[Unit]\n",[623,1090,1091],{"class":625,"line":643},[623,1092,1093],{},"Description=Hermes Dashboard\n",[623,1095,1096],{"class":625,"line":650},[623,1097,1098],{},"After=network.target\n",[623,1100,1101],{"class":625,"line":657},[623,1102,647],{"emptyLinePlaceholder":646},[623,1104,1105],{"class":625,"line":669},[623,1106,1107],{},"[Service]\n",[623,1109,1110],{"class":625,"line":674},[623,1111,1112],{},"User=hermes\n",[623,1114,1115],{"class":625,"line":680},[623,1116,1117],{},"WorkingDirectory=\u002Fhome\u002Fhermes\n",[623,1119,1120],{"class":625,"line":1023},[623,1121,1122],{},"ExecStart=\u002Fhome\u002Fhermes\u002F.local\u002Fbin\u002Fhermes dashboard --host 0.0.0.0\n",[623,1124,1125],{"class":625,"line":1034},[623,1126,1127],{},"Restart=always\n",[623,1129,1131],{"class":625,"line":1130},10,[623,1132,1133],{},"RestartSec=10\n",[623,1135,1137],{"class":625,"line":1136},11,[623,1138,1139],{},"Environment=PATH=\u002Fhome\u002Fhermes\u002F.local\u002Fbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fusr\u002Fbin:\u002Fbin\n",[623,1141,1143],{"class":625,"line":1142},12,[623,1144,647],{"emptyLinePlaceholder":646},[623,1146,1148],{"class":625,"line":1147},13,[623,1149,1150],{},"[Install]\n",[623,1152,1154],{"class":625,"line":1153},14,[623,1155,1156],{},"WantedBy=multi-user.target\n",[465,1158,1159],{"start":650},[468,1160,1161],{},"Aktivieren und starten Sie den Dienst:",[615,1163,1165],{"className":1053,"code":1164,"language":1055,"meta":424,"style":424},"sudo systemctl daemon-reload\nsudo systemctl enable hermes-dashboard\nsudo systemctl start hermes-dashboard\nsudo systemctl status hermes-dashboard\n",[524,1166,1167,1176,1187,1198],{"__ignoreMap":424},[623,1168,1169,1171,1173],{"class":625,"line":626},[623,1170,630],{"class":629},[623,1172,634],{"class":633},[623,1174,1175],{"class":633}," daemon-reload\n",[623,1177,1178,1180,1182,1184],{"class":625,"line":643},[623,1179,630],{"class":629},[623,1181,634],{"class":633},[623,1183,768],{"class":633},[623,1185,1186],{"class":633}," hermes-dashboard\n",[623,1188,1189,1191,1193,1196],{"class":625,"line":650},[623,1190,630],{"class":629},[623,1192,634],{"class":633},[623,1194,1195],{"class":633}," start",[623,1197,1186],{"class":633},[623,1199,1200,1202,1204,1206],{"class":625,"line":657},[623,1201,630],{"class":629},[623,1203,634],{"class":633},[623,1205,664],{"class":633},[623,1207,1186],{"class":633},[479,1209,1211],{"id":1210},"schritt-6-den-cloudflare-warp-client-auf-dem-desktop-installieren","Schritt 6: Den Cloudflare WARP-Client auf dem Desktop installieren",[465,1213,1214,1223,1226,1233,1240,1247],{},[468,1215,1216,1217,1222],{},"Laden Sie den Cloudflare WARP-Client vom ",[449,1218,1221],{"href":1219,"rel":1220},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fwarp-client\u002Fget-started\u002F",[509],"Cloudflare-Portal"," herunter.",[468,1224,1225],{},"Öffnen und starten Sie den Cloudflare WARP-Client nach der Installation.",[468,1227,1228,1229],{},"Melden Sie sich an, wenn Sie dazu aufgefordert werden.\n",[516,1230],{"alt":1231,"src":1232},"Anmeldeaufforderung des Cloudflare WARP-Clients auf dem Desktop-Computer","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-warp-desktop-login-prompt.webp",[468,1234,1235,1236],{},"Nach erfolgreicher Anmeldung wird eine Seite mit der Meldung 'Success' (Erfolg) angezeigt.\n",[516,1237],{"alt":1238,"src":1239},"Authentifizierungserfolg-Webseite nach der Anmeldung bei Cloudflare Zero Trust auf dem Desktop","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-warp-desktop-login-success.webp",[468,1241,1242,1243],{},"Der WARP-Client sollte nun anzeigen, dass er mit Ihrem Zero Trust-Team verbunden ist.\n",[516,1244],{"alt":1245,"src":1246},"Desktop-Cloudflare WARP-Client bestätigt aktive Verbindung zum privaten Zero Trust-Netzwerk","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-warp-desktop-client-connected.webp",[468,1248,1249,1250,1253,1254],{},"Navigieren Sie zu Ihrem Webbrowser und geben Sie Ihre private IP-Adresse ein (z. B. ",[524,1251,1252],{},"100.96.0.3","). Das Hermes Web Dashboard sollte erfolgreich geladen werden.\n",[516,1255],{"alt":1256,"src":1257},"Zugriff auf das private Hermes Agent Web Dashboard im Browser auf dem Desktop","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fhermes-agent-dashboard-desktop-view.webp",[1259,1260,1261],"blockquote",{},[429,1262,1263,1266,1267,1272],{},[433,1264,1265],{},"Profi-Tipp für macOS-Nutzer:"," Wenn Sie den WARP-Client verwenden, um auf mehrere Cloudflare-Konten zuzugreifen, sehen Sie sich unsere Kurzanleitung an: ",[433,1268,1269],{},[449,1270,1271],{"href":399},"Wechseln zwischen mehreren Cloudflare WARP-Profilen auf Mac",", um einen nahtlosen Kontowechsel zu ermöglichen.",[479,1274,1276],{"id":1275},"schritt-7-den-cloudflare-warp-client-auf-ios-geräten-installieren","Schritt 7: Den Cloudflare WARP-Client auf iOS-Geräten installieren",[465,1278,1279,1286,1294,1302,1310],{},[468,1280,1281,1282,1285],{},"Installieren Sie ",[433,1283,1284],{},"Cloudflare One"," aus dem App Store.",[468,1287,1288,1289],{},"Öffnen Sie die Cloudflare One-App und geben Sie Ihren Teamnamen ein, wenn Sie dazu aufgefordert werden.\n",[516,1290],{"alt":1291,"src":1292,"width":1293},"Eingeben des Cloudflare Zero Trust-Teamnamens in der Cloudflare One-App auf iOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-one-ios-team-name-prompt.webp",239,[468,1295,1296,1297],{},"Melden Sie sich mit derselben E-Mail-Adresse an, die in der obigen Richtlinienregel konfiguriert wurde.\n",[516,1298],{"alt":1299,"src":1300,"width":1301},"E-Mail-Authentifizierungsaufforderung für Cloudflare Zero Trust auf iOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-one-ios-email-login.webp",229,[468,1303,1304,1305],{},"Sobald eine Verbindung hergestellt ist, sollte es folgendermaßen aussehen:\n",[516,1306],{"alt":1307,"src":1308,"width":1309},"Cloudflare One-App zeigt den Verbindungsstatus auf dem iOS-Mobilgerät an","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-one-ios-client-connected.webp",322,[468,1311,1312,1313,1315,1316],{},"Navigieren Sie zu Ihrem Webbrowser und geben die private IP-Adresse ",[524,1314,1252],{}," ein, um auf Ihrem Mobilgerät auf das Hermes Web Dashboard zuzugreifen.\n",[516,1317],{"alt":1318,"src":1319,"width":1320},"Zugriff auf die Benutzeroberfläche des Hermes Agent Web Dashboards im mobilen Browser","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fhermes-agent-dashboard-mobile-view.webp",345,[457,1322,1324],{"id":1323},"fazit","Fazit",[429,1326,1327,1328,1330,1331,1334],{},"Da ",[433,1329,443],{}," die Identitätsrichtlinien verwaltet und der ",[433,1332,1333],{},"WARP","-Client den Datenverkehr über einen verschlüsselten Tunnel weiterleitet, ist Ihr Hermes Agent weltweit sicher von Ihren Geräten aus erreichbar. Dieses Setup bildet eine sichere, robuste Grundlage für den Aufbau und den Zugriff auf eine vollständig dezentrale, private KI-Infrastruktur.",[1336,1337,1338],"style",{},"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":643,"depth":650,"links":1340},[1341,1344,1356],{"id":459,"depth":643,"text":460,"children":1342},[1343],{"id":481,"depth":650,"text":482},{"id":494,"depth":643,"text":495,"children":1345},[1346,1347,1348,1349,1350,1354,1355],{"id":498,"depth":650,"text":499},{"id":555,"depth":650,"text":556},{"id":712,"depth":650,"text":713},{"id":749,"depth":650,"text":750},{"id":892,"depth":650,"text":893,"children":1351},[1352,1353],{"id":908,"depth":657,"text":909},{"id":1044,"depth":657,"text":1045},{"id":1210,"depth":650,"text":1211},{"id":1275,"depth":650,"text":1276},{"id":1323,"depth":643,"text":1324},[1358,1359],"ai-agents","security","2026-07-09","Erfahren Sie, wie Sie mit Cloudflare WARP und Zero Trust weltweit sicher auf Ihren Hermes Agent zugreifen können, ohne eingehende Firewall-Ports zu öffnen.","md","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002FDE-Exposing-Hermes-Agent-to-Private-Network-Using-Cloudflare-WARP.webp","Sichere Freigabe des Hermes Agent in einem privaten Netzwerk mittels Cloudflare Zero Trust und WARP-Tunnel",{"schemaOrg":1366,"robots":1399,"sitemap":1400},[1367],{"@type":1368,"headline":423,"description":1361,"name":423,"image":1363,"step":1369},"HowTo",[1370,1375,1379,1383,1387,1391,1395],{"@type":1371,"name":1372,"text":1373,"url":1374,"image":519},"HowToStep","Cloudflare Zero Trust einrichten","Melden Sie sich bei Ihrem Cloudflare Dashboard an. Klicken Sie im linken Menü auf 'Zero Trust'. Wenn dies Ihr erstes Mal ist, werden Sie aufgefordert, einen Tarif zu wählen (der kostenlose Tarif reicht für dieses Setup völlig aus) und Ihr Team zu ben","#step-1",{"@type":1371,"name":1376,"text":1377,"url":1378,"image":709},"Den Cloudflare WARP-Client auf dem VPS einrichten","Führen Sie sudo apt update und sudo apt install cloudflare-warp im Terminal auf Ihrem VPS aus. Führen Sie warp-cli registration new \u003CTEAM-NAME> im Terminal auf Ihrem VPS aus, was eine URL ausgibt. Kopieren Sie die ausgegebene URL, die wie https:\u002F\u002F\u003Cte","#step-2",{"@type":1371,"name":1380,"text":1381,"url":1382,"image":722},"Datenverkehr-Routing einrichten","Klicken Sie im Geräte-Dashboard auf das Profil Ihres VPS. Scrollen Sie nach unten zum Abschnitt 'Split Tunnels'. Klicken Sie auf die Schaltfläche 'Manage' (Verwalten) und konfigurieren Sie die Einstellungen wie unten gezeigt. Ersetzen Sie die IP-Adre","#step-3",{"@type":1371,"name":1384,"text":1385,"url":1386},"Firewall auf dem VPS konfigurieren","Aktivieren Sie die Firewall so, dass nur das Subnetz '100.96.0.0\u002F12' zugelassen wird und alle anderen öffentlichen eingehenden Zugriffe blockiert werden. bash Lassen Sie Loopback-Datenverkehr zu, um lokale Dienste nicht zu unterbrechen: bash Laden Si","#step-4",{"@type":1371,"name":1388,"text":1389,"url":1390},"Den Hermes Agent im privaten Netzwerk freigeben","Wir werden das Hermes Agent Web Dashboard für unser privates Netzwerk freigeben und den Standard-Authentifizierungsanbieter Nous Research verwenden.","#step-5",{"@type":1371,"name":1392,"text":1393,"url":1394,"image":1232},"Den Cloudflare WARP-Client auf dem Desktop installieren","Laden Sie den Cloudflare WARP-Client vom Cloudflare-Portal herunter. Öffnen und starten Sie den Cloudflare WARP-Client nach der Installation. Melden Sie sich an, wenn Sie dazu aufgefordert werden. Nach erfolgreicher Anmeldung wird eine Seite mit der","#step-6",{"@type":1371,"name":1396,"text":1397,"url":1398,"image":1292},"Den Cloudflare WARP-Client auf iOS-Geräten installieren","Installieren Sie Cloudflare One aus dem App Store. Öffnen Sie die Cloudflare One-App und geben Sie Ihren Teamnamen ein, wenn Sie dazu aufgefordert werden. Melden Sie sich mit derselben E-Mail-Adresse an, die in der obigen Richtlinienregel konfigurier","#step-7","index, follow",{"lastmod":1401},"2026-09-28",{"title":1403,"description":1361,"ogTitle":423,"ogDescription":1361,"twitterTitle":423,"twitterDescription":1361},"Sicherer Hermes Agent-Zugriff mit Cloudflare Zero Trust","de\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",[439,1406,435,1407,1408],"Zero Trust","Privates Netzwerk","Anleitung","OWyvw7JrzeJL6Ks3SschIQF-JKVNxc0v5dM6KjfvVtE",{"surround":1411,"related":4111},[1412,2880],{"id":1413,"title":1414,"author":424,"body":1415,"category":2858,"date":2860,"description":2861,"extension":1362,"image":2862,"imageAlt":2863,"isPublished":646,"meta":2864,"minRead":1153,"navigation":646,"path":27,"seo":2871,"stem":2873,"tags":2874,"updatedAt":2878,"__hash__":2879},"article\u002Fde\u002Farticle\u002Fsync-obsidian-across-devices.md","Obsidian-Vaults auf allen Geräten sicher synchronisieren",{"type":426,"value":1416,"toc":2836},[1417,1420,1425,1434,1443,1460,1465,1474,1478,1483,1497,1513,1516,1520,1524,1531,1536,1540,1545,1603,1611,1643,1647,1655,1663,1670,1732,1735,1754,1761,1773,1777,1781,1792,1797,1808,1830,1835,1849,1854,1860,1865,1880,1883,1888,1891,1896,1900,1905,1918,1922,1936,1946,1950,1955,1958,1969,2002,2006,2013,2157,2191,2197,2218,2229,2234,2238,2249,2320,2324,2330,2367,2498,2505,2511,2517,2523,2526,2532,2538,2553,2564,2571,2577,2584,2713,2719,2724,2727,2732,2735,2739,2745,2750,2756,2767,2777,2781,2792,2797,2803,2806,2810,2833],[429,1418,1419],{},"Obsidian ist eine Anwendung für das Wissensmanagement, die dem Prinzip „Local-First“ (lokal zuerst) folgt. Jede Notiz ist eine Markdown-Datei auf Ihrem Gerät und bleibt vollständig unter Ihrer Kontrolle. Häufig wünscht man sich jedoch denselben Tresor (Vault) auf dem Laptop, dem Smartphone und anderen Geräten oder möchte aus der Ferne über einen Webbrowser darauf zugreifen können.",[516,1421],{"src":1422,"alt":1423,"style":1424},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-multi-device-sync-illustration.webp","Illustration der Obsidian-Vault-Synchronisierung über mehrere Geräte","max-width: 667px; width: 100%; height: auto;",[429,1426,1427,1428,1433],{},"Für Obsidian gibt es eine Reihe von Synchronisationslösungen, die jedoch alle Kompromisse bei der Konfliktbehandlung, der Verschlüsselung oder der Datensouveränität erfordern. ",[449,1429,1432],{"href":1430,"rel":1431},"https:\u002F\u002Fgithub.com\u002Fhjinco\u002Fsynch",[509],"Synch"," ist eine Open-Source-Anwendung, die Ihren Obsidian-Tresor mit Ende-zu-Ende-Verschlüsselung und automatischer Konfliktbehandlung auf einem selbst gehosteten Server synchronisiert.",[429,1435,1436,1437,1442],{},"Obwohl der Local-First-Ansatz von Obsidian in den meisten Fällen perfekt funktioniert, müssen wir gelegentlich aus der Ferne über einen Webbrowser auf unseren Tresor zugreifen. ",[449,1438,1441],{"href":1439,"rel":1440},"https:\u002F\u002Fgithub.com\u002FNystik-gh\u002Fignis",[509],"Ignis"," ist eine Open-Source-Anwendung, mit der Obsidian in einem Webbrowser in einem nahezu nativen Format ausgeführt wird, sodass Sie Ihren Tresor von überall aus lesen und bearbeiten können.",[429,1444,1445,1446,565,1448,1450,1451,1454,1455,1459],{},"In dieser Anleitung werden wir ",[433,1447,1432],{},[433,1449,1441],{}," auf einem ",[433,1452,1453],{},"VPS"," (Virtual Private Server) einrichten und sie sicher in einem privaten Netzwerk von ",[433,1456,1457],{},[449,1458,443],{"href":363}," hosten, anstatt sie dem offenen Internet auszusetzen.",[516,1461],{"src":1462,"alt":1463,"style":1464},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-sync-cloudflare-zero-trust-architecture.webp","Architekturdiagramm der Obsidian-Synchronisierung mit Cloudflare Zero Trust","max-width: 671px; width: 100%; height: auto;",[1466,1467],"article-card",{"description":1468,"image":1469,"image-alt":1470,"label":1471,"min-read":1472,"title":1473,"to":363},"Erfahren Sie, wie Sie Ihren Hermes-Agenten mithilfe von Cloudflare WARP und Zero Trust weltweit sicher freigeben und darauf zugreifen können, ohne eingehende Firewall-Ports zu öffnen.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002FEN-Exposing-Hermes-Agent-to-Private-Network-Using-Cloudflare-WARP.webp","Sichere Freigabe des Hermes-Agenten für ein privates Netzwerk über einen Cloudflare Zero Trust- und WARP-Tunnel","Ähnliche Anleitung","8","So geben Sie den Hermes-Agenten privat über Cloudflare WARP frei",[457,1475,1477],{"id":1476},"sichere-obsidian-tresor-synchronisation-mit-synch","Sichere Obsidian-Tresor-Synchronisation mit Synch",[429,1479,1480,1482],{},[433,1481,1432],{}," bietet die folgenden Funktionen:",[484,1484,1485,1488,1491,1494],{},[468,1486,1487],{},"Synchronisiert Ihren Tresor, sobald Änderungen erkannt werden",[468,1489,1490],{},"Verschlüsselt Tresordaten vor dem Hochladen",[468,1492,1493],{},"Ermöglicht die Wiederherstellung aus dem Versionsverlauf",[468,1495,1496],{},"Beinhaltet automatische Konfliktbehandlung",[429,1498,1499,1501,1502,1505,1506,1509,1510,1512],{},[433,1500,1432],{}," generiert auf Ihrem Gerät einen zufälligen 32-Byte-",[433,1503,1504],{},"Tresorschlüssel"," (Vault Key), der zur Verschlüsselung Ihrer Tresordaten verwendet wird. Wenn Sie einen Remote-Tresor erstellen, wählen Sie ein ",[433,1507,1508],{},"Tresor-Passwort","; dieses Passwort wird verwendet, um den ",[433,1511,1504],{}," zu schützen, sodass der Schlüssel sicher auf dem Server gespeichert und auf anderen Geräten entsperrt werden kann.",[429,1514,1515],{},"Beachten Sie, dass die Konfliktbehandlung auf Ihren Client-Geräten und nicht auf dem Server erfolgt. Wenn zwei Geräte dieselbe Notiz gleichzeitig bearbeiten, behält der Server die Version, die zuerst eintrifft, und markiert das andere Gerät als veraltet. Das veraltete Gerät führt dann automatisch die neuere Version mit seinen lokalen Änderungen zusammen, bevor es die endgültige zusammengeführte Notiz hochlädt.",[479,1517,1519],{"id":1518},"einrichten-von-synch-auf-ihrem-vps","Einrichten von Synch auf Ihrem VPS",[906,1521,1523],{"id":1522},"erstellen-sie-einen-domainnamen","Erstellen Sie einen Domainnamen",[429,1525,1526,1527,1530],{},"Erstellen Sie einen A-Eintrag (A-Record) in Cloudflare und stellen Sie den Proxy-Status auf ",[433,1528,1529],{},"Nur DNS"," (wodurch das Cloudflare CDN umgangen wird).",[516,1532],{"src":1533,"alt":1534,"style":1535},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fcloudflare-dns-a-record-synch-server.webp","Konfiguration eines DNS-A-Eintrags für den Synch-Server in Cloudflare","max-width: 538px; width: 100%; height: auto;",[906,1537,1539],{"id":1538},"installieren-sie-synch-mit-docker-auf-ubuntu","Installieren Sie Synch mit Docker auf Ubuntu",[1541,1542,1544],"h5",{"id":1543},"klonen-sie-das-repository","Klonen Sie das Repository",[615,1546,1548],{"className":617,"code":1547,"language":619,"meta":424,"style":424},"git clone https:\u002F\u002Fgithub.com\u002Fhjinco\u002Fsynch.git       \n        \n# Navigieren Sie zum API-Ordner\ncd synch\u002Fapps\u002Fapi\n        \n# Kopieren Sie die Beispiel-Umgebungsdatei:\ncp .env.example .env\n",[524,1549,1550,1564,1569,1574,1583,1587,1592],{"__ignoreMap":424},[623,1551,1552,1555,1558,1561],{"class":625,"line":626},[623,1553,1554],{"class":629},"git",[623,1556,1557],{"class":633}," clone",[623,1559,1560],{"class":633}," https:\u002F\u002Fgithub.com\u002Fhjinco\u002Fsynch.git",[623,1562,1563],{"class":771},"       \n",[623,1565,1566],{"class":625,"line":643},[623,1567,1568],{"class":771},"        \n",[623,1570,1571],{"class":625,"line":650},[623,1572,1573],{"class":653},"# Navigieren Sie zum API-Ordner\n",[623,1575,1576,1580],{"class":625,"line":657},[623,1577,1579],{"class":1578},"s2Zo4","cd",[623,1581,1582],{"class":633}," synch\u002Fapps\u002Fapi\n",[623,1584,1585],{"class":625,"line":669},[623,1586,1568],{"class":771},[623,1588,1589],{"class":625,"line":674},[623,1590,1591],{"class":653},"# Kopieren Sie die Beispiel-Umgebungsdatei:\n",[623,1593,1594,1597,1600],{"class":625,"line":680},[623,1595,1596],{"class":629},"cp",[623,1598,1599],{"class":633}," .env.example",[623,1601,1602],{"class":633}," .env\n",[1541,1604,1606,1607,1610],{"id":1605},"bearbeiten-sie-die-env-werte","Bearbeiten Sie die ",[524,1608,1609],{},".env","-Werte",[484,1612,1613,1619,1637],{},[468,1614,1615,1618],{},[524,1616,1617],{},"PUBLIC_URL=synch.pafor.me",": Geben Sie den öffentlichen Domainnamen Ihres Synch-Servers ein (den im vorherigen Schritt erstellten Domainnamen).",[468,1620,1621,565,1624,1627,1628,1632,1633,1636],{},[524,1622,1623],{},"BETTER_AUTH_SECRET",[524,1625,1626],{},"SYNC_TOKEN_SECRET",": Generieren Sie sichere Schlüssel mit diesem ",[449,1629,1631],{"href":1630},"\u002Fde\u002Ftools\u002Fsecret-key-hex","Online-Tool für geheime Schlüssel"," oder indem Sie ",[524,1634,1635],{},"openssl rand -hex 32"," zweimal in Ihrem Terminal ausführen.",[468,1638,1639,1642],{},[524,1640,1641],{},"AUTH_ALLOWED_EMAILS",": Eine durch Kommas getrennte Liste der E-Mail-Adressen, die sich registrieren und Konten erstellen dürfen.",[1541,1644,1646],{"id":1645},"fügen-sie-die-domain-zum-caddyfile-hinzu","Fügen Sie die Domain zum Caddyfile hinzu",[429,1648,1649,1650,1654],{},"Details dazu, wie das Cloudflare DNS-Modul in Caddy integriert und in einem Container gestartet wird, finden Sie in unserem ",[449,1651,1653],{"href":1652},"\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues#_4-enable-https-with-caddy","Artikel zum Selbst-Hosten von Buzz",".",[1466,1656],{"description":1657,"image":1658,"image-alt":1659,"label":1660,"min-read":1661,"title":1662,"to":1652},"Erfahren Sie, wie Sie Caddy so konfigurieren, dass SSL\u002FTLS-Zertifikate mithilfe von Cloudflare DNS-Herausforderungen in Docker-Containern automatisch bereitgestellt werden.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002FEN-Self-Hosting-Buzz-As-The-Workspace-Where-AI-Agents-Become-Colleagues.webp","Konfiguration von Caddy mit Cloudflare DNS-API-Token für die automatisierte SSL\u002FTLS-Zertifikatserstellung in einem selbst gehosteten Arbeitsbereich","Anleitung zum Selbst-Hosten","12","Block's Buzz selbst hosten: Workspace für Mensch & KI-Agenten",[429,1664,1665,1666,1669],{},"Fügen Sie die Anweisung ",[524,1667,1668],{},"SYNCH_DOMAIN"," in Ihr Caddyfile ein und verweisen Sie auf Port 8787 (der vom Synch-Container verwendete Port):",[615,1671,1675],{"className":1672,"code":1673,"language":1674,"meta":424,"style":424},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  acme_dns cloudflare {env.CLOUDFLARE_API_TOKEN}\n}\n\n{$SYNCH_DOMAIN} {\n  encode zstd gzip\n  reverse_proxy host.docker.internal:8787\n}\n","json",[524,1676,1677,1682,1690,1694,1698,1712,1717,1728],{"__ignoreMap":424},[623,1678,1679],{"class":625,"line":626},[623,1680,1681],{"class":695},"{\n",[623,1683,1684,1687],{"class":625,"line":643},[623,1685,1686],{"class":771},"  acme_dns cloudflare {env.CLOUDFLARE_API_TOKEN",[623,1688,1689],{"class":695},"}\n",[623,1691,1692],{"class":625,"line":650},[623,1693,1689],{"class":771},[623,1695,1696],{"class":625,"line":657},[623,1697,647],{"emptyLinePlaceholder":646},[623,1699,1700,1703,1706,1709],{"class":625,"line":669},[623,1701,1702],{"class":695},"{",[623,1704,1705],{"class":771},"$SYNCH_DOMAIN",[623,1707,1708],{"class":695},"}",[623,1710,1711],{"class":695}," {\n",[623,1713,1714],{"class":625,"line":674},[623,1715,1716],{"class":771},"  encode zstd gzip\n",[623,1718,1719,1722,1724],{"class":625,"line":680},[623,1720,1721],{"class":771},"  reverse_proxy host.docker.internal",[623,1723,972],{"class":695},[623,1725,1727],{"class":1726},"sbssI","8787\n",[623,1729,1730],{"class":625,"line":1023},[623,1731,1689],{"class":695},[429,1733,1734],{},"Starten Sie den Container:",[615,1736,1738],{"className":617,"code":1737,"language":619,"meta":424,"style":424},"docker compose up -d\n",[524,1739,1740],{"__ignoreMap":424},[623,1741,1742,1745,1748,1751],{"class":625,"line":626},[623,1743,1744],{"class":629},"docker",[623,1746,1747],{"class":633}," compose",[623,1749,1750],{"class":633}," up",[623,1752,1753],{"class":633}," -d\n",[429,1755,1756,1757,1760],{},"Führen Sie den folgenden ",[524,1758,1759],{},"curl","-Befehl aus, um die Verfügbarkeit zu prüfen:",[615,1762,1764],{"className":617,"code":1763,"language":619,"meta":424,"style":424},"curl https:\u002F\u002Fsynch.pafor.me\u002Fhealth\n",[524,1765,1766],{"__ignoreMap":424},[623,1767,1768,1770],{"class":625,"line":626},[623,1769,1759],{"class":629},[623,1771,1772],{"class":633}," https:\u002F\u002Fsynch.pafor.me\u002Fhealth\n",[479,1774,1776],{"id":1775},"verbinden-von-obsidian-mit-ihrem-synch-server","Verbinden von Obsidian mit Ihrem Synch-Server",[906,1778,1780],{"id":1779},"installieren-sie-das-synch-plugin-in-obsidian","Installieren Sie das Synch-Plugin in Obsidian",[429,1782,1783,1784,1787,1788,1791],{},"Öffnen Sie die Obsidian-Einstellungen, navigieren Sie zu ",[433,1785,1786],{},"Community-Plugins"," und klicken Sie auf die Schaltfläche ",[433,1789,1790],{},"'Durchsuchen'"," ('Browse'):",[516,1793],{"src":1794,"alt":1795,"style":1796},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-community-plugins-browse.webp","Durchsuchen von Community-Plugins in den Obsidian-Einstellungen","max-width: 523px; width: 100%; height: auto;",[429,1798,1799,1800,1803,1804],{},"Suchen Sie nach ",[433,1801,1802],{},"'Synchrun'"," und installieren Sie es:\n",[516,1805],{"src":1806,"alt":1807,"style":1535},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-install-synchrun-plugin.webp","Installation des Synchrun-Plugins in Obsidian",[429,1809,1810,1811,1813,1814,1817,1818,1821,1822,1825,1826,1829],{},"Sobald ",[433,1812,1802],{}," installiert ist, öffnen Sie die Plugin-Einstellungen und aktivieren Sie ",[433,1815,1816],{},"'Einen selbst gehosteten Server verwenden'"," ('Use a self-hosted server'). Geben Sie dann ",[524,1819,1820],{},"https:\u002F\u002Fsynch.pafor.me"," in das Feld ",[433,1823,1824],{},"'Server-URL'"," ein und klicken Sie auf ",[433,1827,1828],{},"'Speichern'"," ('Save').",[516,1831],{"src":1832,"alt":1833,"style":1834},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-synchrun-plugin-settings-self-hosted.webp","Konfiguration der selbstgehosteten Server-URL in den Synchrun-Plugin-Einstellungen","max-width: 525px; width: 100%; height: auto;",[429,1836,1837,1838,1841,1842,1845,1846,1848],{},"Klicken Sie auf die Schaltfläche ",[433,1839,1840],{},"'Auf diesem Gerät anmelden'"," ('Sign in on this device') unter ",[433,1843,1844],{},"'Konto'"," ('Account'). Registrieren Sie sich als Nächstes für ein Konto mit der E-Mail-Adresse, die Sie in Ihrer Liste ",[524,1847,1641],{}," angegeben haben; Sie werden dann auf die folgende Autorisierungsseite weitergeleitet:",[516,1850],{"src":1851,"alt":1852,"style":1853},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynchrun-account-authorization-page.webp","Konto-Autorisierungsseite für Synchrun","max-width: 494px; width: 100%; height: auto;",[429,1855,1837,1856,1859],{},[433,1857,1858],{},"'Obsidian-Anmeldung zulassen'"," ('Allow Obsidian sign-in'):",[516,1861],{"src":1862,"alt":1863,"style":1864},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynchrun-allow-obsidian-signin.webp","Obsidian-Anmeldung für Synch zulassen","max-width: 498px; width: 100%; height: auto;",[429,1866,1837,1867,1870,1871,1874,1875],{},[433,1868,1869],{},"'Zurück zu Obsidian'"," ('Return to Obsidian') und klicken Sie dann auf ",[433,1872,1873],{},"'Tresor erstellen'"," ('Create vault'):\n",[516,1876],{"src":1877,"alt":1878,"style":1879},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-synchrun-create-remote-vault.webp","Erstellen eines neuen Remote-Vaults in Synchrun","max-width: 496px; width: 100%; height: auto;",[429,1881,1882],{},"Geben Sie einen Namen und ein sicheres Passwort ein, um Ihren Remote-Tresor zu erstellen.",[516,1884],{"src":1885,"alt":1886,"style":1887},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-synchrun-vault-password-setup.webp","Einrichten eines sicheren Passworts für den Obsidian-Remote-Vault","max-width: 500px; width: 100%; height: auto;",[429,1889,1890],{},"Der Synchronisationsprozess beginnt sofort und kann je nach Größe Ihres Tresors einige Zeit in Anspruch nehmen. Nach Abschluss wird Ihre gesamte Speicherplatznutzung angezeigt.",[516,1892],{"src":1893,"alt":1894,"style":1895},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-synchrun-sync-completed-storage.webp","Abgeschlossene Synchrun-Synchronisierung mit Anzeige des belegten Speichers","max-width: 508px; width: 100%; height: auto;",[457,1897,1899],{"id":1898},"browserbasierter-obsidian-zugriff-mit-ignis","Browserbasierter Obsidian-Zugriff mit Ignis",[429,1901,1902,1904],{},[433,1903,1441],{}," ersetzt die Electron-APIs von Obsidian durch Web-APIs, wodurch der JavaScript-Code von Obsidian direkt in einem Standard-Webbrowser ausgeführt werden kann. Alle Ihre Markdown-Dateien und Anhänge werden direkt im Dateisystem des Host-Servers gespeichert.",[429,1906,1907,1908,565,1913,1654],{},"Es gibt jedoch einige Einschränkungen im Vergleich zur eigenständigen Obsidian-Desktop-Anwendung. Bestimmte Funktionen oder Plugins, die Electron- oder Node.js-APIs erfordern – für die es in einer Browserumgebung keine direkte Entsprechung gibt –, funktionieren nicht. Detaillierte Kompatibilitätslisten finden Sie in den Ignis-Handbüchern zu ",[449,1909,1912],{"href":1910,"rel":1911},"https:\u002F\u002Fignis.thiefling.com\u002Fdocs\u002Fusing\u002Flimitations\u002F",[509],"Einschränkungen",[449,1914,1917],{"href":1915,"rel":1916},"https:\u002F\u002Fignis.thiefling.com\u002Fdocs\u002Fusing\u002Fplugin-compatibility\u002F",[509],"Plugin-Kompatibilität",[479,1919,1921],{"id":1920},"ignis-einrichtung","Ignis-Einrichtung",[429,1923,1924,1925,1927,1928,1931,1932,1935],{},"Wir werden ",[433,1926,1441],{}," auf unserem VPS mithilfe von Docker installieren und es im lokalen Ordner ",[524,1929,1930],{},".\u002Fvaults"," einbinden. Dieses Tresor-Verzeichnis wird mithilfe der ",[433,1933,1934],{},"Synch CLI"," synchronisiert, um Notiz-Updates aus dem zuvor eingerichteten Remote-Tresor abzurufen.",[429,1937,1327,1938,1940,1941,1945],{},[433,1939,1441],{}," über keine integrierte Authentifizierung verfügt, muss es hinter einem privaten Netzwerk von ",[433,1942,1943],{},[449,1944,443],{"href":363}," gesichert werden.",[906,1947,1949],{"id":1948},"dns-eintrag-erstellen","DNS-Eintrag erstellen",[516,1951],{"src":1952,"alt":1953,"style":1954},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fcloudflare-dns-a-record-ignis.webp","Konfiguration eines DNS-A-Eintrags für den Ignis-Webclient in Cloudflare","max-width: 552px; width: 100%; height: auto;",[906,1956,1646],{"id":1957},"fügen-sie-die-domain-zum-caddyfile-hinzu-1",[429,1959,1960,1961,1964,1965,1968],{},"Fügen Sie ",[524,1962,1963],{},"obsidian.pafor.me"," auf dieselbe Weise wie ",[524,1966,1967],{},"synch.pafor.me"," zu Ihrem Caddyfile hinzu:",[615,1970,1972],{"className":1672,"code":1971,"language":1674,"meta":424,"style":424},"{$OBSIDIAN_DOMAIN} {\n  encode zstd gzip\n  reverse_proxy host.docker.internal:9898\n}\n",[524,1973,1974,1985,1989,1998],{"__ignoreMap":424},[623,1975,1976,1978,1981,1983],{"class":625,"line":626},[623,1977,1702],{"class":695},[623,1979,1980],{"class":771},"$OBSIDIAN_DOMAIN",[623,1982,1708],{"class":695},[623,1984,1711],{"class":695},[623,1986,1987],{"class":625,"line":643},[623,1988,1716],{"class":771},[623,1990,1991,1993,1995],{"class":625,"line":650},[623,1992,1721],{"class":771},[623,1994,972],{"class":695},[623,1996,1997],{"class":1726},"9898\n",[623,1999,2000],{"class":625,"line":657},[623,2001,1689],{"class":695},[906,2003,2005],{"id":2004},"starten-sie-ignis-mit-docker","Starten Sie Ignis mit Docker",[429,2007,2008,2009,2012],{},"Speichern Sie die folgende docker compose yml als ",[524,2010,2011],{},"ignis-docker-compose.yml"," auf dem VPS:",[615,2014,2018],{"className":2015,"code":2016,"language":2017,"meta":424,"style":424},"language-yml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","services:\n  ignis:\n    image: nobbe\u002Fignis:latest\n    ports:\n      - \"9898:8080\"\n    environment:\n      # Passen Sie diese an Ihren Host-Benutzer an (Befehl ausführen: id)\n      - PUID=1000\n      - PGID=1000\n      - WS_ORIGINS=https:\u002F\u002Fobsidian.pafor.me\n    volumes:\n      - .\u002Fvaults:\u002Fvaults\n      - .\u002Fdata:\u002Fapp\u002Fdata\n      - obsidian-app:\u002Fapp\u002Fobsidian-app\n    restart: unless-stopped\n\nvolumes:\n  obsidian-app:\n","yml",[524,2019,2020,2027,2034,2044,2051,2064,2071,2076,2083,2090,2097,2104,2111,2118,2125,2136,2141,2149],{"__ignoreMap":424},[623,2021,2022,2025],{"class":625,"line":626},[623,2023,2024],{"class":960},"services",[623,2026,964],{"class":695},[623,2028,2029,2032],{"class":625,"line":643},[623,2030,2031],{"class":960},"  ignis",[623,2033,964],{"class":695},[623,2035,2036,2039,2041],{"class":625,"line":650},[623,2037,2038],{"class":960},"    image",[623,2040,972],{"class":695},[623,2042,2043],{"class":633}," nobbe\u002Fignis:latest\n",[623,2045,2046,2049],{"class":625,"line":657},[623,2047,2048],{"class":960},"    ports",[623,2050,964],{"class":695},[623,2052,2053,2056,2059,2062],{"class":625,"line":669},[623,2054,2055],{"class":695},"      -",[623,2057,2058],{"class":695}," \"",[623,2060,2061],{"class":633},"9898:8080",[623,2063,702],{"class":695},[623,2065,2066,2069],{"class":625,"line":674},[623,2067,2068],{"class":960},"    environment",[623,2070,964],{"class":695},[623,2072,2073],{"class":625,"line":680},[623,2074,2075],{"class":653},"      # Passen Sie diese an Ihren Host-Benutzer an (Befehl ausführen: id)\n",[623,2077,2078,2080],{"class":625,"line":1023},[623,2079,2055],{"class":695},[623,2081,2082],{"class":633}," PUID=1000\n",[623,2084,2085,2087],{"class":625,"line":1034},[623,2086,2055],{"class":695},[623,2088,2089],{"class":633}," PGID=1000\n",[623,2091,2092,2094],{"class":625,"line":1130},[623,2093,2055],{"class":695},[623,2095,2096],{"class":633}," WS_ORIGINS=https:\u002F\u002Fobsidian.pafor.me\n",[623,2098,2099,2102],{"class":625,"line":1136},[623,2100,2101],{"class":960},"    volumes",[623,2103,964],{"class":695},[623,2105,2106,2108],{"class":625,"line":1142},[623,2107,2055],{"class":695},[623,2109,2110],{"class":633}," .\u002Fvaults:\u002Fvaults\n",[623,2112,2113,2115],{"class":625,"line":1147},[623,2114,2055],{"class":695},[623,2116,2117],{"class":633}," .\u002Fdata:\u002Fapp\u002Fdata\n",[623,2119,2120,2122],{"class":625,"line":1153},[623,2121,2055],{"class":695},[623,2123,2124],{"class":633}," obsidian-app:\u002Fapp\u002Fobsidian-app\n",[623,2126,2128,2131,2133],{"class":625,"line":2127},15,[623,2129,2130],{"class":960},"    restart",[623,2132,972],{"class":695},[623,2134,2135],{"class":633}," unless-stopped\n",[623,2137,2139],{"class":625,"line":2138},16,[623,2140,647],{"emptyLinePlaceholder":646},[623,2142,2144,2147],{"class":625,"line":2143},17,[623,2145,2146],{"class":960},"volumes",[623,2148,964],{"class":695},[623,2150,2152,2155],{"class":625,"line":2151},18,[623,2153,2154],{"class":960},"  obsidian-app",[623,2156,964],{"class":695},[484,2158,2159,2170,2184],{},[468,2160,2161,2162,2165,2166,2169],{},"Verwenden Sie Port ",[524,2163,2164],{},"9898"," auf dem Host, da ",[524,2167,2168],{},"8080"," häufig von anderen Diensten verwendet wird.",[468,2171,2172,2173,2176,2177,565,2180,2183],{},"Führen Sie den Befehl ",[524,2174,2175],{},"id"," auf Ihrem VPS aus, um die ",[524,2178,2179],{},"UID",[524,2181,2182],{},"GID"," Ihres Host-Benutzers zu überprüfen, um korrekte Dateisystemberechtigungen sicherzustellen.",[468,2185,2186,2187,2190],{},"Stellen Sie ",[524,2188,2189],{},"WS_ORIGINS"," so ein, dass nur WebSocket-Verbindungen zulässig sind, die von Ihrem spezifischen Domainnamen ausgehen.",[429,2192,2193,2194,2196],{},"Starten Sie den ",[433,2195,1441],{},"-Docker:",[615,2198,2200],{"className":617,"code":2199,"language":619,"meta":424,"style":424},"docker compose -f ignis-docker-compose.yml up -d\n",[524,2201,2202],{"__ignoreMap":424},[623,2203,2204,2206,2208,2211,2214,2216],{"class":625,"line":626},[623,2205,1744],{"class":629},[623,2207,1747],{"class":633},[623,2209,2210],{"class":633}," -f",[623,2212,2213],{"class":633}," ignis-docker-compose.yml",[623,2215,1750],{"class":633},[623,2217,1753],{"class":633},[429,2219,2220,2221,2224,2225,2228],{},"Wenn Sie in einem Webbrowser zu Ihrer Domain navigieren, wird der ",[433,2222,2223],{},"'Vault Manager'"," angezeigt. Er ist leer, da noch keine Tresore konfiguriert sind. Wir werden im nächsten Abschnitt die ",[433,2226,2227],{},"'Synch CLI'"," einrichten, um Inhalte aus unserem Remote-Tresor zu synchronisieren.",[516,2230],{"src":2231,"alt":2232,"style":2233},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fignis-vault-manager-empty.webp","Leere Vault-Manager-Oberfläche im Ignis-Webclient","max-width: 466px; width: 100%; height: auto;",[906,2235,2237],{"id":2236},"firewall-problem","Firewall-Problem",[429,2239,2240,2241,2244,2245,2248],{},"Standardmäßig fügt Docker automatisch seine eigenen DNAT- und FORWARD-Regeln ein, die den öffentlichen Datenverkehr direkt an aktive Container weiterleiten. Dies umgeht die standardmäßige Ubuntu UFW\u002Fiptables ",[524,2242,2243],{},"INPUT","-Kette. Um den externen öffentlichen Datenverkehr zu blockieren und die Container privat zu halten, fügen Sie die folgenden Regeln manuell zu ",[524,2246,2247],{},"iptables"," hinzu:",[615,2250,2252],{"className":617,"code":2251,"language":619,"meta":424,"style":424},"# Blockieren Sie den gesamten externen öffentlichen Datenverkehr\nsudo iptables -I DOCKER-USER -i ext_if -j DROP \n\n# Lassen Sie Datenverkehr nur von der privaten IP Ihres Cloudflare WARP-Clients zu\nsudo iptables -I DOCKER-USER -i ext_if -s 100.96.0.10 -j ACCEPT\n",[524,2253,2254,2259,2286,2290,2295],{"__ignoreMap":424},[623,2255,2256],{"class":625,"line":626},[623,2257,2258],{"class":653},"# Blockieren Sie den gesamten externen öffentlichen Datenverkehr\n",[623,2260,2261,2263,2266,2269,2272,2275,2278,2281,2284],{"class":625,"line":643},[623,2262,630],{"class":629},[623,2264,2265],{"class":633}," iptables",[623,2267,2268],{"class":633}," -I",[623,2270,2271],{"class":633}," DOCKER-USER",[623,2273,2274],{"class":633}," -i",[623,2276,2277],{"class":633}," ext_if",[623,2279,2280],{"class":633}," -j",[623,2282,2283],{"class":633}," DROP",[623,2285,772],{"class":771},[623,2287,2288],{"class":625,"line":650},[623,2289,647],{"emptyLinePlaceholder":646},[623,2291,2292],{"class":625,"line":657},[623,2293,2294],{"class":653},"# Lassen Sie Datenverkehr nur von der privaten IP Ihres Cloudflare WARP-Clients zu\n",[623,2296,2297,2299,2301,2303,2305,2307,2309,2312,2315,2317],{"class":625,"line":669},[623,2298,630],{"class":629},[623,2300,2265],{"class":633},[623,2302,2268],{"class":633},[623,2304,2271],{"class":633},[623,2306,2274],{"class":633},[623,2308,2277],{"class":633},[623,2310,2311],{"class":633}," -s",[623,2313,2314],{"class":1726}," 100.96.0.10",[623,2316,2280],{"class":633},[623,2318,2319],{"class":633}," ACCEPT\n",[906,2321,2323],{"id":2322},"konfiguration-der-synch-cli","Konfiguration der Synch CLI",[429,2325,2326,2327,2329],{},"Die ",[433,2328,1934],{}," ist ein Headless-Tool, mit dem ein Obsidian-Tresorverzeichnis direkt auf Remote-Servern synchronisiert werden kann, ohne dass die vollständige Desktop-Anwendung installiert sein muss.",[429,2331,2332,2333,2335,2336,2339,2340,2343,2344,2347,2348,2351,2352,565,2355,2358,2359,2362,2363,2366],{},"Erstellen Sie die ",[433,2334,1934],{}," aus Ihrem geklonten ",[524,2337,2338],{},"synch","-Repository. Das Erstellen erfordert ",[433,2341,2342],{},"Node.js >= 22.5"," (da die CLI von ",[524,2345,2346],{},"node:sqlite"," und globalen Browser-APIs wie ",[524,2349,2350],{},"fetch",", ",[524,2353,2354],{},"WebSocket",[524,2356,2357],{},"WebCrypto"," abhängt) und ",[433,2360,2361],{},"pnpm"," (da das Repository als pnpm-Workspace mit der Version ",[524,2364,2365],{},"10.33.0"," strukturiert ist):",[615,2368,2370],{"className":617,"code":2369,"language":619,"meta":424,"style":424},"# Versionen prüfen\nnode --version   # muss >= 22.5 sein\npnpm --version\n\n# Im Root-Verzeichnis des Repositories\npnpm install\n\n# CLI-Bundle erstellen\npnpm -C apps\u002Fcli build\n\n# Nach einem erfolgreichen Build haben Sie `apps\u002Fcli\u002Fdist\u002Fsynch.js`. Machen Sie es ausführbar und fügen Sie es Ihrem PATH hinzu\nchmod +x apps\u002Fcli\u002Fdist\u002Fsynch.js\nln -sf \"$PWD\u002Fapps\u002Fcli\u002Fdist\u002Fsynch.js\" \"$HOME\u002F.local\u002Fbin\u002Fsynch\"\n\n# Überprüfung\nsynch --help\n",[524,2371,2372,2377,2388,2395,2399,2404,2411,2415,2420,2433,2437,2442,2453,2482,2486,2491],{"__ignoreMap":424},[623,2373,2374],{"class":625,"line":626},[623,2375,2376],{"class":653},"# Versionen prüfen\n",[623,2378,2379,2382,2385],{"class":625,"line":643},[623,2380,2381],{"class":629},"node",[623,2383,2384],{"class":633}," --version",[623,2386,2387],{"class":653},"   # muss >= 22.5 sein\n",[623,2389,2390,2392],{"class":625,"line":650},[623,2391,2361],{"class":629},[623,2393,2394],{"class":633}," --version\n",[623,2396,2397],{"class":625,"line":657},[623,2398,647],{"emptyLinePlaceholder":646},[623,2400,2401],{"class":625,"line":669},[623,2402,2403],{"class":653},"# Im Root-Verzeichnis des Repositories\n",[623,2405,2406,2408],{"class":625,"line":674},[623,2407,2361],{"class":629},[623,2409,2410],{"class":633}," install\n",[623,2412,2413],{"class":625,"line":680},[623,2414,647],{"emptyLinePlaceholder":646},[623,2416,2417],{"class":625,"line":1023},[623,2418,2419],{"class":653},"# CLI-Bundle erstellen\n",[623,2421,2422,2424,2427,2430],{"class":625,"line":1034},[623,2423,2361],{"class":629},[623,2425,2426],{"class":633}," -C",[623,2428,2429],{"class":633}," apps\u002Fcli",[623,2431,2432],{"class":633}," build\n",[623,2434,2435],{"class":625,"line":1130},[623,2436,647],{"emptyLinePlaceholder":646},[623,2438,2439],{"class":625,"line":1136},[623,2440,2441],{"class":653},"# Nach einem erfolgreichen Build haben Sie `apps\u002Fcli\u002Fdist\u002Fsynch.js`. Machen Sie es ausführbar und fügen Sie es Ihrem PATH hinzu\n",[623,2443,2444,2447,2450],{"class":625,"line":1142},[623,2445,2446],{"class":629},"chmod",[623,2448,2449],{"class":633}," +x",[623,2451,2452],{"class":633}," apps\u002Fcli\u002Fdist\u002Fsynch.js\n",[623,2454,2455,2458,2461,2463,2466,2469,2472,2474,2477,2480],{"class":625,"line":1147},[623,2456,2457],{"class":629},"ln",[623,2459,2460],{"class":633}," -sf",[623,2462,2058],{"class":695},[623,2464,2465],{"class":771},"$PWD",[623,2467,2468],{"class":633},"\u002Fapps\u002Fcli\u002Fdist\u002Fsynch.js",[623,2470,2471],{"class":695},"\"",[623,2473,2058],{"class":695},[623,2475,2476],{"class":771},"$HOME",[623,2478,2479],{"class":633},"\u002F.local\u002Fbin\u002Fsynch",[623,2481,702],{"class":695},[623,2483,2484],{"class":625,"line":1153},[623,2485,647],{"emptyLinePlaceholder":646},[623,2487,2488],{"class":625,"line":2127},[623,2489,2490],{"class":653},"# Überprüfung\n",[623,2492,2493,2495],{"class":625,"line":2138},[623,2494,2338],{"class":629},[623,2496,2497],{"class":633}," --help\n",[429,2499,2500,2501,2504],{},"Da die Synch CLI auf demselben VPS wie Ihr Remote-Tresor von Synch ausgeführt wird, kann sie direkt eine Verbindung zum lokalen API-Server herstellen. Wenn Sie einen anderen Server konfigurieren, führen Sie ",[524,2502,2503],{},"synch login --api-url \u003Cremote-synch-api-url>"," aus, um Ihren Ziel-API-Endpunkt zu definieren.",[429,2506,2507],{},[516,2508],{"alt":2509,"src":2510},"Ausführen von Synch Login mit benutzerdefinierter API-URL im Terminal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynch-login-api-url-terminal.webp",[429,2512,561,2513,2516],{},[524,2514,2515],{},"synch login"," in Ihrem Terminal aus, und Sie erhalten eine Autorisierungs-URL:",[429,2518,2519],{},[516,2520],{"alt":2521,"src":2522},"Terminalausgabe mit der Authentifizierungs-URL für Synch CLI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynch-login-auth-url-terminal.webp",[429,2524,2525],{},"Melden Sie sich über die Webseite mit derselben E-Mail-Adresse an, die Sie im Obsidian-Desktop-Plugin Synchrun registriert haben.",[429,2527,2528],{},[516,2529],{"alt":2530,"src":2531},"Erfolgreiche Web-Anmeldung für die Synch-CLI-Autorisierung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynch-web-login-success.webp",[429,2533,561,2534,2537],{},[524,2535,2536],{},"synch vault connect --vault ~\u002Fvaults\u002F\u003Ctresorname> --vault-id asadqe-7b29-4677-fsad-234asdafasd"," aus, um Ihr lokales Tresorverzeichnis auf dem VPS mit dem Remote-Tresor zu verknüpfen.",[429,2539,2540,2541,2544,2545,2548,2549,2552],{},"Die Remote-Tresor-ID finden Sie in den Einstellungen des ",[433,2542,2543],{},"Synchrun","-Plugins, indem Sie auf ",[433,2546,2547],{},"'Remote-Tresore verwalten'"," ('Manage remote vaults') klicken. Dadurch wird eine Webseite mit einer Liste Ihrer Remote-Tresore geöffnet, die jeweils durch eine eindeutige GUID identifiziert sind (z. B. ",[524,2550,2551],{},"123e4567-e89b-12d3-a456-426614174000","):",[429,2554,2555,2560],{},[516,2556],{"src":2557,"alt":2558,"style":2559},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynchrun-manage-remote-vaults.webp","Verwalten von Remote-Vaults im Synchrun-Plugin","max-width: 582px; width: 100%; height: auto;",[516,2561],{"alt":2562,"src":2563},"Suchen der eindeutigen Remote-Vault-ID in Synchrun","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynchrun-remote-vault-id.webp",[429,2565,2566,2567,2570],{},"Geben Sie Ihr Tresor-Passwort ein, wenn Sie dazu aufgefordert werden, um die Verbindung herzustellen. Führen Sie nach dem Verbinden ",[524,2568,2569],{},"synch sync --vault ~\u002Fvaults\u002F\u003Ctresor-name>"," aus, um Ihre erste Synchronisation durchzuführen. Dieser erste Durchlauf kann je nach Größe Ihres Tresors einige Zeit in Anspruch nehmen.",[429,2572,2573],{},[516,2574],{"alt":2575,"src":2576},"Fortschritt der anfänglichen Vault-Synchronisierung in Synch CLI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynch-cli-initial-sync-progress.webp",[429,2578,2579,2580,2583],{},"Um dies zu automatisieren, richten Sie einen systemd-Dienst ein, um ",[524,2581,2582],{},"synch watch"," kontinuierlich auszuführen, und aktivieren Sie diesen, um sicherzustellen, dass Änderungen beim Booten sofort synchronisiert werden:",[615,2585,2587],{"className":617,"code":2586,"language":619,"meta":424,"style":424},"sudo tee \u002Fetc\u002Fsystemd\u002Fsystem\u002Fsynch-watch.service \u003C\u003C'EOF'\n[Unit]\nDescription=Synch vault watcher\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nType=simple\nUser=\u003Cusername>\nExecStart=\u002Fhome\u002F\u003Cusername>\u002F.local\u002Fbin\u002Fsynch watch --vault \u002Fhome\u002F\u003Cusername>\u002Fvaults\u002F\u003Cvault-name>\nWorkingDirectory=\u002Fhome\u002F\u003Cusername>\u002Fvaults\nEnvironment=\"PATH=\u002Fhome\u002F\u003Cusername>\u002F.local\u002Fbin:\u002Fhome\u002F\u003Cusername>\u002F.cargo\u002Fbin:\u002Fusr\u002Flocal\u002Fsbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fusr\u002Fsbin:\u002Fusr\u002Fbin:\u002Fsbin:\u002Fbin\"\nEnvironment=\"HOME=\u002Fhome\u002F\u003Cusername>\"\nRestart=always\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target\nEOF\nsudo systemctl daemon-reload\nsudo systemctl enable --now synch-watch.service\n",[524,2588,2589,2605,2609,2614,2619,2624,2628,2632,2637,2642,2647,2652,2657,2662,2666,2671,2675,2679,2683,2689,2698],{"__ignoreMap":424},[623,2590,2591,2593,2596,2599,2602],{"class":625,"line":626},[623,2592,630],{"class":629},[623,2594,2595],{"class":633}," tee",[623,2597,2598],{"class":633}," \u002Fetc\u002Fsystemd\u002Fsystem\u002Fsynch-watch.service",[623,2600,2601],{"class":695}," \u003C\u003C",[623,2603,2604],{"class":695},"'EOF'\n",[623,2606,2607],{"class":625,"line":643},[623,2608,1088],{"class":633},[623,2610,2611],{"class":625,"line":650},[623,2612,2613],{"class":633},"Description=Synch vault watcher\n",[623,2615,2616],{"class":625,"line":657},[623,2617,2618],{"class":633},"After=network-online.target\n",[623,2620,2621],{"class":625,"line":669},[623,2622,2623],{"class":633},"Wants=network-online.target\n",[623,2625,2626],{"class":625,"line":674},[623,2627,647],{"emptyLinePlaceholder":646},[623,2629,2630],{"class":625,"line":680},[623,2631,1107],{"class":633},[623,2633,2634],{"class":625,"line":1023},[623,2635,2636],{"class":633},"Type=simple\n",[623,2638,2639],{"class":625,"line":1034},[623,2640,2641],{"class":633},"User=\u003Cusername>\n",[623,2643,2644],{"class":625,"line":1130},[623,2645,2646],{"class":633},"ExecStart=\u002Fhome\u002F\u003Cusername>\u002F.local\u002Fbin\u002Fsynch watch --vault \u002Fhome\u002F\u003Cusername>\u002Fvaults\u002F\u003Cvault-name>\n",[623,2648,2649],{"class":625,"line":1136},[623,2650,2651],{"class":633},"WorkingDirectory=\u002Fhome\u002F\u003Cusername>\u002Fvaults\n",[623,2653,2654],{"class":625,"line":1142},[623,2655,2656],{"class":633},"Environment=\"PATH=\u002Fhome\u002F\u003Cusername>\u002F.local\u002Fbin:\u002Fhome\u002F\u003Cusername>\u002F.cargo\u002Fbin:\u002Fusr\u002Flocal\u002Fsbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fusr\u002Fsbin:\u002Fusr\u002Fbin:\u002Fsbin:\u002Fbin\"\n",[623,2658,2659],{"class":625,"line":1147},[623,2660,2661],{"class":633},"Environment=\"HOME=\u002Fhome\u002F\u003Cusername>\"\n",[623,2663,2664],{"class":625,"line":1153},[623,2665,1127],{"class":633},[623,2667,2668],{"class":625,"line":2127},[623,2669,2670],{"class":633},"RestartSec=5\n",[623,2672,2673],{"class":625,"line":2138},[623,2674,647],{"emptyLinePlaceholder":646},[623,2676,2677],{"class":625,"line":2143},[623,2678,1150],{"class":633},[623,2680,2681],{"class":625,"line":2151},[623,2682,1156],{"class":633},[623,2684,2686],{"class":625,"line":2685},19,[623,2687,2688],{"class":695},"EOF\n",[623,2690,2692,2694,2696],{"class":625,"line":2691},20,[623,2693,630],{"class":629},[623,2695,634],{"class":633},[623,2697,1175],{"class":633},[623,2699,2701,2703,2705,2707,2710],{"class":625,"line":2700},21,[623,2702,630],{"class":629},[623,2704,634],{"class":633},[623,2706,768],{"class":633},[623,2708,2709],{"class":633}," --now",[623,2711,2712],{"class":633}," synch-watch.service\n",[429,2714,2715,2716,2718],{},"Öffnen Sie ",[524,2717,1963],{}," in Ihrem Webbrowser. Sie werden feststellen, dass die Benutzeroberfläche und das Layout praktisch identisch mit der Desktop-App sind:",[516,2720],{"src":2721,"alt":2722,"style":2723},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fignis-web-interface-desktop-view.webp","Ignis-Weboberfläche zeigt den Obsidian-Vault auf dem Desktop an","max-width: 593px; width: 100%; height: auto;",[429,2725,2726],{},"Ein Klick auf das Einstellungssymbol zeigt, dass fast alle Kernkonfigurationen intakt sind, obwohl Ihre Community-Plugins neu installiert werden müssen:",[516,2728],{"src":2729,"alt":2730,"style":2731},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fignis-settings-community-plugins.webp","Community-Plugin-Einstellungen in der Ignis-Weboberfläche","max-width: 597px; width: 100%; height: auto;",[429,2733,2734],{},"Um das Setup zu testen, können Sie über die Webschnittstelle eine neue Notiz hinzufügen:",[516,2736],{"src":2737,"alt":2738,"style":2731},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fignis-create-new-note-web.webp","Erstellen einer neuen Markdown-Notiz über die Ignis-Weboberfläche",[429,2740,2741,2742,2744],{},"Die Notiz wird sofort mit Ihrer Obsidian-Desktop-App synchronisiert. Beachten Sie, dass leere Ordner in ",[433,2743,1441],{}," nicht angezeigt werden.",[516,2746],{"src":2747,"alt":2748,"style":2749},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-desktop-synced-note.webp","Neu erstellte Notiz erfolgreich mit der Obsidian-Desktop-App synchronisiert","max-width: 502px; width: 100%; height: auto;",[429,2751,2752,2753,2755],{},"Anzeigen von ",[524,2754,1963],{}," auf einem mobilen Webbrowser:",[429,2757,2758,2763],{},[516,2759],{"src":2760,"alt":2761,"style":2762},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fignis-mobile-view-sidebar.webp","Seitenleisten-Navigation des Ignis-Webclients auf einem Mobilgerät","max-width: 269px; width: 100%; height: auto;",[516,2764],{"src":2765,"alt":2766,"style":2762},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fignis-mobile-view-editor.webp","Markdown-Notiz-Editor des Ignis-Webclients auf einem Mobilgerät",[429,2768,2769,2770,2772,2773,2776],{},"Wenn Sie eine Notiz in ",[433,2771,1441],{}," löschen, wird sie sicher in den Ordner ",[524,2774,2775],{},"~\u002Fvaults\u002F\u003Ctresor-name>\u002F.trash"," Ihres lokalen Tresors verschoben.",[457,2778,2780],{"id":2779},"abschließende-gedanken-zu-selbst-gehosteten-tresoren","Abschließende Gedanken zu selbst gehosteten Tresoren",[429,2782,2783,2784,565,2786,2788,2789,2791],{},"Zusammen sorgen ",[433,2785,1432],{},[433,2787,1441],{}," dafür, dass Ihr Haupt-Obsidian-Tresor nahtlos auf allen Ihren Geräten verfügbar ist, vollständig gehostet auf einer Infrastruktur unter Ihrer direkten Kontrolle. Die Platzierung dieser Dienste in einem privaten Netzwerk von ",[433,2790,443],{}," stellt sicher, dass Ihre persönlichen Notizen vollständig vor dem öffentlichen Internet geschützt sind.",[429,2793,2794,2796],{},[433,2795,1441],{}," ist nicht dazu gedacht, die native Obsidian-Desktop-App vollständig zu ersetzen. Stattdessen dient es als schlanker, temporärer Webclient für den Zugriff auf und die Bearbeitung Ihres Tresors, wenn Sie nicht an Ihrem Hauptcomputer sind. Für das tägliche Schreiben und die umfassende Tresorverwaltung bleibt die native Obsidian-Anwendung die komfortabelste Wahl.",[429,2798,2799,2800,2802],{},"Da Synch eine Ende-zu-Ende-Verschlüsselung verwendet, muss Ihr Remote-Tresor-Passwort hochsicher sein, um vor Brute-Force-Angriffen zu schützen. Es ist von entscheidender Bedeutung, dass Sie dieses Passwort niemals verlieren – der Server speichert den unverschlüsselten ",[433,2801,1504],{}," nicht, und wenn Sie ihn vergessen, sind Ihre Daten völlig unwiederbringlich verloren. Stellen Sie außerdem sicher, dass Ihre VPS-Instanz zusammen mit allen automatisierten Snapshots oder Backups ordnungsgemäß gesichert und gewartet wird.",[429,2804,2805],{},"Obwohl der verschlüsselte Versionsverlauf von Synch und die Tools zur Wiederherstellung gelöschter Dateien die meisten versehentlichen Verluste abdecken, wird dennoch dringend empfohlen, ein separates, unabhängiges Backup Ihres Obsidian-Tresors aufzubewahren.",[457,2807,2809],{"id":2808},"referenzen","Referenzen",[484,2811,2812,2819,2826],{},[468,2813,2814],{},[449,2815,2818],{"href":2816,"rel":2817},"https:\u002F\u002Fsynch.run\u002Fself-hosting-docker\u002F",[509],"Synch-Bereitstellung mit Docker Compose",[468,2820,2821],{},[449,2822,2825],{"href":2823,"rel":2824},"https:\u002F\u002Fignis.thiefling.com\u002Fdocs\u002Fserver\u002Fdeploy\u002F",[509],"Ignis-Bereitstellung mit Docker",[468,2827,2828],{},[449,2829,2832],{"href":2830,"rel":2831},"https:\u002F\u002Fsynch.run\u002Fblog\u002Fencryption-and-decryption\u002F",[509],"Wie funktioniert die Ende-zu-Ende-Verschlüsselung in Synch?",[1336,2834,2835],{},"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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":424,"searchDepth":643,"depth":650,"links":2837},[2838,2847,2856,2857],{"id":1476,"depth":643,"text":1477,"children":2839},[2840,2844],{"id":1518,"depth":650,"text":1519,"children":2841},[2842,2843],{"id":1522,"depth":657,"text":1523},{"id":1538,"depth":657,"text":1539},{"id":1775,"depth":650,"text":1776,"children":2845},[2846],{"id":1779,"depth":657,"text":1780},{"id":1898,"depth":643,"text":1899,"children":2848},[2849],{"id":1920,"depth":650,"text":1921,"children":2850},[2851,2852,2853,2854,2855],{"id":1948,"depth":657,"text":1949},{"id":1957,"depth":657,"text":1646},{"id":2004,"depth":657,"text":2005},{"id":2236,"depth":657,"text":2237},{"id":2322,"depth":657,"text":2323},{"id":2779,"depth":643,"text":2780},{"id":2808,"depth":643,"text":2809},[2859],"productivity","2026-09-15","Synchronisieren Sie Ihre Obsidian-Vaults sicher zwischen Geräten und greifen Sie per Web mit selbst gehostetem Synch & Ignis über Cloudflare Zero Trust zu.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002FDE-Sync-Obsidian-Across-Devices.webp","Sichere Synchronisierung von Obsidian-Vaults zwischen mehreren Geräten über selbstgehostetes Synch und den Ignis-Webclient im Cloudflare Zero Trust Netzwerk",{"schemaOrg":2865,"robots":1399,"sitemap":2869},[2866,2868],{"@type":2867,"headline":1414,"description":2861,"image":2862},"Article",{"@type":1368,"name":1414,"description":2861,"image":2862},{"lastmod":2870},"2026-09-16",{"title":2872,"description":2861,"ogTitle":1414,"ogDescription":2861,"twitterTitle":1414,"twitterDescription":2861},"Sichere Obsidian-Synchronisation mit Synch und Ignis","de\u002Farticle\u002Fsync-obsidian-across-devices",[2875,2876,2877,1406],"Self-Hosting","Obsidian","Synchronisierung",null,"7Ebcw1ELL387eJ-Tv-_8l-y4SjkrPCpAgCSl0W7PjSI",{"id":2881,"title":2882,"author":424,"body":2883,"category":4072,"date":4075,"description":4076,"extension":1362,"image":4077,"imageAlt":4078,"isPublished":646,"meta":4079,"minRead":1130,"navigation":646,"path":7,"seo":4104,"stem":4106,"tags":4107,"updatedAt":2878,"__hash__":4110},"article\u002Fde\u002Farticle\u002Fbringing-buzz-to-deepseek-harness.md","DeepSeek Harness mit Buzz verbinden: Das Nostr-Gateway",{"type":426,"value":2884,"toc":4056},[2885,2891,2912,2918,2921,2925,2931,2973,2976,3034,3038,3044,3312,3315,3319,3323,3329,3333,3347,3351,3361,3407,3414,3418,3421,3453,3457,3462,3503,3511,3517,3526,3532,3563,3576,3580,3588,3617,3639,3687,3694,3699,3705,3712,3718,3723,3731,3745,3751,3761,3796,3799,3805,3812,3818,3822,3825,3976,3980,4014,4018,4024,4027,4053],[429,2886,2887],{},[516,2888],{"alt":2889,"src":2890},"Übersicht über das mit einem Block Buzz-Kanal verbundene DeepSeek Harness Nachrichten-Gateway","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-buzz-nostr-gateway-overview.webp",[429,2892,2893,2894,2901,2902,2906,2907,2911],{},"Das DeepSeek Harness (DSH) Plugin, ",[433,2895,2896],{},[449,2897,2900],{"href":2898,"rel":2899},"https:\u002F\u002Fgithub.com\u002Fa792883583\u002Fdsh-message-gateway",[509],"dsh-message-gateway",", erweitert den DeepSeek Harness Assistenten auf verschiedene Messaging-Plattformen wie Discord, Telegram und WeChat. Das Plugin-Repository wurde geforkt und erweitert, um die Plattform ",[433,2903,2904],{},[449,2905,1662],{"href":383}," zur Liste hinzuzufügen. Das geforkte Repository ist auf GitHub unter ",[449,2908,2909],{"href":2909,"rel":2910},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fdsh-message-gateway",[509]," verfügbar.",[1466,2913],{"description":2914,"image":2915,"image-alt":2916,"label":2917,"min-read":1661,"title":1662,"to":383},"Lernen Sie, wie Sie das Nostr-Relay Block's Buzz auf einem Ubuntu VPS hinter Cloudflare selbst hosten. Ein sicherer Workspace für Menschen und KI-Agenten.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002FDE-Self-Hosting-Buzz-As-The-Workspace-Where-AI-Agents-Become-Colleagues.webp","Eine Premium-Technologiekarte im Format 16:9 mit tiefblauen und orangefarbenen Akzenten, die zeigt, wie man das Buzz-Relay von Block auf einem Ubuntu-VPS selbst hostet, mit einem klaren glassmorphic Panel mit zentrierter Typografie.","Voraussetzungsleitfaden",[429,2919,2920],{},"Der DSH-Assistent tritt einem Buzz-Relay als vollwertiges Mitglied bei, empfängt Direktnachrichten (DMs) sowie Kanalnachrichten, in denen er @erwähnt wird, und antwortet über dieselbe kanalbezogene Agenten-Pipeline, die auch von der Weboberfläche genutzt wird.",[457,2922,2924],{"id":2923},"architektur-des-dsh-message-gateway-plugins","Architektur des dsh-message-gateway Plugins",[429,2926,2927,2928,2930],{},"Die Architektur des ",[433,2929,2900],{}," Plugins gliedert sich in zwei Kernbereiche:",[484,2932,2933,2963],{},[468,2934,2935,2938,2939,2942,2943,2946,2947,2950,2951,2954,2955,2958,2959,2962],{},[433,2936,2937],{},"Host"," (Node): ",[524,2940,2941],{},"gateway-store"," (Zugangsdaten in ",[524,2944,2945],{},"~\u002F.dsh\u002Fgateway.json","), ",[524,2948,2949],{},"platforms.ts"," (Plattformdefinitionen und Verbindungstests), ",[524,2952,2953],{},"routes.ts"," (",[524,2956,2957],{},"\u002Fgateway\u002F*"," Endpunkte) und ",[524,2960,2961],{},"bridge-manager.ts"," (die residenten Bridges: unabhängige Agentensitzungen pro Chat und gestreamte Antworten).",[468,2964,2965,2968,2969,2972],{},[433,2966,2967],{},"Client"," (Browser): Die Seite \"",[433,2970,2971],{},"Message platforms","\" in der Seitenleiste, auf der Sie Zugangsdaten hinterlegen, Verbindungen testen und den Status überwachen.",[429,2974,2975],{},"Die Anbindung einer neuen Plattform umfasst folgende Schritte:",[465,2977,2978,2995,3009],{},[468,2979,2980,2983,2984,2987,2988,2991,2992,1654],{},[433,2981,2982],{},"Eine Bridge-Klasse",": Stellt ",[524,2985,2986],{},"start\u002Fstop\u002Fstatus"," sowie einen ",[524,2989,2990],{},"onText(text, frame)"," Callback bereit, analog zu ",[524,2993,2994],{},"wecom-bridge.ts",[468,2996,2997,3000,3001,3004,3005,3008],{},[433,2998,2999],{},"Bridge-Manager-Verdrahtung",": Wiederverwendung der bestehenden Chat-Pipeline (",[524,3002,3003],{},"ensureAgentForKey"," + ",[524,3006,3007],{},"pendingMap",") unter Einbindung der Antwort-Senke der Plattform.",[468,3010,3011,3014,3015,565,3018,3021,3022,3025,3026,3029,3030,3033],{},[433,3012,3013],{},"Speicher- und Routen-Anbindung",": In ",[524,3016,3017],{},"\u002Fgateway\u002Fsave",[524,3019,3020],{},"\u002Fgateway\u002Fdelete",": ",[433,3023,3024],{},"Das Speichern von Zugangsdaten startet die Bridge, das Löschen stoppt sie"," — ergänzt durch ein ",[524,3027,3028],{},"autoStartXxx","-Flag, damit ",[524,3031,3032],{},"dsh web"," beim Systemstart automatisch neu verbindet.",[457,3035,3037],{"id":3036},"buzz-bridge-implementierung-nostr-protokoll-event-lebenszyklus","Buzz-Bridge-Implementierung: Nostr-Protokoll & Event-Lebenszyklus",[429,3039,3040,3043],{},[433,3041,3042],{},"DeepSeek Harness"," wurde direkt verwendet, um die Buzz-Bridge zu implementieren. Die Umsetzung erfüllt die folgenden Nostr-Protokollspezifikationen:",[3045,3046,3047,3074],"table",{},[3048,3049,3050],"thead",{},[3051,3052,3053,3059],"tr",{},[3054,3055,3056],"th",{},[433,3057,3058],{},"Transport",[3054,3060,3061,3062,3065,3066,3069,3070,3073],{},"Ein NIP-42-authentifizierter WebSocket; Standard ",[524,3063,3064],{},"ws:\u002F\u002Flocalhost:3000","; ",[524,3067,3068],{},"http(s):\u002F\u002F"," wird zu ",[524,3071,3072],{},"ws(s):\u002F\u002F"," normalisiert",[3075,3076,3077,3096,3123,3141,3165,3188,3212,3225,3239,3258,3275,3289],"tbody",{},[3051,3078,3079,3085],{},[3080,3081,3082],"td",{},[433,3083,3084],{},"Authentifizierung",[3080,3086,3087,3088,3091,3092,3095],{},"AUTH-Event ",[524,3089,3090],{},"kind 22242",", Tags ",[524,3093,3094],{},"[[\"relay\", url], [\"challenge\", challenge]]",", leerer Inhalt, signiert mit dem Agenten-Schlüssel",[3051,3097,3098,3103],{},[3080,3099,3100],{},[433,3101,3102],{},"Abonnements",[3080,3104,3105,3021,3108,3111,3112,3115,3116,3119,3120],{},[433,3106,3107],{},"Kanalbezogen",[524,3109,3110],{},"REQ {\"kinds\":[9], \"#h\":[\u003Cuuid>]}"," — ein REQ pro Kanal. Ein globales ",[524,3113,3114],{},"kinds:[9]"," REQ erhält EOSE, liefert aber keine Events aus; Multi-Wert ",[524,3117,3118],{},"#h"," funktioniert ",[433,3121,3122],{},"nicht",[3051,3124,3125,3130],{},[3080,3126,3127],{},[433,3128,3129],{},"Erkennung (Discovery)",[3080,3131,3132,3133,3136,3137,3140],{},"Historisches ",[524,3134,3135],{},"REQ {kinds:[39000]}"," für Kanal-Metadaten (",[524,3138,3139],{},"type == \"dm\""," markiert Direktnachrichtenkanäle)",[3051,3142,3143,3148],{},[3080,3144,3145],{},[433,3146,3147],{},"Mitgliedschaft",[3080,3149,3150,3151,3154,3155,3157,3158,3161,3162],{},"Live ",[524,3152,3153],{},"REQ {kinds:[44100,44101], \"#p\":[unser pubkey], since: now-60s}"," — 44100 = hinzugefügt, 44101 = entfernt, mit ",[524,3156,429],{},"+",[524,3159,3160],{},"h","; aktualisiert Abonnements ",[433,3163,3164],{},"ohne Reconnect",[3051,3166,3167,3172],{},[3080,3168,3169],{},[433,3170,3171],{},"Chat-Events",[3080,3173,3174,3177,3178,3181,3182,2351,3185],{},[524,3175,3176],{},"kind 9"," mit Tags ",[524,3179,3180],{},"[\"h\", channel]",", optional ",[524,3183,3184],{},"[\"e\", replyTo]",[524,3186,3187],{},"[\"p\", mention]",[3051,3189,3190,3195],{},[3080,3191,3192],{},[433,3193,3194],{},"In-Place-Edits",[3080,3196,3197,440,3200,3004,3202,3205,3206,3208,3209,3211],{},[524,3198,3199],{},"kind 40003",[524,3201,3160],{},[524,3203,3204],{},"e","→Ziel; ersetzt Inhalt; Relay-Limit 64 KB → Nutzlasten ≤ 60.000 B halten; lange Antworten werden aufgeteilt — Chunk 0 nutzt das Edit, Überhang folgt als ",[524,3207,3176],{}," Thread-Nachricht (",[524,3210,3204],{},"→Root)",[3051,3213,3214,3219],{},[3080,3215,3216],{},[433,3217,3218],{},"CLOSED-Frames",[3080,3220,3221,3224],{},[524,3222,3223],{},"auth-required"," vor AUTH ist normaler Bootstrap (AUTH abschließen, Subs neu öffnen); nach AUTH → begrenzter Neuversuch (3 Versuche, 0\u002F1\u002F2 s Backoff); Reconnect baut alles neu auf",[3051,3226,3227,3232],{},[3080,3228,3229],{},[433,3230,3231],{},"Relay-Limits",[3080,3233,3234,3235,3238],{},"≤ 2000 historische Events pro Abonnement, chronologisch absteigend (neueste zuerst), selbst mit ",[524,3236,3237],{},"since","-Filter",[3051,3240,3241,3246],{},[3080,3242,3243],{},[433,3244,3245],{},"Erwähnungs-Filter",[3080,3247,3248,3249,3251,3252,3254,3255,3257],{},"Verarbeitet eingehende ",[524,3250,3176],{}," nur wenn: (a) ",[524,3253,429],{},"-Tag unseren Pubkey enthält, (b) Kanal ein DM ist, oder (c) ",[524,3256,3204],{},"-Root unser eigenes Event ist. Eigener Pubkey wird ignoriert (Schleifenschutz)",[3051,3259,3260,3265],{},[3080,3261,3262],{},[433,3263,3264],{},"Ausgehende Erwähnungen",[3080,3266,3267,3268,3271,3272,3274],{},"Ausgehender Text wird unverändert veröffentlicht — das Relay prüft keine ",[524,3269,3270],{},"@","-Token; ",[524,3273,429],{},"-Tags enthalten den ursprünglichen Autor + bis zu 7 weitere erwähnte Pubkeys (max. 8)",[3051,3276,3277,3282],{},[3080,3278,3279],{},[433,3280,3281],{},"Direktnachrichten (DM)",[3080,3283,3284,3285,3288],{},"Relay-spezifische Klartext-Kanäle (",[524,3286,3287],{},"type: \"dm\""," Metadaten) — keine NIP-04\u002F44-Verschlüsselung in dieser Bridge",[3051,3290,3291,3296],{},[3080,3292,3293],{},[433,3294,3295],{},"Anhänge (Eingehend)",[3080,3297,3298,3299,2954,3302,2351,3305,2351,3308,3311],{},"NIP-92 ",[524,3300,3301],{},"imeta",[524,3303,3304],{},"url",[524,3306,3307],{},"sha256",[524,3309,3310],{},"m",") → Standard-HTTP(S)-Download, SHA-256-Prüfung, 20 MB Limit, max. 4 pro Nachricht; ausgehende Bilder werden nicht unterstützt",[429,3313,3314],{},"Das folgende Diagramm veranschaulicht den Bootstrap-Ablauf der Buzz-Bridge:",[516,3316],{"src":3317,"alt":3318},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-buzz-bootstrap.webp","Sequenzdiagramm zur Veranschaulichung des Bootstrap- und NIP-42-Authentifizierungsprozesses der Buzz-Bridge",[479,3320,3322],{"id":3321},"echtzeit-streaming-über-nostr-in-place-edits-kind-40003","Echtzeit-Streaming über Nostr In-Place-Edits (Kind 40003)",[429,3324,3325,3326,972],{},"Da Nostr keine native Tippanzeige besitzt und Events append-only gespeichert werden, ",[433,3327,3328],{},"simuliert die Buzz-Bridge Streaming über In-Place-Edits",[516,3330],{"src":3331,"alt":3332},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-buzz-reply.webp","Ablaufdiagramm der In-Place-Bearbeitung zur Simulation gestreamter Antworten mittels Kind-40003-Events",[484,3334,3335],{},[468,3336,3337],{},[3338,3339,3340,3341,3343,3344,3346],"em",{},"Die Buzz-Bridge veröffentlicht zunächst ein temporäres Platzhalter-Event ",[524,3342,3176],{},", schreibt dieses kontinuierlich mit ratenlimitierten ",[524,3345,3199],{}," In-Place-Edits fort und setzt den finalen Edit, sobald der Agent die Generierung beendet hat. Dies entspricht dem bewährten Muster von Telegram- und Discord-Bridges.",[479,3348,3350],{"id":3349},"einbindung-von-deepseek-harness-workspaces-über-chat-befehle","Einbindung von DeepSeek Harness Workspaces über Chat-Befehle",[429,3352,3353,3354,3357,3358,2552],{},"Die \"Workspaces\"-Funktion in der DSH-Weboberfläche basiert auf dem ",[524,3355,3356],{},"workspaceRegistry","-Dienst (",[524,3359,3360],{},"@deepseek-ai\u002Fdsh-workspace",[615,3362,3366],{"className":3363,"code":3364,"language":3365,"meta":424,"style":424},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const existing = await ctx.workspaceRegistry.resolveByPath(request.path);\n","typescript",[524,3367,3368],{"__ignoreMap":424},[623,3369,3370,3374,3377,3380,3384,3387,3389,3391,3393,3396,3399,3401,3404],{"class":625,"line":626},[623,3371,3373],{"class":3372},"spNyl","const",[623,3375,3376],{"class":771}," existing ",[623,3378,3379],{"class":695},"=",[623,3381,3383],{"class":3382},"s7zQu"," await",[623,3385,3386],{"class":771}," ctx",[623,3388,1654],{"class":695},[623,3390,3356],{"class":771},[623,3392,1654],{"class":695},[623,3394,3395],{"class":1578},"resolveByPath",[623,3397,3398],{"class":771},"(request",[623,3400,1654],{"class":695},[623,3402,3403],{"class":771},"path)",[623,3405,3406],{"class":695},";\n",[429,3408,3409,3410,3413],{},"Die Buzz-Bridge stellt den Chat-Befehl ",[524,3411,3412],{},"\u002Fworkspace \u003Cordner>"," bereit, der ein bestehendes Verzeichnis in DSH registriert. Jede neue über das Gateway initiierte Sitzung wird diesem Ordner zugeordnet und erscheint in der Weboberfläche.",[516,3415],{"src":3416,"alt":3417},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-buzz-workspace.webp","Architektur der Registrierung von DeepSeek Harness-Workspaces über Chat-Befehle",[429,3419,3420],{},"Drei zentrale Entwurfsentscheidungen:",[484,3422,3423,3433,3443],{},[468,3424,3425,3428,3429,3432],{},[433,3426,3427],{},"Ordnerwechsel = Neue Sitzung."," Der Parameter ",[524,3430,3431],{},"cwd"," wird bei der Initialisierung im Sitzungs-Header hinterlegt und kann nachträglich nicht geändert werden.",[468,3434,3435,3438,3439,3442],{},[433,3436,3437],{},"Ordner muss bereits existieren."," Der Aufruf ",[524,3440,3441],{},"create"," weist nicht vorhandene Pfade ab.",[468,3444,3445,3448,3449,3452],{},[433,3446,3447],{},"Sicherheitsrelevanter Befehl."," Jede Sitzung läuft unter einer ",[433,3450,3451],{},"Auto-Approve","-Richtlinie und gewährt Dateizugriff auf das Zielverzeichnis.",[457,3454,3456],{"id":3455},"schritt-für-schritt-installations-und-konfigurationsanleitung","Schritt-für-Schritt Installations- und Konfigurationsanleitung",[465,3458,3459],{},[468,3460,3461],{},"Führen Sie folgende Befehle im Terminal aus:",[615,3463,3465],{"className":617,"code":3464,"language":619,"meta":424,"style":424},"dsh plugin --profile web add https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fdsh-message-gateway.git\n\n# Start DSH web\ndsh web\n",[524,3466,3467,3487,3491,3496],{"__ignoreMap":424},[623,3468,3469,3472,3475,3478,3481,3484],{"class":625,"line":626},[623,3470,3471],{"class":629},"dsh",[623,3473,3474],{"class":633}," plugin",[623,3476,3477],{"class":633}," --profile",[623,3479,3480],{"class":633}," web",[623,3482,3483],{"class":633}," add",[623,3485,3486],{"class":633}," https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fdsh-message-gateway.git\n",[623,3488,3489],{"class":625,"line":643},[623,3490,647],{"emptyLinePlaceholder":646},[623,3492,3493],{"class":625,"line":650},[623,3494,3495],{"class":653},"# Start DSH web\n",[623,3497,3498,3500],{"class":625,"line":657},[623,3499,3471],{"class":629},[623,3501,3502],{"class":633}," web\n",[465,3504,3505],{"start":643},[468,3506,3507,3508,3510],{},"Sobald die DSH-Weboberfläche im Browser geladen ist, klicken Sie auf das Symbol \"",[433,3509,2971],{},"\":",[429,3512,3513],{},[516,3514],{"alt":3515,"src":3516},"Seitenleiste der DeepSeek Harness-Weboberfläche mit hervorgehobenem Message platforms-Menü","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-web-ui-message-platforms-sidebar-icon.webp",[465,3518,3519],{"start":650},[468,3520,3521,3522,3525],{},"Wählen Sie \"",[433,3523,3524],{},"Buzz","\" im linken Navigationsbereich:",[429,3527,3528],{},[516,3529],{"alt":3530,"src":3531},"Konfigurationsbereich der Buzz-Bridge im DeepSeek Harness Nachrichten-Gateway","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-message-gateway-buzz-config-panel.webp",[465,3533,3534,3545,3556],{"start":657},[468,3535,3536,3537,3540,3541,3544],{},"Klicken Sie auf \"",[433,3538,3539],{},"Generate keypair","\", um ein Nostr-Schlüsselpaar zu generieren. Kopieren Sie den öffentlichen Schlüssel ",[524,3542,3543],{},"npub"," an einen sicheren Ort.",[468,3546,3547,3548,3551,3552,3555],{},"Tragen Sie die ",[433,3549,3550],{},"Relay URL"," sowie die ",[433,3553,3554],{},"Channels"," (die Allowlist der zu abonnierenden Kanal-UUIDs) ein.",[468,3557,3558,3559,3562],{},"Klicken Sie auf die Schaltfläche \"",[433,3560,3561],{},"Save","\".",[429,3564,3565,3566,3569,3570,3573,3574,1654],{},"Das Speichern des Formulars sichert die Zugangsdaten und ",[433,3567,3568],{},"startet die Bridge",". Der private Schlüssel ",[524,3571,3572],{},"nsec"," wird als vertrauliches Geheimnis behandelt und verbleibt ausschließlich in ",[524,3575,2945],{},[479,3577,3579],{"id":3578},"agenten-schlüsselpaar-im-buzz-nostr-relay-registrieren","Agenten-Schlüsselpaar im Buzz Nostr-Relay registrieren",[429,3581,3582,3585,3586,972],{},[433,3583,3584],{},"Fügen Sie den DSH-Assistenten dem Relay als Mitglied hinzu."," Verwenden Sie dazu den zuvor generierten ",[524,3587,3543],{},[615,3589,3591],{"className":617,"code":3590,"language":619,"meta":424,"style":424},"docker compose exec relay buzz-admin add-member --pubkey npub123123123\n",[524,3592,3593],{"__ignoreMap":424},[623,3594,3595,3597,3599,3602,3605,3608,3611,3614],{"class":625,"line":626},[623,3596,1744],{"class":629},[623,3598,1747],{"class":633},[623,3600,3601],{"class":633}," exec",[623,3603,3604],{"class":633}," relay",[623,3606,3607],{"class":633}," buzz-admin",[623,3609,3610],{"class":633}," add-member",[623,3612,3613],{"class":633}," --pubkey",[623,3615,3616],{"class":633}," npub123123123\n",[429,3618,3619,3622,3623,3626,3627,3630,3631,3634,3635,3638],{},[433,3620,3621],{},"Weisen Sie den Assistenten einem bestimmten Kanal zu."," Die Mitgliedschaft im Relay allein macht den Agenten in Kanälen noch nicht sichtbar oder durchsuchbar. Beim Ausführen dieses Schritts mit ",[524,3624,3625],{},"buzz-cli"," muss der Parameter ",[524,3628,3629],{},"--pubkey"," im ",[433,3632,3633],{},"HEX","-Format angegeben werden, nicht als npub (der Befehl ",[524,3636,3637],{},"buzz-admin add-member"," gibt den entsprechenden HEX-Schlüssel aus):",[615,3640,3642],{"className":617,"code":3641,"language":619,"meta":424,"style":424},"buzz channels add-member --channel \u003CCHANNEL_UUID> --pubkey \u003CAGENT_HEX> --role member\n",[524,3643,3644],{"__ignoreMap":424},[623,3645,3646,3649,3652,3654,3657,3660,3663,3666,3669,3671,3673,3676,3679,3681,3684],{"class":625,"line":626},[623,3647,3648],{"class":629},"buzz",[623,3650,3651],{"class":633}," channels",[623,3653,3610],{"class":633},[623,3655,3656],{"class":633}," --channel",[623,3658,3659],{"class":695}," \u003C",[623,3661,3662],{"class":633},"CHANNEL_UUI",[623,3664,3665],{"class":771},"D",[623,3667,3668],{"class":695},">",[623,3670,3613],{"class":633},[623,3672,3659],{"class":695},[623,3674,3675],{"class":633},"AGENT_HE",[623,3677,3678],{"class":771},"X",[623,3680,3668],{"class":695},[623,3682,3683],{"class":633}," --role",[623,3685,3686],{"class":633}," member\n",[1466,3688],{"description":3689,"image":2915,"image-alt":2916,"label":3690,"min-read":3691,"title":3692,"to":3693},"Schritt-für-Schritt-Anleitung zur Installation und Konfiguration von buzz-cli zur Verwaltung von Nostr-Kanälen, Mitgliedsschlüsseln und Berechtigungen für KI-Agenten.","CLI-Anleitung","5","So installieren und verwenden Sie buzz-cli","\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues#install-buzz-cli",[429,3695,3696,3697,972],{},"Aktualisieren Sie das Profil des DSH-Assistenten im Nostr-Relay auf einen aussagekräftigen Anzeigenamen mittels ",[524,3698,3625],{},[429,3700,3701],{},[516,3702],{"alt":3703,"src":3704},"Aktualisierung des Profilnamens des DSH-Assistenten auf dem Nostr-Relay mit buzz-cli","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-assistant-buzz-cli-profile-update.webp",[429,3706,3707,3708,3711],{},"Senden Sie ein ",[433,3709,3710],{},"Wave"," (die Direktnachrichten-Begrüßung in Buzz) an den Assistenten. Die Antwort bestätigt die Betriebsbereitschaft:",[429,3713,3714],{},[516,3715],{"alt":3716,"src":3717},"Verbindungstest durch Senden eines Wave-DMs an den DeepSeek Harness-Assistenten in Buzz","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-buzz-dm-wave-greeting-reply.webp",[429,3719,3720],{},[3338,3721,3722],{},"Senden eines Wave als DM an den DSH-Assistenten — die Bridge antwortet prompt.",[479,3724,3726,3727,3730],{"id":3725},"lokalen-ordnerzugriff-mit-workspace-aktivieren","Lokalen Ordnerzugriff mit ",[524,3728,3729],{},"\u002Fworkspace"," aktivieren",[429,3732,3733,3734,3737,3738,3741,3742,3744],{},"Da die Einstellung ",[524,3735,3736],{},"allowWorkspace"," standardmäßig auf ",[524,3739,3740],{},"false"," gesetzt ist, wird der Befehl ",[524,3743,3729],{}," zunächst abgewiesen:",[429,3746,3747],{},[516,3748],{"alt":3749,"src":3750},"Fehlermeldung bei der Ablehnung des Workspace-Befehls bei deaktiviertem allowWorkspace","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-buzz-workspace-command-rejected-error.webp",[429,3752,3753,3754,3757,3758,3760],{},"Aktivieren Sie die Option in ",[524,3755,3756],{},"~\u002F.dsh\u002Fprofiles\u002Fweb\u002Fcordis.patch.yml"," und starten Sie ",[524,3759,3032],{}," neu:",[615,3762,3764],{"className":2015,"code":3763,"language":2017,"meta":424,"style":424},"- id: ui-message-gateway\n  config:\n    allowWorkspace: true\n",[524,3765,3766,3779,3786],{"__ignoreMap":424},[623,3767,3768,3771,3774,3776],{"class":625,"line":626},[623,3769,3770],{"class":695},"-",[623,3772,3773],{"class":960}," id",[623,3775,972],{"class":695},[623,3777,3778],{"class":633}," ui-message-gateway\n",[623,3780,3781,3784],{"class":625,"line":643},[623,3782,3783],{"class":960},"  config",[623,3785,964],{"class":695},[623,3787,3788,3791,3793],{"class":625,"line":650},[623,3789,3790],{"class":960},"    allowWorkspace",[623,3792,972],{"class":695},[623,3794,3795],{"class":985}," true\n",[429,3797,3798],{},"Nach dem Neustart:",[429,3800,3801],{},[516,3802],{"alt":3803,"src":3804},"Erfolgreiche Bestätigungsmeldung nach Ausführung des Workspace-Registrierungsbefehls in Buzz","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-buzz-workspace-command-success-confirmation.webp",[429,3806,3807,3808,3811],{},"Wichtiger Hinweis: Die Konfiguration geht davon aus, dass der Workspace-Ordner (",[524,3809,3810],{},"TechVoyage"," in den Screenshots) im Standard-Benutzerverzeichnis liegt. Geben Sie andernfalls den vollständigen absoluten Pfad an. Jede neue über Buzz gestartete Sitzung wird auch in der Weboberfläche von DeepSeek Harness aufgeführt.",[429,3813,3814],{},[516,3815],{"alt":3816,"src":3817},"DeepSeek Harness-Weboberfläche mit der aus Buzz synchronisierten aktiven Workspace-Sitzung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-web-ui-synced-workspace-session.webp",[479,3819,3821],{"id":3820},"verfügbare-befehle-in-buzz","Verfügbare Befehle in Buzz",[429,3823,3824],{},"Alle von anderen Plattformen bekannten Befehle stehen auch in Buzz uneingeschränkt bereit:",[3045,3826,3827,3837],{},[3048,3828,3829],{},[3051,3830,3831,3834],{},[3054,3832,3833],{},"Befehl",[3054,3835,3836],{},"Funktion",[3075,3838,3839,3849,3859,3869,3879,3889,3899,3909,3919,3939,3959],{},[3051,3840,3841,3846],{},[3080,3842,3843],{},[524,3844,3845],{},"\u002Fworkspace \u003Cfolder>",[3080,3847,3848],{},"Registriert einen bestehenden Ordner als Workspace des Chats (erfordert Freigabe in der Konfiguration)",[3051,3850,3851,3856],{},[3080,3852,3853],{},[524,3854,3855],{},"\u002Fhelp",[3080,3857,3858],{},"Listet alle verfügbaren Befehle auf",[3051,3860,3861,3866],{},[3080,3862,3863],{},[524,3864,3865],{},"\u002Ftime",[3080,3867,3868],{},"Zeigt die aktuelle Serverzeit an",[3051,3870,3871,3876],{},[3080,3872,3873],{},[524,3874,3875],{},"\u002Fnew",[3080,3877,3878],{},"Startet eine frische, saubere Sitzung",[3051,3880,3881,3886],{},[3080,3882,3883],{},[524,3884,3885],{},"\u002Fclear",[3080,3887,3888],{},"Löscht den bisherigen Gesprächsverlauf",[3051,3890,3891,3896],{},[3080,3892,3893],{},[524,3894,3895],{},"\u002Fstatus",[3080,3897,3898],{},"Gibt den aktuellen Betriebszustand der Bridge aus",[3051,3900,3901,3906],{},[3080,3902,3903],{},[524,3904,3905],{},"\u002Fstats",[3080,3907,3908],{},"Liefert Chat-Zähler und detaillierte Statuszeilen aller Bridges (inklusive Buzz)",[3051,3910,3911,3916],{},[3080,3912,3913],{},[524,3914,3915],{},"\u002Fcommands",[3080,3917,3918],{},"Detaillierte Übersicht aller Befehlsbeschreibungen",[3051,3920,3921,3926],{},[3080,3922,3923],{},[524,3924,3925],{},"@path\u002Fto\u002Ffile",[3080,3927,3928,3929,2351,3931,3934,3935,3938],{},"Verhält sich wie @-Dateierwähnungen im Web: Das Modell liest die Datei relativ zum Chat-Workspace; ",[524,3930,3270],{},[524,3932,3933],{},"@präfix"," oder ",[524,3936,3937],{},"\u002Ffiles \u003Cpräfix>"," antwortet mit passenden Dateien\u002FOrdnern",[3051,3940,3941,3946],{},[3080,3942,3943],{},[524,3944,3945],{},"\u002Fmodel",[3080,3947,3948,3951,3952,3954,3955,3958],{},[524,3949,3950],{},"[provider model effort]"," — validiert gegen den aktiven Modellkatalog; ",[524,3953,3945],{}," listet Optionen, ",[524,3956,3957],{},"\u002Fmodel reset"," setzt auf Standard zurück",[3051,3960,3961,3966],{},[3080,3962,3963],{},[524,3964,3965],{},"\u002Feffort",[3080,3967,3968,3971,3972,3975],{},[524,3969,3970],{},"\u003Cid>"," passt gezielt die Reasoning-Anstrengung an; ",[524,3973,3974],{},"\u002Feffort reset"," setzt den Standardwert wieder ein",[479,3977,3979],{"id":3978},"sicherheitsaspekte-im-überblick","Sicherheitsaspekte im Überblick",[484,3981,3982,3995,4005],{},[468,3983,3984,3985,3987,3988,3990,3991,3994],{},"Der private Schlüssel ",[433,3986,3572],{}," liegt geschützt in ",[524,3989,2945],{}," (Rechte 0600, atomare Schreibvorgänge) — er wird niemals über ",[524,3992,3993],{},"\u002Fgateway\u002Flist"," exponiert oder in Protokollen ausgegeben.",[468,3996,3997,3998,2954,4001,4004],{},"Jedes eingehende Event wird ",[433,3999,4000],{},"kryptografisch signaturgeprüft",[524,4002,4003],{},"verifyEvent","), dedupliziert, auf Selbstaussendung gefiltert und durch Erwähnungsprüfungen geleitet, bevor es den Agenten erreicht.",[468,4006,4007,2954,4010,4013],{},[433,4008,4009],{},"Die Workspace-Registrierung ist strikt konfigurationsgesteuert",[524,4011,4012],{},"allowWorkspace: false"," als Standard), um unbefugten Zugriff auf lokale Systemverzeichnisse abzusichern.",[457,4015,4017],{"id":4016},"fazit-dezentrale-ki-zusammenarbeit-in-buzz","Fazit: Dezentrale KI-Zusammenarbeit in Buzz",[429,4019,4020,4021,4023],{},"Die größte Herausforderung bei der Integration von Buzz in ",[524,4022,2900],{}," lag in der konsequenten Erfüllung des Nostr-Protokollvertrags. Da die Plugin-Basis bereits eine ausgereifte Sitzungsverwaltung und Befehlsweiterleitung bot, fügte sich die Bridge nahtlos ein, sobald Event-Verarbeitung und In-Place-Streaming etabliert waren.",[457,4025,4026],{"id":2808},"Referenzen:",[484,4028,4029,4037,4045],{},[468,4030,4031,4036],{},[449,4032,4035],{"href":4033,"rel":4034},"https:\u002F\u002Fgithub.com\u002Fa792883583\u002Fdsh-message-gateway\u002Fblob\u002Fmain\u002Fdocs\u002Farchitecture.md",[509],"dsh-message-gateway architecture guide"," — Architekturleitfaden, Erweiterungsanleitung und Sicherheitshinweise",[468,4038,4039,4044],{},[449,4040,4043],{"href":4041,"rel":4042},"https:\u002F\u002Fgithub.com\u002Fnbd-wtf\u002Fnostr-tools",[509],"nostr-tools"," — Unter der Haube verwendete Nostr-Bibliothek",[468,4046,4047,4052],{},[449,4048,4051],{"href":4049,"rel":4050},"https:\u002F\u002Fgithub.com\u002Fbytedance\u002Fdeer-flow\u002Fblob\u002Fmain\u002Fbackend\u002Fdocs\u002FIM_CHANNEL_CONNECTIONS.md",[509],"deer-flow IM channel connections"," — Referenzarchitektur für Instant-Messaging-Kanäle",[1336,4054,4055],{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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}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 .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":643,"depth":650,"links":4057},[4058,4059,4063,4070,4071],{"id":2923,"depth":643,"text":2924},{"id":3036,"depth":643,"text":3037,"children":4060},[4061,4062],{"id":3321,"depth":650,"text":3322},{"id":3349,"depth":650,"text":3350},{"id":3455,"depth":643,"text":3456,"children":4064},[4065,4066,4068,4069],{"id":3578,"depth":650,"text":3579},{"id":3725,"depth":650,"text":4067},"Lokalen Ordnerzugriff mit \u002Fworkspace aktivieren",{"id":3820,"depth":650,"text":3821},{"id":3978,"depth":650,"text":3979},{"id":4016,"depth":643,"text":4017},{"id":2808,"depth":643,"text":4026},[1358,4073,3648,4074],"collaboration","deepseek-harness","2026-09-30","Integrieren Sie DeepSeek Harness über eine Nostr-Bridge in Block Buzz: NIP-42-Auth, In-Place-Streaming-Edits und kanalbezogene Agenten-Workspaces konfigurieren.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002FDE-Bringing-Buzz-to-DeepSeek-Harness.webp","Eine Premium-Technologiekarte im Format 16:9 mit tiefblauen und bernsteinfarbenen Akzenten, die zeigt, wie DeepSeek Harness über eine Nostr-Bridge mit Block Buzz verbunden wird, mit einem sauberen glassmorphic Panel und zentrierter Typografie.",{"schemaOrg":4080,"robots":1399,"sitemap":4103},[4081,4083],{"@type":4082,"headline":2882,"description":4076,"image":4077},"TechArticle",{"@type":1368,"name":2882,"description":4076,"image":4077,"step":4084},[4085,4088,4091,4094,4097,4100],{"@type":1371,"name":4086,"text":4087},"Phase 1: Gateway-Plugin installieren","Installieren Sie das dsh-message-gateway-Plugin und starten Sie dsh web.",{"@type":1371,"name":4089,"text":4090},"Phase 2: Message platforms aufrufen","Öffnen Sie die DSH-Weboberfläche und navigieren Sie zu den Message platforms-Einstellungen.",{"@type":1371,"name":4092,"text":4093},"Phase 3: Buzz-Bridge konfigurieren","Erstellen Sie ein Nostr-Schlüsselpaar, geben Sie Relay-URL und Kanäle ein.",{"@type":1371,"name":4095,"text":4096},"Phase 4: Agenten am Relay registrieren","Fügen Sie den DSH-Assistenten dem Buzz-Nostr-Relay mittels buzz-admin hinzu.",{"@type":1371,"name":4098,"text":4099},"Phase 5: Agenten dem Kanal zuweisen","Fügen Sie den HEX-Schlüssel des Agenten den Kanälen mit buzz-cli hinzu.",{"@type":1371,"name":4101,"text":4102},"Phase 6: Workspace-Zugriff aktivieren","Konfigurieren Sie allowWorkspace in cordis.patch.yml für lokale Ordnerbefehle.",{"lastmod":4075},{"title":4105,"description":4076,"ogTitle":2882,"ogDescription":4076,"twitterTitle":2882,"twitterDescription":4076},"DeepSeek Harness Buzz-Plugin: Eine Nostr-Bridge bauen","de\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",[3042,3524,4108,4109,2900],"Nostr","KI-Agenten","W1AnbP8Pn_ksP_Ix4QOaKpOvfVjrKH3GkFsTa1Ui9KA",[4112,4659,5295],{"id":4113,"title":1271,"author":424,"body":4114,"category":4643,"date":4645,"description":4646,"extension":1362,"image":4647,"imageAlt":4648,"isPublished":646,"meta":4649,"minRead":657,"navigation":646,"path":399,"seo":4653,"stem":4654,"tags":4655,"updatedAt":2878,"__hash__":4658},"article\u002Fde\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac.md",{"type":426,"value":4115,"toc":4636},[4116,4120,4123,4130,4134,4140,4143,4146,4150,4153,4160,4176,4482,4596,4598,4601,4603,4633],[457,4117,4119],{"id":4118},"was-ist-cloudflare-warp","Was ist Cloudflare WARP?",[429,4121,4122],{},"Cloudflare WARP ist eine clientseitige Anwendung, die den Datenverkehr eines bestimmten Geräts über das globale Netzwerk von Cloudflare leitet, anstatt ihn direkt ins öffentliche Internet zu übertragen.",[429,4124,4125,4126,4129],{},"Sie erstellt einen verschlüsselten Tunnel basierend auf dem ",[433,4127,4128],{},"WireGuard","-Protokoll, der den Datenverkehr vom Gerät zum nächstgelegenen Cloudflare-Rechenzentrum sichert. Anschließend können im Cloudflare-Dashboard Richtlinien erstellt werden, um diesen eingehenden Datenverkehr zu filtern, zu protokollieren, zu überprüfen oder weiterzuleiten.",[457,4131,4133],{"id":4132},"warum-benötigen-wir-cloudflare-warp","Warum benötigen wir Cloudflare WARP?",[429,4135,4136,4137,1654],{},"Um interne Ressourcen – wie private Webdienste oder SaaS-Anwendungen – sicher für Mitarbeiter, externe Auftragnehmer und andere Stakeholder freizugeben, dient der Cloudflare WARP-Client als clientseitiger Durchsetzungspunkt für ",[433,4138,4139],{},"Zero Trust Network Access (ZTNA)",[429,4141,4142],{},"Der Cloudflare WARP-Client wird auf dem Laptop oder Smartphone des Benutzers installiert. Er erfordert eine Authentifizierung und die Erfüllung bestimmter Sicherheitsprüfungen (z. B. Zugriff aus einem genehmigten IP-Bereich, Verwendung einer registrierten E-Mail-Domain oder Ausführung einer aktiven Firewall), bevor der Zugriff gewährt wird.",[429,4144,4145],{},"Durch das Tunneln des Datenverkehrs direkt zu Cloudflare werden die Identität, das Gerät und die Richtlinien des Benutzers überprüft, noch bevor Anfragen die internen Ressourcen erreichen. Dadurch sind interne Dienste niemals dem öffentlichen Internet ausgesetzt und jede Verbindung wird lückenlos protokolliert und auditiert.",[457,4147,4149],{"id":4148},"unterstützung-mehrerer-warp-profile-auf-einem-gerät","Unterstützung mehrerer WARP-Profile auf einem Gerät",[429,4151,4152],{},"Wenn Benutzer zwischen privaten und geschäftlichen Cloudflare-Konten wechseln müssen oder Systemadministratoren mehrere Tenants verwalten, wird die Unterstützung mehrerer WARP-Profile auf einem einzigen Gerät unverzichtbar.",[429,4154,4155,4156,4159],{},"Unter macOS lässt sich dies über eine ",[524,4157,4158],{},".mobileconfig","-MDM-Profildatei lösen, um die verschiedenen WARP-Umgebungen zu definieren und zu registrieren.",[484,4161,4162,4173],{},[468,4163,4164,4172],{},[449,4165,4168,4169,4171],{"href":4166,"rel":4167},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fcloudflare-one\u002Fstatic\u002Fmdm\u002Fmultiple-orgs\u002FCloudflareWARP.mobileconfig",[509],"Download a sample ",[524,4170,4158],{}," file"," direkt von Cloudflare herunter.",[468,4174,4175],{},"Unten finden Sie ein Beispiel für diese Konfiguration:",[615,4177,4181],{"className":4178,"code":4179,"language":4180,"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",[524,4182,4183,4188,4193,4198,4203,4208,4213,4218,4223,4228,4233,4238,4243,4248,4253,4258,4263,4268,4273,4278,4283,4288,4294,4300,4306,4312,4318,4324,4329,4334,4340,4345,4351,4356,4362,4368,4374,4380,4386,4392,4398,4404,4410,4416,4422,4428,4434,4440,4446,4452,4458,4464,4470,4476],{"__ignoreMap":424},[623,4184,4185],{"class":625,"line":626},[623,4186,4187],{},"\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",[623,4189,4190],{"class":625,"line":643},[623,4191,4192],{},"\u003C!DOCTYPE plist PUBLIC \"-\u002F\u002FApple\u002F\u002FDTD PLIST 1.0\u002F\u002FEN\" \"http:\u002F\u002Fwww.apple.com\u002FDTDs\u002FPropertyList-1.0.dtd\">\n",[623,4194,4195],{"class":625,"line":650},[623,4196,4197],{},"\u003Cplist version=\"1.0\">\n",[623,4199,4200],{"class":625,"line":657},[623,4201,4202],{},"\u003Cdict>\n",[623,4204,4205],{"class":625,"line":669},[623,4206,4207],{},"  \u003Ckey>PayloadContent\u003C\u002Fkey>\n",[623,4209,4210],{"class":625,"line":674},[623,4211,4212],{},"  \u003Carray>\n",[623,4214,4215],{"class":625,"line":680},[623,4216,4217],{},"    \u003Cdict>\n",[623,4219,4220],{"class":625,"line":1023},[623,4221,4222],{},"      \u003Ckey>PayloadDisplayName\u003C\u002Fkey>\n",[623,4224,4225],{"class":625,"line":1034},[623,4226,4227],{},"      \u003Cstring>Warp Configuration\u003C\u002Fstring>\n",[623,4229,4230],{"class":625,"line":1130},[623,4231,4232],{},"      \u003Ckey>PayloadIdentifier\u003C\u002Fkey>\n",[623,4234,4235],{"class":625,"line":1136},[623,4236,4237],{},"      \u003Cstring>com.cloudflare.warp.CB8B22D4-50E1-48E8-8874-A7594627013A\u003C\u002Fstring>\n",[623,4239,4240],{"class":625,"line":1142},[623,4241,4242],{},"      \u003Ckey>PayloadOrganization\u003C\u002Fkey>\n",[623,4244,4245],{"class":625,"line":1147},[623,4246,4247],{},"      \u003Cstring>Cloudflare Ltd.\u003C\u002Fstring>\n",[623,4249,4250],{"class":625,"line":1153},[623,4251,4252],{},"      \u003Ckey>PayloadType\u003C\u002Fkey>\n",[623,4254,4255],{"class":625,"line":2127},[623,4256,4257],{},"      \u003Cstring>com.cloudflare.warp\u003C\u002Fstring>\n",[623,4259,4260],{"class":625,"line":2138},[623,4261,4262],{},"      \u003Ckey>PayloadUUID\u003C\u002Fkey>\n",[623,4264,4265],{"class":625,"line":2143},[623,4266,4267],{},"      \u003Cstring>CB8B22D4-50E1-48E8-8874-A7594627013A\u003C\u002Fstring>\n",[623,4269,4270],{"class":625,"line":2151},[623,4271,4272],{},"      \u003Ckey>PayloadVersion\u003C\u002Fkey>\n",[623,4274,4275],{"class":625,"line":2685},[623,4276,4277],{},"      \u003Cinteger>1\u003C\u002Finteger>\n",[623,4279,4280],{"class":625,"line":2691},[623,4281,4282],{},"      \u003Ckey>configs\u003C\u002Fkey>\n",[623,4284,4285],{"class":625,"line":2700},[623,4286,4287],{},"      \u003Carray>\n",[623,4289,4291],{"class":625,"line":4290},22,[623,4292,4293],{},"        \u003Cdict>\n",[623,4295,4297],{"class":625,"line":4296},23,[623,4298,4299],{},"          \u003Ckey>organization\u003C\u002Fkey>\n",[623,4301,4303],{"class":625,"line":4302},24,[623,4304,4305],{},"          \u003Cstring>your-team-name-1\u003C\u002Fstring>\n",[623,4307,4309],{"class":625,"line":4308},25,[623,4310,4311],{},"          \u003Ckey>display_name\u003C\u002Fkey>\n",[623,4313,4315],{"class":625,"line":4314},26,[623,4316,4317],{},"          \u003Cstring>Team 1\u003C\u002Fstring>\n",[623,4319,4321],{"class":625,"line":4320},27,[623,4322,4323],{},"        \u003C\u002Fdict>\n",[623,4325,4327],{"class":625,"line":4326},28,[623,4328,4293],{},[623,4330,4332],{"class":625,"line":4331},29,[623,4333,4299],{},[623,4335,4337],{"class":625,"line":4336},30,[623,4338,4339],{},"          \u003Cstring>your-team-name-2\u003C\u002Fstring>\n",[623,4341,4343],{"class":625,"line":4342},31,[623,4344,4311],{},[623,4346,4348],{"class":625,"line":4347},32,[623,4349,4350],{},"          \u003Cstring>Team 2\u003C\u002Fstring>\n",[623,4352,4354],{"class":625,"line":4353},33,[623,4355,4323],{},[623,4357,4359],{"class":625,"line":4358},34,[623,4360,4361],{},"      \u003C\u002Farray>\n",[623,4363,4365],{"class":625,"line":4364},35,[623,4366,4367],{},"    \u003C\u002Fdict>\n",[623,4369,4371],{"class":625,"line":4370},36,[623,4372,4373],{},"  \u003C\u002Farray>\n",[623,4375,4377],{"class":625,"line":4376},37,[623,4378,4379],{},"  \u003Ckey>PayloadDisplayName\u003C\u002Fkey>\n",[623,4381,4383],{"class":625,"line":4382},38,[623,4384,4385],{},"  \u003Cstring>Cloudflare WARP\u003C\u002Fstring>\n",[623,4387,4389],{"class":625,"line":4388},39,[623,4390,4391],{},"  \u003Ckey>PayloadIdentifier\u003C\u002Fkey>\n",[623,4393,4395],{"class":625,"line":4394},40,[623,4396,4397],{},"  \u003Cstring>cloudflare_warp\u003C\u002Fstring>\n",[623,4399,4401],{"class":625,"line":4400},41,[623,4402,4403],{},"  \u003Ckey>PayloadOrganization\u003C\u002Fkey>\n",[623,4405,4407],{"class":625,"line":4406},42,[623,4408,4409],{},"  \u003Cstring>Cloudflare, Ltd.\u003C\u002Fstring>\n",[623,4411,4413],{"class":625,"line":4412},43,[623,4414,4415],{},"  \u003Ckey>PayloadRemovalDisallowed\u003C\u002Fkey>\n",[623,4417,4419],{"class":625,"line":4418},44,[623,4420,4421],{},"  \u003Cfalse\u002F>\n",[623,4423,4425],{"class":625,"line":4424},45,[623,4426,4427],{},"  \u003Ckey>PayloadScope\u003C\u002Fkey>\n",[623,4429,4431],{"class":625,"line":4430},46,[623,4432,4433],{},"  \u003Cstring>System\u003C\u002Fstring>\n",[623,4435,4437],{"class":625,"line":4436},47,[623,4438,4439],{},"  \u003Ckey>PayloadType\u003C\u002Fkey>\n",[623,4441,4443],{"class":625,"line":4442},48,[623,4444,4445],{},"  \u003Cstring>Configuration\u003C\u002Fstring>\n",[623,4447,4449],{"class":625,"line":4448},49,[623,4450,4451],{},"  \u003Ckey>PayloadUUID\u003C\u002Fkey>\n",[623,4453,4455],{"class":625,"line":4454},50,[623,4456,4457],{},"  \u003Cstring>2B7763B8-64F6-41EB-AA5E-7761651B8131\u003C\u002Fstring>\n",[623,4459,4461],{"class":625,"line":4460},51,[623,4462,4463],{},"  \u003Ckey>PayloadVersion\u003C\u002Fkey>\n",[623,4465,4467],{"class":625,"line":4466},52,[623,4468,4469],{},"  \u003Cinteger>1\u003C\u002Finteger>\n",[623,4471,4473],{"class":625,"line":4472},53,[623,4474,4475],{},"\u003C\u002Fdict>\n",[623,4477,4479],{"class":625,"line":4478},54,[623,4480,4481],{},"\u003C\u002Fplist>\n",[484,4483,4484,4494,4507,4517,4522,4539,4552,4571,4587],{},[468,4485,4486,4487,565,4490,4493],{},"Ersetzen Sie ",[524,4488,4489],{},"your-team-name-1",[524,4491,4492],{},"your-team-name-2"," durch Ihre jeweiligen Cloudflare Zero Trust-Teamnamen.",[468,4495,2172,4496,4499,4500,4503,4504,4506],{},[524,4497,4498],{},"uuidgen"," im Terminal aus, um eindeutige UUIDs zu generieren, und ersetzen Sie damit die Platzhalter-Werte für ",[524,4501,4502],{},"PayloadUUID"," in der ",[524,4505,4158],{},"-Datei.",[468,4508,4509,4510,4513,4514,4516],{},"Stellen Sie sicher, dass der String ",[524,4511,4512],{},"PayloadIdentifier"," ebenfalls die aktualisierte ",[524,4515,4502],{}," enthält, um das Profil eindeutig zu kennzeichnen.",[468,4518,4519,4520,4506],{},"Speichern Sie Ihre bearbeitete ",[524,4521,4158],{},[468,4523,4524,4525,4528,4529,4532,4533,4535],{},"Öffnen Sie die ",[433,4526,4527],{},"Systemeinstellungen"," auf Ihrem Mac, suchen Sie nach ",[433,4530,4531],{},"Profile"," und wählen Sie diese Option aus.",[611,4534],{},[516,4536],{"alt":4537,"src":4538},"macOS-Systemeinstellungen Profiles-Bereich","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fmacos-system-settings-profiles.webp",[468,4540,4541,4542,4545,4546,4548],{},"Klicken Sie auf ",[433,4543,4544],{},"Installieren, Anzeigen oder Entfernen...",", um das neue Konfigurationsprofil hinzuzufügen.",[611,4547],{},[516,4549],{"alt":4550,"src":4551},"Schaltfläche zum Installieren, Anzeigen oder Entfernen von macOS-Profilen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fmacos-profiles-view-remove.webp",[468,4553,4554,4555,4557,4558,4560,4561,4563,4567],{},"Klicken Sie auf das ",[433,4556,3157],{}," (Plus)-Symbol in der linken unteren Ecke und wählen Sie Ihre gespeicherte ",[524,4559,4158],{},"-Datei aus.",[611,4562],{},[516,4564],{"alt":4565,"src":4566},"macOS Profile Plus-Symbol zum Hinzufügen eines neuen Profils","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fmacos-profiles-add-profile.webp",[516,4568],{"alt":4569,"src":4570},"Auswahl der .mobileconfig-Datei auf macOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fmacos-select-mobileconfig-file.webp",[468,4572,4573,4574,4576,4577,4580,4581,4583],{},"Wählen Sie ",[433,4575,439],{}," und klicken Sie auf ",[433,4578,4579],{},"Installieren",", um die Konfiguration anzuwenden.",[611,4582],{},[516,4584],{"alt":4585,"src":4586},"Bestätigung der Cloudflare WARP-Profilinstallation auf macOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fmacos-install-cloudflare-warp-profile.webp",[468,4588,4589,4590,4592],{},"Starten Sie Ihren Cloudflare WARP-Client neu. In der Benutzeroberfläche sollte nun der Menüpunkt zum Wechseln der Profile erscheinen:",[611,4591],{},[516,4593],{"alt":4594,"src":4595},"Cloudflare WARP-Client mit Multi-Profil-Umschalter auf macOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fcloudflare-warp-multi-profile-switcher.webp",[457,4597,1324],{"id":1323},[429,4599,4600],{},"Der Cloudflare WARP-Client dient als kritischer Sicherheitspunkt auf Endgeräten und macht den Zero Trust Network Access sowohl robust als auch praxistauglich. Die Abschottung interner Ressourcen vom öffentlichen Internet stellt sicher, dass jeder Verbindungsversuch sicher authentifiziert, bewertet und auditiert wird.",[457,4602,2809],{"id":2808},[484,4604,4605,4612,4619,4626],{},[468,4606,4607],{},[449,4608,4611],{"href":4609,"rel":4610},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fcloudflare-one\u002Fteam-and-resources\u002Fdevices\u002Fcloudflare-one-client\u002Fdeployment\u002Fmdm-deployment\u002F#prepare-file-for-mdm-deployment",[509],"Managed Deployment Preparation",[468,4613,4614],{},[449,4615,4618],{"href":4616,"rel":4617},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fcloudflare-one\u002Fteam-and-resources\u002Fdevices\u002Fcloudflare-one-client\u002Fdeployment\u002Fmdm-deployment\u002Fswitch-organizations\u002F",[509],"Switch Between Zero Trust Organizations",[468,4620,4621],{},[449,4622,4625],{"href":4623,"rel":4624},"https:\u002F\u002Fblog.cloudflare.com\u002Fintroducing-warp-connector-paving-the-path-to-any-to-any-connectivity-2\u002F",[509],"Introducing WARP Connector: Paving the Path to Any-to-Any Connectivity",[468,4627,4628],{},[449,4629,4632],{"href":4630,"rel":4631},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fcloudflare-one\u002Fteam-and-resources\u002Fdevices\u002Fcloudflare-one-client\u002F",[509],"Cloudflare One Client Documentation",[1336,4634,4635],{},"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":643,"depth":650,"links":4637},[4638,4639,4640,4641,4642],{"id":4118,"depth":643,"text":4119},{"id":4132,"depth":643,"text":4133},{"id":4148,"depth":643,"text":4149},{"id":1323,"depth":643,"text":1324},{"id":2808,"depth":643,"text":2809},[1359,4644],"cloudflare","2026-07-04","Konfigurieren und wechseln Sie mehrere Cloudflare WARP-Organisationen auf macOS mit einer .mobileconfig-Datei. Ein vollständiger MDM-Leitfaden für IT-Admins.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002FDE-Switch-Between-Multiple-Cloudflare-WARP-Orgs-on-Mac.webp","Mehrere Cloudflare WARP-Profile auf macOS konfigurieren",{"schemaOrg":4650,"robots":1399,"sitemap":4652},[4651],{"@type":1368,"headline":1271,"description":4646},{"lastmod":4645},{"title":4648,"description":4646,"ogTitle":1271,"ogDescription":4646,"twitterTitle":1271,"twitterDescription":4646},"de\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",[4656,439,4657,1406],"macOS","MDM","wxM5RlX3tnfbT5kxU5Oby90OSjJTROrw5l1JGYoNVWs",{"id":4660,"title":451,"author":424,"body":4661,"category":5267,"date":5268,"description":5269,"extension":1362,"image":5270,"imageAlt":5271,"isPublished":646,"meta":5272,"minRead":674,"navigation":646,"path":375,"seo":5286,"stem":5288,"tags":5289,"updatedAt":2878,"__hash__":5294},"article\u002Fde\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server.md",{"type":426,"value":4662,"toc":5256},[4663,4667,4670,4673,4677,4681,4684,4697,4703,4706,4735,4742,4769,4776,4781,4795,4807,4815,4820,4836,4840,4843,4864,4870,4873,4884,4894,4905,4936,4940,4950,4959,4969,4982,4989,4999,5005,5034,5050,5054,5061,5073,5078,5112,5116,5119,5133,5139,5202,5204,5248,5250,5253],[457,4664,4666],{"id":4665},"warum-den-hermes-agent-auf-einem-remote-vps-hosten","Warum den Hermes Agent auf einem Remote-VPS hosten?",[429,4668,4669],{},"Da der Hermes Agent in der Lage ist, Hintergrundaufgaben auszuführen, Tasks zu planen und auf Webhook-Aufrufe zu reagieren, benötigen wir eine Maschine, die rund um die Uhr (24\u002F7) betriebsbereit ist. Lokale Rechner können Stromausfälle erleiden, die Internetverbindung verlieren oder an ihre Hardwaregrenzen stoßen. Ein Remote-Server garantiert eine Betriebszeit (Uptime) von 99 % und ermöglicht eine einfache Skalierung der Rechenressourcen bei Bedarf.",[429,4671,4672],{},"Es gibt mehrere erschwingliche Anbieter von virtuellen privaten Servern (VPS) auf dem Markt, wie z. B. Hetzner, Hostinger und Contabo. Wir nutzen Contabo bereits seit geraumer Zeit und sind bisher sehr zufrieden.",[457,4674,4676],{"id":4675},"so-richten-sie-den-hermes-agent-auf-einem-linux-vps-ein","So richten Sie den Hermes Agent auf einem Linux-VPS ein",[479,4678,4680],{"id":4679},"schritt-1-verbindung-mit-ihrem-vps-herstellen","Schritt 1: Verbindung mit Ihrem VPS herstellen",[429,4682,4683],{},"Öffnen Sie das Terminal und verbinden Sie sich per SSH mit Ihrem Remote-Server:",[615,4685,4687],{"className":617,"code":4686,"language":619,"meta":424,"style":424},"ssh root@your_server_ip\n",[524,4688,4689],{"__ignoreMap":424},[623,4690,4691,4694],{"class":625,"line":626},[623,4692,4693],{"class":629},"ssh",[623,4695,4696],{"class":633}," root@your_server_ip\n",[429,4698,4699],{},[516,4700],{"alt":4701,"src":4702},"SSH-Verbindung zum Linux-VPS-Server im Terminal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fvps-terminal-ssh-connection.webp",[429,4704,4705],{},"Stellen Sie sicher, dass Ihre Server-Pakete auf dem neuesten Stand sind:",[615,4707,4709],{"className":617,"code":4708,"language":619,"meta":424,"style":424},"sudo apt update && sudo apt upgrade -y\n",[524,4710,4711],{"__ignoreMap":424},[623,4712,4713,4715,4718,4721,4724,4727,4729,4732],{"class":625,"line":626},[623,4714,630],{"class":629},[623,4716,4717],{"class":633}," apt",[623,4719,4720],{"class":633}," update",[623,4722,4723],{"class":695}," &&",[623,4725,4726],{"class":629}," sudo",[623,4728,4717],{"class":633},[623,4730,4731],{"class":633}," upgrade",[623,4733,4734],{"class":633}," -y\n",[429,4736,4737,4738,4741],{},"Fügen Sie einen neuen Benutzer hinzu, z. B. ",[524,4739,4740],{},"hermes"," oder Ihren bevorzugten Benutzernamen:",[615,4743,4745],{"className":617,"code":4744,"language":619,"meta":424,"style":424},"sudo adduser hermes \nsudo passwd hermes\n",[524,4746,4747,4759],{"__ignoreMap":424},[623,4748,4749,4751,4754,4757],{"class":625,"line":626},[623,4750,630],{"class":629},[623,4752,4753],{"class":633}," adduser",[623,4755,4756],{"class":633}," hermes",[623,4758,772],{"class":771},[623,4760,4761,4763,4766],{"class":625,"line":643},[623,4762,630],{"class":629},[623,4764,4765],{"class":633}," passwd",[623,4767,4768],{"class":633}," hermes\n",[429,4770,4771,4772,4775],{},"Deaktivieren Sie den Passwort-Login für den ",[524,4773,4774],{},"root","-Benutzer:",[465,4777,4778],{},[468,4779,4780],{},"Öffnen Sie die SSH-Konfigurationsdatei:",[615,4782,4784],{"className":617,"code":4783,"language":619,"meta":424,"style":424},"sudo nano \u002Fetc\u002Fssh\u002Fsshd_config\n",[524,4785,4786],{"__ignoreMap":424},[623,4787,4788,4790,4792],{"class":625,"line":626},[623,4789,630],{"class":629},[623,4791,1064],{"class":633},[623,4793,4794],{"class":633}," \u002Fetc\u002Fssh\u002Fsshd_config\n",[465,4796,4797],{"start":643},[468,4798,4799,4800,4803,4804,972],{},"Suchen Sie nach der Zeile ",[524,4801,4802],{},"PermitRootLogin"," und ändern Sie den Wert auf ",[524,4805,4806],{},"no",[615,4808,4813],{"className":4809,"code":4811,"language":4812,"meta":424},[4810],"language-text","PermitRootLogin no\n","text",[524,4814,4811],{"__ignoreMap":424},[465,4816,4817],{"start":650},[468,4818,4819],{},"Speichern Sie die Datei und starten Sie den SSH-Dienst neu:",[615,4821,4823],{"className":617,"code":4822,"language":619,"meta":424,"style":424},"sudo systemctl restart ssh\n",[524,4824,4825],{"__ignoreMap":424},[623,4826,4827,4829,4831,4833],{"class":625,"line":626},[623,4828,630],{"class":629},[623,4830,634],{"class":633},[623,4832,637],{"class":633},[623,4834,4835],{"class":633}," ssh\n",[479,4837,4839],{"id":4838},"schritt-2-hermes-agent-installieren","Schritt 2: Hermes Agent installieren",[429,4841,4842],{},"Führen Sie den folgenden Befehl aus:",[615,4844,4846],{"className":617,"code":4845,"language":619,"meta":424,"style":424},"curl -fsSL https:\u002F\u002Fhermes-agent.nousresearch.com\u002Finstall.sh | bash\n",[524,4847,4848],{"__ignoreMap":424},[623,4849,4850,4852,4855,4858,4861],{"class":625,"line":626},[623,4851,1759],{"class":629},[623,4853,4854],{"class":633}," -fsSL",[623,4856,4857],{"class":633}," https:\u002F\u002Fhermes-agent.nousresearch.com\u002Finstall.sh",[623,4859,4860],{"class":695}," |",[623,4862,4863],{"class":629}," bash\n",[429,4865,4866],{},[516,4867],{"alt":4868,"src":4869},"Ausführen des Hermes-Agent-Installationsskripts im Terminal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-agent-installation-terminal.webp",[429,4871,4872],{},"Überprüfen Sie nach der Installation die Version mit dem Befehl:",[615,4874,4876],{"className":617,"code":4875,"language":619,"meta":424,"style":424},"hermes --version\n",[524,4877,4878],{"__ignoreMap":424},[623,4879,4880,4882],{"class":625,"line":626},[623,4881,4740],{"class":629},[623,4883,2394],{"class":633},[429,4885,561,4886,4889,4890],{},[524,4887,4888],{},"hermes setup"," aus, um den Hermes Agent zu konfigurieren:\n",[516,4891],{"alt":4892,"src":4893},"Ausführen des hermes setup Befehls im Terminal zum Starten der Konfiguration","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-agent-setup-wizard.webp",[429,4895,4896,4897,4900,4901],{},"Wählen Sie einen LLM-Anbieter aus. Beginnen Sie mit ",[524,4898,4899],{},"DeepSeek"," und fügen Sie später weitere hinzu.\n",[516,4902],{"alt":4903,"src":4904},"Auswahl von DeepSeek als LLM-Anbieter im Hermes-Setup","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-llm-provider-selection.webp",[429,4906,4907,4908,4910,4911,4915,4919,4920,4923,4924,4919,4928,4931,4932],{},"Geben Sie Ihren ",[524,4909,4899],{},"-API-Schlüssel ein:\n",[516,4912],{"alt":4913,"src":4914},"Eingabe des DeepSeek-API-Schlüssels im Terminal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-enter-api-key.webp",[516,4916],{"alt":4917,"src":4918},"Erfolgreiche Bestätigung des LLM-Anbieter-API-Schlüssels","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-api-key-success.webp","\nWählen Sie ",[524,4921,4922],{},"local machine"," aus, um den Hermes Agent auszuführen:\n",[516,4925],{"alt":4926,"src":4927},"Auswahl von local machine für die Ausführungsumgebung des Hermes Agents","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-select-local-machine.webp",[524,4929,4930],{},"Telegram"," in den Kanälen aus. Weitere Kanäle können später eingerichtet werden.\n",[516,4933],{"alt":4934,"src":4935},"Auswahl von Telegram als Kommunikationskanal im Hermes-Setup","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-select-telegram-channel.webp",[479,4937,4939],{"id":4938},"schritt-3-integration-mit-telegram","Schritt 3: Integration mit Telegram",[429,4941,4573,4942,4945,4946],{},[524,4943,4944],{},"[2]",", um den Telegram-Bot zu nutzen.\n",[516,4947],{"alt":4948,"src":4949},"Auswahl der Option zur Konfiguration der Telegram-Bot-Integration","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-bot-integration-option.webp",[429,4951,914,4952,4954,4955],{},[524,4953,4930],{}," und suchen Sie nach 'BotFather'.\n",[516,4956],{"alt":4957,"src":4958},"Suche nach BotFather in der Telegram-Anwendung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-search-botfather.webp",[429,4960,4541,4961,4964,4965],{},[524,4962,4963],{},"Open",", um 'BotFather' zu öffnen.\n",[516,4966],{"alt":4967,"src":4968},"Öffnen des Chat-Fensters mit BotFather auf Telegram","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-open-botfather-chat.webp",[429,4970,4541,4971,4974,4975,527,4978],{},[524,4972,4973],{},"Create a New Bot"," (oder senden Sie ",[524,4976,4977],{},"\u002Fnewbot",[516,4979],{"alt":4980,"src":4981},"Senden des Befehls newbot an BotFather zum Erstellen eines neuen Telegram-Bots","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fbotfather-create-new-bot.webp",[429,4983,4984,4985],{},"Geben Sie die Namen ein und erstellen Sie den Bot.\n",[516,4986],{"alt":4987,"src":4988},"Konfigurieren des Namens und Benutzernamens für den neuen Telegram-Bot","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fbotfather-bot-details-configured.webp",[429,4990,4541,4991,4994,4995],{},[524,4992,4993],{},"Copy",", um das Token zu kopieren, und fügen Sie es im Terminal ein.\n",[516,4996],{"alt":4997,"src":4998},"Kopieren des HTTP-API-Tokens des neu erstellten Telegram-Bots","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fbotfather-copy-http-api-token.webp",[429,5000,5001,5002,5004],{},"Finden Sie die ID Ihres ",[524,5003,4930],{},"-Benutzerkontos und fügen Sie sie zur Liste der erlaubten Benutzer hinzu ('Allowed user list'):",[484,5006,5007,5017,5031],{},[468,5008,5009,5010,5012,5013],{},"Suchen Sie nach '@raw_data_bot' auf ",[524,5011,4930],{},".\n",[516,5014],{"alt":5015,"src":5016},"Suche nach raw data bot auf Telegram zum Abrufen der Benutzer-ID","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-search-raw-data-bot.webp",[468,5018,4541,5019,5022,5023,5026,5027],{},[524,5020,5021],{},"RawDataBot"," und dann auf den Start-Button. Die Benutzer-ID wird hinter ",[524,5024,5025],{},"P.S. Your ID:"," angezeigt.\n",[516,5028],{"alt":5029,"src":5030},"Starten von RawDataBot zur Anzeige der Benutzerkonto-ID","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-raw-data-bot-user-id.webp",[468,5032,5033],{},"Kopieren Sie die Benutzer-ID und fügen Sie sie in das Terminal ein.",[429,5035,5036,5037,5041,5042,5046],{},"Da der Dienst in der Cloud läuft, soll er automatisch gestartet werden.\n",[516,5038],{"alt":5039,"src":5040},"Konfigurieren der Autostart-Option für den Hermes-systemd-Dienst","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-autostart-service-option.webp","\nBelassen Sie alle Einstellungen auf den Standardwerten:\n",[516,5043],{"alt":5044,"src":5045},"Belassen der Setup-Konfigurationen auf den Standardwerten im Terminal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-leave-defaults-1.webp",[516,5047],{"alt":5048,"src":5049},"Abschließen der Standard-Setup-Optionen in der Hermes-Konfiguration","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-leave-defaults-2.webp",[457,5051,5053],{"id":5052},"testen-des-hermes-agents-mit-dem-telegram-bot","Testen des Hermes Agents mit dem Telegram-Bot",[429,5055,5056,5057,5060],{},"Führen Sie den folgenden Befehl aus, um das ",[524,5058,5059],{},"hermes gateway"," zu starten:",[615,5062,5064],{"className":617,"code":5063,"language":619,"meta":424,"style":424},"hermes gateway\n",[524,5065,5066],{"__ignoreMap":424},[623,5067,5068,5070],{"class":625,"line":626},[623,5069,4740],{"class":629},[623,5071,5072],{"class":633}," gateway\n",[429,5074,914,5075,5077],{},[524,5076,4930],{}," und fügen Sie den erstellten Bot '@tech_cloud_hermes_bot' zu Ihren Chats hinzu.",[484,5079,5080,5093,5103],{},[468,5081,5082,5083,5085,5086,5088,5089],{},"Geben Sie '\u002Fnew' in ",[524,5084,4930],{}," ein, um eine neue ",[524,5087,435],{},"-Sitzung zu starten.\n",[516,5090],{"alt":5091,"src":5092},"Eingabe des Befehls new in Telegram zum Starten einer neuen Hermes-Agent-Sitzung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-chat-hermes-new-session.webp",[468,5094,5095,5096,5098,5099],{},"Die Eingabe von ",[524,5097,3915],{}," listet alle verfügbaren Befehle auf.\n",[516,5100],{"alt":5101,"src":5102},"Eingabe von commands in Telegram zur Anzeige der verfügbaren Hermes-Befehle","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-chat-hermes-commands-list.webp",[468,5104,5095,5105,5107,5108],{},[524,5106,3945],{}," zeigt eine Liste aller verfügbaren LLMs.\n",[516,5109],{"alt":5110,"src":5111},"Eingabe von model in Telegram zur Anzeige der aktiven LLM-Modelle","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-chat-hermes-model-selection.webp",[457,5113,5115],{"id":5114},"hermes-gateway-als-hintergrunddienst-ausführen","Hermes Gateway als Hintergrunddienst ausführen",[429,5117,5118],{},"Erstellen Sie die Service-Datei:",[615,5120,5122],{"className":1053,"code":5121,"language":1055,"meta":424,"style":424},"sudo nano \u002Fetc\u002Fsystemd\u002Fsystem\u002Fhermes-gateway.service\n",[524,5123,5124],{"__ignoreMap":424},[623,5125,5126,5128,5130],{"class":625,"line":626},[623,5127,630],{"class":629},[623,5129,1064],{"class":633},[623,5131,5132],{"class":633}," \u002Fetc\u002Fsystemd\u002Fsystem\u002Fhermes-gateway.service\n",[429,5134,5135,5136,5138],{},"Fügen Sie das Folgende ein und ersetzen Sie ",[524,5137,4740],{}," in '\u002Fhome\u002Fhermes' durch Ihren gewünschten Benutzernamen:",[615,5140,5142],{"className":1079,"code":5141,"language":1081,"meta":424,"style":424},"[Unit]\nDescription=Hermes Gateway\nAfter=network.target\n\n[Service]\nUser=hermes\nWorkingDirectory=\u002Fhome\u002Fhermes\nExecStart=\u002Fhome\u002Fhermes\u002F.local\u002Fbin\u002Fhermes gateway\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",[524,5143,5144,5148,5153,5157,5161,5165,5169,5173,5178,5182,5186,5190,5194,5198],{"__ignoreMap":424},[623,5145,5146],{"class":625,"line":626},[623,5147,1088],{},[623,5149,5150],{"class":625,"line":643},[623,5151,5152],{},"Description=Hermes Gateway\n",[623,5154,5155],{"class":625,"line":650},[623,5156,1098],{},[623,5158,5159],{"class":625,"line":657},[623,5160,647],{"emptyLinePlaceholder":646},[623,5162,5163],{"class":625,"line":669},[623,5164,1107],{},[623,5166,5167],{"class":625,"line":674},[623,5168,1112],{},[623,5170,5171],{"class":625,"line":680},[623,5172,1117],{},[623,5174,5175],{"class":625,"line":1023},[623,5176,5177],{},"ExecStart=\u002Fhome\u002Fhermes\u002F.local\u002Fbin\u002Fhermes gateway\n",[623,5179,5180],{"class":625,"line":1034},[623,5181,1127],{},[623,5183,5184],{"class":625,"line":1130},[623,5185,1133],{},[623,5187,5188],{"class":625,"line":1136},[623,5189,1139],{},[623,5191,5192],{"class":625,"line":1142},[623,5193,647],{"emptyLinePlaceholder":646},[623,5195,5196],{"class":625,"line":1147},[623,5197,1150],{},[623,5199,5200],{"class":625,"line":1153},[623,5201,1156],{},[429,5203,1161],{},[615,5205,5207],{"className":1053,"code":5206,"language":1055,"meta":424,"style":424},"sudo systemctl daemon-reload\nsudo systemctl enable hermes-gateway\nsudo systemctl start hermes-gateway\nsudo systemctl status hermes-gateway\n",[524,5208,5209,5217,5228,5238],{"__ignoreMap":424},[623,5210,5211,5213,5215],{"class":625,"line":626},[623,5212,630],{"class":629},[623,5214,634],{"class":633},[623,5216,1175],{"class":633},[623,5218,5219,5221,5223,5225],{"class":625,"line":643},[623,5220,630],{"class":629},[623,5222,634],{"class":633},[623,5224,768],{"class":633},[623,5226,5227],{"class":633}," hermes-gateway\n",[623,5229,5230,5232,5234,5236],{"class":625,"line":650},[623,5231,630],{"class":629},[623,5233,634],{"class":633},[623,5235,1195],{"class":633},[623,5237,5227],{"class":633},[623,5239,5240,5242,5244,5246],{"class":625,"line":657},[623,5241,630],{"class":629},[623,5243,634],{"class":633},[623,5245,664],{"class":633},[623,5247,5227],{"class":633},[457,5249,1324],{"id":1323},[429,5251,5252],{},"In diesem Artikel haben wir uns darauf konzentriert, wie Sie den Hermes Agent einrichten und über Telegram mit ihm kommunizieren können. Den Hermes Agent auf einem Remote-Server laufen zu lassen, bietet Ihnen einen echten digitalen Assistenten, der rund um die Uhr einsatzbereit ist.",[1336,5254,5255],{},"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 .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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":424,"searchDepth":643,"depth":650,"links":5257},[5258,5259,5264,5265,5266],{"id":4665,"depth":643,"text":4666},{"id":4675,"depth":643,"text":4676,"children":5260},[5261,5262,5263],{"id":4679,"depth":650,"text":4680},{"id":4838,"depth":650,"text":4839},{"id":4938,"depth":650,"text":4939},{"id":5052,"depth":643,"text":5053},{"id":5114,"depth":643,"text":5115},{"id":1323,"depth":643,"text":1324},[1358],"2026-06-19","Stellen Sie den Hermes Agent auf einem Linux-VPS für 24\u002F7-Uptime bereit. Folgen Sie unserer Schritt-für-Schritt-Anleitung zur Telegram-Bot-Integration.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002FDE-How%20to%20Setup%20Hermes%20on%20Remote%20Server.webp","Schritt-für-Schritt-Anleitung zur Bereitstellung des Hermes Agents auf einem Linux-VPS und der Telegram-Bot-Integration.",{"schemaOrg":5273,"robots":1399,"sitemap":5285},[5274],{"@type":1368,"name":451,"description":5269,"image":5270,"step":5275},[5276,5279,5282],{"@type":1371,"name":4680,"text":5277,"image":4702,"url":5278},"Öffnen Sie das Terminal und verbinden Sie sich per SSH mit Ihrem Remote-Server: Stellen Sie sicher, dass Ihre Server-Pakete auf dem neuesten Stand ...","#schritt-1-verbindung-mit-ihrem-vps-herstellen",{"@type":1371,"name":4839,"text":5280,"image":4869,"url":5281},"Führen Sie den folgenden Befehl aus: Überprüfen Sie nach der Installation die Version mit dem Befehl: Führen Sie `hermes setup` aus, um den Hermes ...","#schritt-2-hermes-agent-installieren",{"@type":1371,"name":4939,"text":5283,"image":4949,"url":5284},"Wählen Sie `[2]`, um den Telegram-Bot zu nutzen. Gehen Sie zu `Telegram` und suchen Sie nach 'BotFather'. Klicken Sie auf `Open`, um 'BotFather' zu...","#schritt-3-integration-mit-telegram",{"lastmod":5268},{"title":5287,"description":5269,"ogTitle":451,"ogDescription":5269,"twitterTitle":451,"twitterDescription":5269},"Hermes Agent VPS Setup: Telegram Bot Integration Guide","de\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",[435,5290,5291,5292,5293],"VPS Setup","Telegram Bot","Linux VPS","AI Agent","cKpr9OcLUYdCKVudSw1JjNmmNcNSc-G8vea8EH0a3sk",{"id":2881,"title":2882,"author":424,"body":2883,"category":4072,"date":4075,"description":4076,"extension":1362,"image":4077,"imageAlt":4078,"isPublished":646,"meta":4079,"minRead":1130,"navigation":646,"path":355,"seo":4104,"stem":4106,"tags":4107,"updatedAt":2878,"__hash__":4110},1792489997248]