Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
VGSOURCES
Get listed

API securityPATCH 2026.10.27

How to Set Up a Hermes Workspace on Your Own VPS

By VGSources Team 12 min read

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

To self-host a Hermes workspace on a VPS, connect to a Docker-enabled Linux server over SSH, create a persistent host directory, run the Hermes setup wizard with that directory mounted at /opt/data, and then start the gateway as a detached container with --restart unless-stopped. Your mounted directory is the persistence boundary: it holds configuration, API keys, sessions, skills, and memories while the container image remains replaceable. Keep that directory backed up, publish no ports unless you need the API, and protect any publicly reachable API with a key and network controls.

What do you need before installing Hermes on a VPS?

You need a Linux VPS or another Linux host with Docker Engine installed and its daemon running. You also need SSH access, because the installation consists of commands that create a directory, start containers, and inspect logs. Hermes documentation supports SSH as a remote terminal backend, and the Docker instructions favor an SSH session over a browser console for commands that are sensitive to quoting, line breaks, and mounted paths.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

As an Amazon Associate I earn from qualifying purchases.

  • A Docker-capable Linux host: Verify that Docker Engine is installed and the daemon can answer requests.
  • An SSH account: Use an account that can run Docker commands. Avoid changing users casually, because the account determines where ~ resolves and which files your bind mount contains.
  • Persistent storage: Reserve a host directory for Hermes state and include it in your backup plan.
  • A network decision: Decide whether Hermes will be used privately through its gateway integrations or whether another service must call its HTTP API.
  • Credential material: Have the model or service API keys required by the setup wizard available, and decide which credentials, if any, terminal commands should receive.

Self-hosting moves operational work to you. Updates, image selection, backups, log review, monitoring, firewall rules, and uptime are not automatically handled by a VPS provider.

How do you verify Docker and open an SSH session?

Connect to the VPS first, then verify Docker before running the Hermes wizard. This separates a host problem from an application problem.

Popular on Amazon
Sale
Gaoye Blue Light Blocking Glasses | Anti UV Ray, For Computers & Gaming, Square Frame, Eyewear for Men and Women
  • BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
  • EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
  • COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
  • LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
  • WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.
ssh USER@YOUR_VPS_HOST
docker version

The docker version command should return client and server information. If it reports that the daemon is unavailable, fix the Docker service or your account’s permission to access it before proceeding. Running the setup command while the daemon is unreachable will not create a usable workspace.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use one consistent account for setup and gateway operation. If you run Docker through sudo, the shell’s $HOME may change to the superuser’s home directory. That can silently create or mount /root/.hermes instead of the directory you intended. Check the rendered path whenever you use elevated privileges.

How do you run the Hermes first-run setup wizard?

Create the persistent directory and launch the setup image interactively. The wizard asks for API keys and writes the resulting configuration into the mounted directory.

mkdir -p ~/.hermes

docker run -it --rm 
  -v ~/.hermes:/opt/data 
  nousresearch/hermes-agent setup
  1. Create the directory. mkdir -p ~/.hermes creates the host-side persistence location if it does not already exist.
  2. Mount it into the container. The -v ~/.hermes:/opt/data option makes the host directory available at Hermes’s expected data path.
  3. Complete each wizard prompt. Enter the requested service credentials and finish normally. The interactive -it flags provide the terminal input and output the wizard needs.
  4. Let the temporary container exit. --rm removes that setup container after it finishes. Removing the container does not remove the mounted host data.

The image is stateless; the host directory is not. If setup appears to complete but the next container starts as if it were new, inspect the mount path and ownership before repeating the wizard.

Where does Hermes store API keys, sessions, and workspace data?

Hermes stores its user data in the host directory mounted to /opt/data. In the example above, that directory is ~/.hermes. The Docker guide describes this single directory as holding configuration, API keys, sessions, skills, and memories.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Data Persistence location Operational implication
Configuration Host ~/.hermes, mounted as /opt/data Back it up before changing settings or upgrading the image.
API keys The same mounted directory Treat the directory as sensitive; restrict host access and backup access.
Sessions The same mounted directory Replacing the image does not replace these files when the mount is unchanged.
Skills and memories The same mounted directory A missing or incorrectly mounted directory makes the workspace appear empty.

