---
title: "How to Expose Hermes Agent Privately with Cloudflare WARP"
canonical_url: "https://techvoyage.dev/article/exposing-hermes-agent-to-private-network-using-cloudflare-warp"
last_updated: "2026-10-20T09:53:39.523Z"
meta:
  description: "Learn how to securely expose and access your Hermes Agent globally using Cloudflare WARP and Zero Trust without opening inbound firewall ports."
  "og:description": "Learn how to securely expose and access your Hermes Agent globally using Cloudflare WARP and Zero Trust without opening inbound firewall ports."
  "og:title": "How to Expose Hermes Agent Privately with Cloudflare WARP"
  "twitter:description": "Learn how to securely expose and access your Hermes Agent globally using Cloudflare WARP and Zero Trust without opening inbound firewall ports."
  "twitter:title": "How to Expose Hermes Agent Privately with Cloudflare WARP"
---

[Home](https://techvoyage.dev/)

![Securely exposing Hermes Agent to a private network using Cloudflare Zero Trust and WARP tunnel](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/EN-Exposing-Hermes-Agent-to-Private-Network-Using-Cloudflare-WARP.webp) # **How to Expose Hermes Agent Privately with Cloudflare WARP**

Learn how to securely expose and access your Hermes Agent globally using Cloudflare WARP and Zero Trust without opening inbound firewall ports.

Jul 9, 2026 -Updated Sep 28, 2026 -8 MIN READ

[**AI & Agents**](https://techvoyage.dev/category/ai-agents) [**Security**](https://techvoyage.dev/category/security)

<details>

<summary>Table of contents</summary>



</details>

A common challenge arises when you want to access your **Hermes Agent** from other devices such as laptops, tablets, or phones without exposing it to the public internet. Utilizing **Cloudflare WARP** with **Cloudflare Zero Trust** allows you to expose the Hermes Agent globally without opening a single inbound port on your firewall.

If you followed our previous guide, ' [**How to Deploy Hermes Agent on a Linux VPS**](https://techvoyage.dev/article/how-to-setup-hermes-on-remote-server)', a Hermes Agent is already up and running 24/7. Instead of dealing with the overhead of traditional VPNs, we will use the **Cloudflare WARP** client to expose the Hermes Agent to a private network over the internet.

## Understanding the Architecture

The components at play: 1. **Cloudflare Zero Trust**: The dashboard at Cloudflare where you define routing rules and access policies. 2. **Cloudflare WARP**: The client application installed on your devices (VPS, laptops, phones). It intercepts traffic destined for your private network and routes it securely. ### Prerequisites

- A running Hermes Agent on your VPS. - A free Cloudflare account. ## Step-by-Step Guide

### Step 1: Set Up Cloudflare Zero Trust 1. Log in to your [**Cloudflare Dashboard**](https://dash.cloudflare.com/). 2. Click on 'Zero Trust' from the left menu. ![Cloudflare dashboard left sidebar navigation menu with Zero Trust option](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/cloudflare-zero-trust-left-menu.webp) 3. If this is your first time, you will be prompted to choose a plan (the Free tier is perfectly fine for this setup) and name your team (e.g., `**ai-team**`). ![Setting up first-time Cloudflare Zero Trust account and naming the team](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/cloudflare-zero-trust-team-setup.webp) 4. Click on 'Access' then 'Policies' to create an access policy defining who has access to the network. ![Cloudflare Zero Trust Access Policies page showing newly configured access rules](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/cloudflare-access-policies-page.webp) 5. Click on 'Create new policy'. ![Cloudflare Access policies page showing no policies added and a button to create a new policy.](https://inimages.techvoyage.dev/articles/How%20to%20secure%20NodeWarden%20at%20Cloudflare/cloudflare-access-no-policies-create-button.png) 6. Select 'Emails' and enter your email under 'Policy rules'. ![Cloudflare Access policy rule configuration screen with an email address specified as the inclusion criteria.](https://inimages.techvoyage.dev/articles/How%20to%20secure%20NodeWarden%20at%20Cloudflare/cloudflare-access-policy-rule-email.png) ### Step 2: Set Up Cloudflare WARP Client on VPS 1. Run `**sudo apt update**` and `**sudo apt install cloudflare-warp**` in the terminal on your VPS. 2. Run `**warp-cli registration new <TEAM-NAME>**` in the terminal on your VPS, which will print out a URL. 3. Copy the printed URL, which will look like `**https://<team>.cloudflareaccess.com/warp**`, and paste it in your browser for authentication. 4. Since email authentication is used in the policy rule setup above, enter your email to authenticate. 5. On the '**Success**' page in the browser, right-click and select '**Inspect**' on the blue '**Open Cloudflare WARP**' button. 6. Copy the long token that is shown in the button's link. 7. Run `**warp-cli --accept-tos registration token "https://<team>.cloudflareaccess.com/auth?token=<copied_token>"**` in the terminal on your VPS to connect it to Cloudflare Zero Trust.If the 'Error: Failed to communicate with the WARP API' is encounter on Ubuntu 26, run the following commands:

   ```
   sudo systemctl restart warp-svc.service

   # Check status
   sudo systemctl status warp-svc.service

   # Run the warp-cli registration token again
   warp-cli --accept-tos registration token   "https://<team>.cloudflareaccess.com/auth?token=<copied_token>"
   ```

   8. Head back to the Cloudflare Zero Trust dashboard, and click on 'Devices'. Your VPS device should now be displayed. ![Zero Trust Devices dashboard confirming the Linux VPS is connected](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/cloudflare-zero-trust-devices-vps-connected.webp) ### Step 3: Set Up Traffic Routing 1. Click the profile for your VPS on the Devices dashboard. ![Accessing details and split tunnel settings for the registered VPS device](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/cloudflare-zero-trust-device-profile.webp) 2. Scroll down to the 'Split Tunnels' section. ![Split Tunnels section under VPS profile settings](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/cloudflare-zero-trust-split-tunnels-section.webp) 3. Click the 'Manage' button and configure the settings as shown below. Replace the IP address if necessary. ![Managing Split Tunnels IP and hostname exclusions in Cloudflare settings](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/cloudflare-zero-trust-manage-split-tunnels.webp) 4. Exposing the `**address**` and `**host**` will route traffic to your services over the same private network. ### Step 4: Configure Firewall on the VPS Enable the firewall to allow the '100.96.0.0/12' subnet only, blocking all other public incoming access.```
sudo ufw enable 
sudo ufw default allow outgoing 
sudo ufw default deny incoming
sudo ufw allow in from 100.96.0.0/12
``` Allow loopback traffic to avoid breaking local services:```
sudo ufw allow in on lo
sudo ufw allow out on lo
``` Reload the firewall and verify status:```
sudo ufw reload 
sudo ufw status verbose
```### Step 5: Expose Hermes Agent to the Private Network We will expose the **Hermes Agent Web Dashboard** to our private network and use the default authentication provider, **Nous Research**. #### Set Up the Auth Provider 1. Head to [**portal.nousresearch.com**](https://portal.nousresearch.com) to register an account. 2. Select 'Local Dashboards'. ![Selecting Local Dashboards option in the Nous Research portal](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/nous-portal-local-dashboards-selection.webp) 3. Click 'Register Dashboard'. ![Clicking Register Dashboard button to create a new dashboard entry](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/nous-portal-register-dashboard.webp) 4. Enter the private network IP address of your VPS as the 'Dashboard redirect URI' and click 'Save'. ![Registering the private network VPS IP address as redirect URI in Nous Research portal](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/nous-portal-register-redirect-uri.webp) 5. Copy the 'OAuth client ID' and paste it in your `**config.yaml**` file:```
dashboard:
  theme: default
  show_token_analytics: false
  oauth:
    client_id: agent:cmq02x7ha0002jk0ba3kfnb
    portal_url: https://portal.nousresearch.com
  basic_auth:
    username: ''
    password_hash: ''
```#### Set Up Systemd to Autostart the Hermes Dashboard 1. Create a service file:```
sudo nano /etc/systemd/system/hermes-dashboard.service
```1. Paste the following configuration, ensuring `**--host 0.0.0.0**` is part of the command:```
[Unit]
Description=Hermes Dashboard
After=network.target

[Service]
User=hermes
WorkingDirectory=/home/hermes
ExecStart=/home/hermes/.local/bin/hermes dashboard --host 0.0.0.0
Restart=always
RestartSec=10
Environment=PATH=/home/hermes/.local/bin:/usr/local/bin:/usr/bin:/bin

[Install]
WantedBy=multi-user.target
```1. Enable and start the service:```
sudo systemctl daemon-reload
sudo systemctl enable hermes-dashboard
sudo systemctl start hermes-dashboard
sudo systemctl status hermes-dashboard
```### Step 6: Install Cloudflare WARP Client on Desktop 1. Download the Cloudflare WARP client from [**Cloudflare's portal**](https://developers.cloudflare.com/warp-client/get-started/). 2. Open and launch the Cloudflare WARP client after installation. 3. Log in when prompted. ![Cloudflare WARP client login prompt on desktop machine](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/cloudflare-warp-desktop-login-prompt.webp) 4. A 'Success' page will be displayed after a successful login. ![Authentication success webpage after logging in to Cloudflare Zero Trust on desktop](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/cloudflare-warp-desktop-login-success.webp) 5. The WARP client should now show it is connected to your Zero Trust team. ![Desktop Cloudflare WARP client confirming active connection to Zero Trust private network](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/cloudflare-warp-desktop-client-connected.webp) 6. Navigate to your web browser and enter your private IP (e.g., `**100.96.0.3**`). The Hermes Web Dashboard should load successfully. ![Accessing the private Hermes Agent Web Dashboard in browser on desktop](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/hermes-agent-dashboard-desktop-view.webp) > **Pro Tip for macOS Users:** If you are using the WARP client to access multiple Cloudflare accounts, check out our quick guide on **[**Switch Between Multiple Cloudflare WARP Orgs on Mac**](https://techvoyage.dev/article/switch-between-multiple-cloudflare-warp-orgs-on-mac)** to make switching between accounts seamless. ### Step 7: Install Cloudflare WARP Client on iOS Devices 1. Install **Cloudflare One** from the App Store. 2. Open the Cloudflare One app and enter your team name when prompted. ![Entering Cloudflare Zero Trust team name in Cloudflare One app on iOS](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/cloudflare-one-ios-team-name-prompt.webp) 3. Log in using the same email address that was configured in the policy rule above. ![Email authentication prompt for Cloudflare Zero Trust on iOS](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/cloudflare-one-ios-email-login.webp) 4. Once it is connected, it should look like the following: ![Cloudflare One app showing connected status on iOS mobile device](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/cloudflare-one-ios-client-connected.webp) 5. Navigate to your web browser and enter the private IP `**100.96.0.3**` to access the Hermes Web Dashboard on your mobile device. ![Accessing Hermes Agent Web Dashboard interface on mobile phone browser](https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/hermes-agent-dashboard-mobile-view.webp) ## Conclusion With **Cloudflare Zero Trust** handling identity policies and the **WARP** client routing traffic over an encrypted tunnel, your Hermes Agent is securely reachable from your devices globally. This setup lays a secure, robust foundation for building and accessing a fully remote, private AI infrastructure. [Share](https://api.whatsapp.com/send?text=https%3A%2F%2Ftechvoyage.dev%2Farticle%2Fexposing-hermes-agent-to-private-network-using-cloudflare-warp) [Share](https://www.reddit.com/submit?url=https%3A%2F%2Ftechvoyage.dev%2Farticle%2Fexposing-hermes-agent-to-private-network-using-cloudflare-warp) [Share](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Ftechvoyage.dev%2Farticle%2Fexposing-hermes-agent-to-private-network-using-cloudflare-warp) [Share](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Ftechvoyage.dev%2Farticle%2Fexposing-hermes-agent-to-private-network-using-cloudflare-warp) [Share](https://x.com/intent/post?url=https%3A%2F%2Ftechvoyage.dev%2Farticle%2Fexposing-hermes-agent-to-private-network-using-cloudflare-warp) ## **Related Articles**[![Configure Multiple Cloudflare WARP Profiles on macOS](https://inimages.techvoyage.dev/articles/Switch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac/EN-Switch-Between-Multiple-Cloudflare-WARP-Orgs-on-Mac.webp)**Security**<h3>**Switch Between Multiple Cloudflare WARP Orgs on Mac**</h3>Configure and switch multiple Cloudflare WARP organisations on macOS using a .mobileconfig file. A complete MDM guide for IT admins.**4 MIN READ **](https://techvoyage.dev/article/switch-between-multiple-cloudflare-warp-orgs-on-mac) [![A step-by-step guide to deploying Hermes Agent on a remote Linux VPS and integrating it with a custom Telegram bot for 24/7 uptime.](https://inimages.techvoyage.dev/articles/How%20to%20Setup%20Hermes%20on%20Remote%20Server/How%20to%20Setup%20Hermes%20on%20Remote%20Server.webp)**AI & Agents**<h3>**How to Deploy Hermes Agent on a Linux VPS**</h3>Deploy the Hermes Agent on a remote VPS for 24/7 uptime. Follow our step-by-step guide to integrate it with a custom Telegram bot.**5 MIN READ **](https://techvoyage.dev/article/how-to-setup-hermes-on-remote-server) [![A premium 16:9 technology card with deep indigo and amber accents illustrating how to connect DeepSeek Harness to Block Buzz via a Nostr gateway, featuring a clean glassmorphic panel with centered typography.](https://inimages.techvoyage.dev/articles/Bringing%20Buzz%20to%20DeepSeek%20Harness/EN-Bringing-Buzz-to-DeepSeek-Harness.webp)**AI & Agents**<h3>**Bringing Buzz to DeepSeek Harness: Taught to Speak Nostr**</h3>Integrate DeepSeek Harness with Block Buzz using a Nostr bridge. Configure NIP-42 auth, in-place message streaming, and per-channel agent workspaces.**9 MIN READ **](https://techvoyage.dev/article/bringing-buzz-to-deepseek-harness) [![Securely synchronising Obsidian vaults across multiple devices using self-hosted Synch and Ignis web client inside Cloudflare Zero Trust](https://inimages.techvoyage.dev/articles/Sync%20Obsidian%20Across%20Devices/EN-Sync-Obsidian-Across-Devices.webp)](https://techvoyage.dev/article/sync-obsidian-across-devices) [![A premium 16:9 technology card with deep indigo and amber accents illustrating how to connect DeepSeek Harness to Block Buzz via a Nostr gateway, featuring a clean glassmorphic panel with centered typography.](https://inimages.techvoyage.dev/articles/Bringing%20Buzz%20to%20DeepSeek%20Harness/EN-Bringing-Buzz-to-DeepSeek-Harness.webp)](https://techvoyage.dev/article/bringing-buzz-to-deepseek-harness)