Keep the mount identical for setup and for every gateway invocation. If you choose a different host path, substitute it consistently in both commands and in your backup procedures.

Also popular on Amazon
Windex Gaming Cleaning Wipes, Pre-Moistened Wipes to Instantly Clean all Gaming Gear and Electronics, Resealable Packaging for a Freshness Lock, 25 count (Pack of 1)
  • WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
  • AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
  • PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
  • ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
  • COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed

How do you keep Hermes running after you disconnect from SSH?

Start the gateway as a detached container with a restart policy. The gateway is the mode intended for integrations such as Telegram, Discord, Slack, and WhatsApp.

docker run -d 
  --name hermes 
  --restart unless-stopped 
  -v ~/.hermes:/opt/data 
  nousresearch/hermes-agent gateway run

The -d flag detaches the process from your SSH terminal. --restart unless-stopped asks Docker to bring the container back after a daemon restart or host reboot, unless you explicitly stopped it. --name hermes gives you a stable name for log and lifecycle commands.

Confirm that the container is running before closing the session:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
docker ps --filter name=hermes

If it exits, inspect its output rather than repeatedly starting new copies:

docker logs hermes

Do not launch a second container with the same name while the first one exists. Stop and remove the failed container only after you have captured its logs and checked the mounted data.

How do you expose the Hermes API securely?

The API server is optional. Leave it disabled and publish no port when integrations can use the gateway without an HTTP endpoint. If another application must call the API, enable it explicitly, bind it beyond the container loopback, publish the port, and provide an API key.

Also popular on Amazon
Sale
LISEN Cell Phone Stand Phone Holder for Desk, Office Decor Gadgets for Men | Office Gifts for Women, iPhone Stand, Gadgets for Men, Office Decor, Gaming Desk Accessories for Samsung Fold 8, Switch, iPad
  • Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
  • Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
  • Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
  • ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
  • Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)
docker run -d 
  --name hermes 
  --restart unless-stopped 
  -v ~/.hermes:/opt/data 
  -p 8642:8642 
  -e API_SERVER_ENABLED=true 
  -e API_SERVER_HOST=0.0.0.0 
  -e API_SERVER_KEY="$(openssl rand -hex 32)" 
  -e API_SERVER_CORS_ORIGINS='*' 
  nousresearch/hermes-agent gateway run

What each API setting does

  • API_SERVER_ENABLED=true turns the API server on. Without it, publishing a port does not constitute a complete API setup.
  • API_SERVER_HOST=0.0.0.0 makes the service listen on interfaces beyond the container’s loopback. Use this only when a published or proxied endpoint is required.
  • -p 8642:8642 maps the host’s port 8642 to the container’s port 8642. Omit the mapping for a private, container-only service.
  • API_SERVER_KEY supplies the bearer credential. The documented minimum is eight characters; the example generates a longer random hexadecimal value with OpenSSL.
  • API_SERVER_CORS_ORIGINS='*' permits requests from any browser origin. Treat that wildcard as a deliberate exposure choice, not a harmless default, and narrow it when your calling application has a known origin.

The Hermes documentation warns that opening any port on an internet-facing machine is a security risk. Put a firewall policy around the published port, restrict source addresses where possible, and consider a reverse proxy that terminates TLS and applies additional access controls. Never publish the API merely to test whether the gateway works.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Which Hermes terminal backend should you use?

The backend determines where commands execute and how much isolation separates them from the VPS host. Hermes supports local, Docker, SSH, Modal, Daytona, and Singularity backends.

Backend Execution location Isolation Best fit Main trade-off
Local Directly on the host running Hermes None Tasks that intentionally need host-level access Commands share the host environment and its permissions.
Docker Containers on the VPS Docker namespaces and hardening controls General-purpose isolated task execution Requires Docker configuration, images, mounts, and resource policy.
SSH A remote server reached over SSH Remote-machine boundary Keeping command execution off the Hermes VPS Depends on another host, account, keys, and network reachability.
Modal, Daytona, or Singularity Provider- or platform-managed environment Depends on that platform’s boundary Workloads already standardized on one of those systems Adds platform-specific configuration and operational dependencies.

Docker is the usual VPS choice when you want commands isolated from the host while keeping execution nearby. Local execution has the least setup but no isolation. SSH is useful when the workspace should orchestrate a separate machine. The right choice depends on where files and commands must live, not on the gateway container alone.

How should you handle mounts, users, and forwarded credentials?

Bind mounts make host files available to containers, but ownership and credential scope need explicit decisions. Hermes’s configuration reference includes persistent containers, volume mounts, environment-variable forwarding, Docker resource controls, and an option to run a container as the host user.

Prevent root-owned files

A container process commonly runs as root unless configured otherwise. When it writes through a bind mount, resulting files can become root-owned on the VPS. Use the host-user option documented for the Docker backend when you need files created with the host account’s ownership, and verify the rendered UID and GID before applying it to a production workspace.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Mount only what a task needs

A broad host mount gives commands a broad ability to read or alter the VPS. Prefer a dedicated Hermes directory and narrowly scoped additional mounts. Keep secrets out of directories that do not require them.

Also popular on Amazon
Ledagic IC+RGBW USB Powered Led Light Bar with App & Remote Control, 2 Pack | IC+Rgb & W Smart RGB Light Bar, USB Powered TV Light Bar, Led Lights for TV PC Room Monitor Backlight Gaming Accessories
  • Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
  • Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
  • 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
  • Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
  • USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC

Forward credentials selectively

Environment-variable forwarding can make credentials available inside a task, but every forwarded secret expands the impact of a compromised or misbehaving command. Forward only credentials that the command genuinely needs, and remove them when the task no longer depends on them.

Control resource use

Docker resource controls can limit how much CPU, memory, or other capacity a task consumes. Set limits according to the workload and the VPS capacity rather than assuming the container should have unrestricted access.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How do backups and upgrades work with a stateless Hermes image?

Back up the host directory that is mounted at /opt/data, not just the container. The image can be replaced; the directory contains the state that must survive replacement.

  1. Back up before change. Make a recoverable copy of ~/.hermes before an image upgrade or significant configuration edit.
  2. Protect the backup. It contains API keys, sessions, skills, memories, and configuration, so apply access controls appropriate to sensitive credentials.
  3. Choose an image policy. The documentation distinguishes latest/stable, main, and versioned tags. A versioned tag or digest gives you a reproducible image reference; moving tags follow whatever image is currently published under that name.
  4. Keep the mount unchanged. When replacing the container, attach the same host directory to /opt/data so the new image sees the existing workspace.
  5. Observe the replacement. After an upgrade, check the container status and logs, then verify the integrations or API path you actually use.

Self-hosting means you also own patch scheduling, health checks, retention policy, and recovery testing. A backup that has never been restored is only an assumption, so periodically verify that your chosen backup process can produce a readable copy of the workspace.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What should you do if setup or the gateway fails?

Work through the failure in order: Docker, path, permissions, container logs, and then network exposure. This prevents an API symptom from hiding a storage or startup error.

Docker is unavailable

  • Run docker version again and confirm that both client and server information appear.
  • Check that the Docker daemon is running and that the SSH account is authorized to use it.

The workspace appears empty after a restart

  • Confirm that the gateway uses the same host path that the setup wizard used.
  • Check that ~/.hermes exists and is readable and writable by the user or container UID.
  • If Docker was invoked with sudo, check whether ~ resolved to /root and created a second, empty directory.

The gateway exits immediately

  • Inspect docker logs hermes for configuration, credential, permission, or startup errors.
  • Check for an existing container named hermes before attempting another run.
  • Verify that the mounted directory contains the files created by the setup wizard.

The API cannot be reached

  • Confirm that API_SERVER_ENABLED is set to true.
  • Check that the server is bound to the interface you intend to expose and that the host-to-container port mapping is present.
  • Verify the client is sending the configured API key and that the key meets the documented minimum length.
  • Review the VPS firewall and any reverse-proxy policy. A listening process is not proof that the network path permits traffic.

Files are owned by root

Inspect ownership on the bind-mounted directory and review the Docker backend’s host-user option. Correct the execution identity before allowing more tasks to write into the workspace; changing permissions blindly can make sensitive files readable to unintended accounts.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Also popular on Amazon
Sale
HUANUO FlowLift™ Dual Monitor Stand, Fully Adjustable Gaming Monitor Desk Mount for 13–32″ Computer Screens, Full Motion VESA 75x75/100x100 with C-Clamp & Grommet Base, Each Arm Holds 4.4 to 19.8 lbs
  • Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
  • Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
  • Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
  • Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
  • Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.

How do you choose between a private gateway and a public API deployment?

Use the smallest exposure that satisfies the integration. A private gateway keeps the service available to its configured connectors without creating a general-purpose internet endpoint. A public API is appropriate only when an external caller truly needs it and you can enforce authentication and network policy.

Deployment choice Execution location Exposure Persistence requirement Maintenance burden
Gateway only Hermes container on the VPS No published API port Back up the host directory mounted at /opt/data Updates, logs, monitoring, and integration uptime remain your responsibility.
Gateway plus private API Hermes container on the VPS Reachable only through a private network or controlled proxy Same host directory and backup plan Add key management, private routing, and proxy or firewall rules.
Gateway plus public API Hermes container on the VPS Internet-reachable published port Same host directory and backup plan Add continuous patching, key rotation, TLS and access controls, firewall review, and monitoring.
Remote-command backend Commands execute on another server over SSH Gateway exposure can remain private Workspace state stays on the Hermes host; remote files need their own policy Maintain a second machine, SSH credentials, and its security posture.

What security checklist should you apply before going live?

  • Use SSH for administration and keep the VPS operating system and Docker installation patched.
  • Do not publish port 8642 unless the API is enabled and required.
  • Use a long, randomly generated API key whenever the API listens beyond loopback.
  • Restrict the API port with a firewall or private network where possible.
  • Place a reverse proxy in front of a public endpoint when you need TLS termination, source filtering, or additional authentication controls.
  • Protect ~/.hermes and every backup because the directory contains credentials and session data.
  • Forward only the environment variables a task needs.
  • Use Docker isolation rather than local execution when commands should not have direct host access.
  • Review bind mounts and container-user settings so a task cannot write more of the VPS than intended.
  • Monitor container logs and establish a response plan for an exited gateway or failed integration.

What is the complete setup sequence?

For a straightforward private deployment, the process is:

  1. SSH to the Linux VPS.
  2. Run docker version and resolve daemon or permission errors.
  3. Create ~/.hermes.
  4. Run the interactive setup container with ~/.hermes:/opt/data mounted.
  5. Enter the requested API keys and let the setup container finish.
  6. Start gateway run detached with --restart unless-stopped and the same mount.
  7. Check the container status and logs.
  8. Back up ~/.hermes before future configuration changes or image upgrades.
  9. Only if required, recreate the gateway with API-server variables, a published port, an API key, and firewall or proxy controls.

This arrangement keeps the replaceable container separate from the persistent workspace and leaves network exposure as an explicit decision rather than an accidental side effect.

Frequently Asked Questions

Can I move the Hermes workspace to another disk later?

Yes. Stop the gateway, copy the complete workspace directory to the new disk, and use the new host path in the volume mount for subsequent containers. Preserve the directory contents and permissions; mounting an empty destination will look like a new workspace.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Does the API server have to be enabled for chat integrations?

No. The gateway mode is intended for integrations, while the API server is an optional interface for applications that need HTTP access. Keep the API disabled when your integration does not require it.

What happens when the VPS reboots?

Docker can start the gateway again because the container uses the unless-stopped restart policy. This depends on Docker itself starting successfully and the host directory remaining available at the same path.

Should I use a moving image tag or a versioned tag?

A moving tag such as latest or stable follows the publisher’s current image for that tag. A versioned tag or digest is preferable when you need to reproduce a known deployment and schedule upgrades deliberately.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

API securityDockerHermes AgentLinuxself-hostingSSHVPS

Leave a reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.