October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk11 min

How to Deploy Hermes Agent With Docker Compose

A complete Docker Compose deployment for Hermes Agent, including persistent storage, setup commands, gateway and dashboard ports, API security, secret handling, resource limits, upgrades, and troubleshooting.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The reliable Docker Compose deployment for Hermes Agent uses the official nousresearch/hermes-agent:latest image, a persistent host directory mounted at /opt/data, and the image’s default supervised entrypoint. Initialize the directory once, start the gateway with Compose, and expose only the ports and interfaces you actually need. The gateway uses port 8642; the optional dashboard uses port 9119.

What this deployment gives you

Hermes Agent keeps its configuration, API keys, sessions, skills, memories, and logs under /opt/data inside the container. A container filesystem is disposable: replacing the container without a mounted data directory removes those files. Mapping a host directory such as ~/.hermes to /opt/data makes the state survive restarts, image updates, and container replacement.

As an Amazon Associate I earn from qualifying purchases.

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

Compose also gives you a repeatable definition for the image, restart policy, ports, environment, and resource limits. The configuration below starts Hermes in gateway mode and enables the web dashboard. You can remove the dashboard setting and its port when you only use connected chat platforms.

Prerequisites and capacity planning

Software and access

  • Docker Engine with the Docker Compose plugin (the docker compose command).
  • A host account that can create and write to the directory used for Hermes data.
  • Credentials for the model or messaging integrations you plan to configure.
  • Firewall or network-control access if the host is reachable from other machines.

The image is distributed as nousresearch/hermes-agent:latest. The latest tag follows the current published image, so pin a tested image tag in production if your change-control process requires deterministic rollbacks.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.

Minimum and recommended resources

Workload Memory CPU Disk Qualification
Hermes minimum 1 GB RAM 1 CPU core 500 MB Minimums listed by the official Docker guide for Dinh2026/hermes-agent (2026).
Recommended baseline 2–4 GB RAM 2 CPU cores 2 GB or more Baseline listed by the official Docker guide (2026).
Browser automation At least 2 GB RAM Not separately stated Not separately stated Additional memory requirement listed by the official Docker guide (2026).

These are planning figures, not performance guarantees. Browser automation can raise memory use sharply, and the Compose limits in the example deliberately cap the service at 4 GB and two CPU cores.

Initialize the persistent data directory

Create the host directory and run the setup wizard before starting the Compose service. The wizard stores configured API keys in ~/.hermes/.env.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Create the directory:
mkdir -p ~/.hermes
  1. Run setup with the directory mounted at the path Hermes uses inside the image:
docker run -it --rm 
  -v ~/.hermes:/opt/data 
  nousresearch/hermes-agent setup
  1. Complete the interactive prompts for the providers and integrations you need. When it finishes, verify that the host directory contains the generated .env file and any other initialized files.

The --rm option removes only the temporary setup container. The mounted files remain in ~/.hermes, which is why the subsequent Compose container can use the same configuration.

Create the Docker Compose file

Save this as compose.yaml (or docker-compose.yml) in a directory from which you will operate Hermes:

services:
  hermes:
    image: nousresearch/hermes-agent:latest
    container_name: hermes
    restart: unless-stopped
    command: gateway run
    ports:
      - "8642:8642"   # gateway API and health endpoint
      - "9119:9119"   # dashboard when enabled
    volumes:
      - ~/.hermes:/opt/data
    environment:
      - HERMES_DASHBOARD=1
      # Optional variable forwarding:
      # - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      # - OPENAI_API_KEY=${OPENAI_API_KEY}
      # - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
    deploy:
      resources:
        limits:
          memory: 4G
          cpus: "2.0"

What each Compose setting does

Setting Purpose Operational consequence
image Selects the Hermes Agent container image. Pull a newer image before an upgrade; use a tested tag when reproducibility matters.
container_name: hermes Gives the container a predictable name. Useful for inspection commands and logs; the name must be unique on the Docker host.
restart: unless-stopped Restarts the service after crashes or host reboots. A deliberate manual stop is not automatically undone until you start it again.
command: gateway run Starts Hermes in gateway mode. The image’s normal entrypoint remains in use, so its process supervision is preserved.
8642:8642 Publishes the gateway API and health endpoint. The host’s port 8642 forwards to port 8642 in the container.
9119:9119 Publishes the dashboard port. Needed only when you intend to reach the dashboard through the host.
~/.hermes:/opt/data Bind-mounts persistent state. Configuration, keys, sessions, skills, memories, logs, and migrations survive container replacement.
HERMES_DASHBOARD=1 Enables the dashboard service. Increases the exposed service surface; secure its bind and authentication before remote access.
deploy.resources.limits Caps memory at 4 GB and CPU at two cores. Prevents unlimited consumption, but an undersized cap can cause slowdowns or failures under automation workloads.

Do not replace the image’s default entrypoint with a custom shell command unless you have a specific reason and understand the trade-off. The official image uses s6-overlay to supervise the gateway and dashboard processes and to reap orphaned child processes. Replacing that entrypoint removes those safeguards and can allow zombie processes to accumulate.

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.

Start Hermes and verify the service

  1. From the directory containing the Compose file, start the service in the background:
docker compose up -d
  1. Follow startup output while the gateway and dashboard initialize:
docker compose logs -f
  1. In another terminal, confirm that the container is running:
docker compose ps

Look for a running hermes service and check the logs for configuration errors, permission failures, or provider authentication problems. The supervised gateway output is also written under the mounted Hermes data directory, so retaining that directory retains the logs needed for later diagnosis.

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

Understand the two network ports

Port 8642: gateway API and health endpoint

Port 8642 carries the gateway API and health endpoint. It is optional when Hermes is used only through chat platforms, but it is required for the dashboard and for external tools that call the API. Publishing it in Compose makes it reachable through the Docker host; it does not by itself configure Hermes to accept external API requests.

Port 9119: dashboard

The dashboard listens on port 9119 by default when HERMES_DASHBOARD=1 is set. Publishing 9119:9119 makes it available through the host. If you do not need the dashboard, remove both the environment variable and the port mapping to reduce the attack surface.

Enable the API safely

Opening a host port on an internet-facing machine is a security risk. Keep the API bound to loopback or a private network unless remote access is genuinely required, and place an authenticated reverse proxy or an equivalent network control in front of any public endpoint.

To expose the API beyond container loopback, configure all three settings:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
API_SERVER_ENABLED=true
API_SERVER_HOST=0.0.0.0
API_SERVER_KEY=replace-with-a-key-of-at-least-eight-characters
  • API_SERVER_ENABLED=true turns on the API server.
  • API_SERVER_HOST=0.0.0.0 makes it listen on all container interfaces rather than only loopback.
  • API_SERVER_KEY must be at least eight characters and is required for authenticated API access.

Do not treat 0.0.0.0 as a security control. It is a bind address, not an allow-list. Restrict the host firewall to trusted source addresses, or keep port 8642 private and access it through a VPN or an authenticated proxy.

Enable the dashboard without exposing it recklessly

Set HERMES_DASHBOARD=1 only when the dashboard is needed. Current hardened releases require an authentication provider when the dashboard binds to a non-loopback address. A local-only dashboard is a safer default for a single-host installation.

A practical exposure sequence is:

  1. Start with the dashboard available only on the Docker host or a private management network.
  2. Configure the dashboard’s supported authentication provider before changing its bind address.
  3. Allow only the required source networks through the host firewall.
  4. Use encrypted transport when traffic leaves the host; do not send credentials over an unprotected public connection.
  5. Review docker compose logs -f and the mounted Hermes logs after changing the bind or authentication settings.

If a dashboard is not part of your workflow, omit HERMES_DASHBOARD=1 and the 9119 mapping. The gateway can still support chat-platform use, and port 8642 can remain unpublished unless an API client needs it.

Choose a secret-management method

Persisted /opt/data/.env

The setup wizard writes keys to ~/.hermes/.env, which is mounted as /opt/data/.env in the container. This is convenient for a single host and allows the setup wizard and later containers to share configuration. Protect the host directory with restrictive filesystem permissions and include it in your backup and access-control plan.

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

Injected environment variables

Variables supplied directly to the container override values from /opt/data/.env. This precedence is useful for continuous-integration jobs, ephemeral hosts, and secrets-manager workflows that should not write provider keys to disk.

Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.

For example, define variables in the shell or in the environment used to run Compose:

export ANTHROPIC_API_KEY='your-value'
export OPENAI_API_KEY='your-value'
export TELEGRAM_BOT_TOKEN='your-value'

Then uncomment only the integrations you use in the Compose file:

environment:
  - HERMES_DASHBOARD=1
  - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
  - OPENAI_API_KEY=${OPENAI_API_KEY}
  - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}

Compose substitutes the host environment values when it creates the container. Avoid committing a file containing real secrets to source control, and be aware that anyone who can inspect the running container or its process configuration may be able to see injected values.

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

Persistence: what should survive a replacement

The bind mount is the central persistence decision. Hermes data stored below /opt/data includes:

  • Configuration and provider credentials.
  • Sessions and conversation state.
  • Installed skills.
  • Memories.
  • Logs.
  • Files used by non-interactive configuration migrations.

To verify the mount rather than assuming it is active, inspect the service and then create a harmless test file in the mounted directory on the host. Restart or recreate the container and confirm that the file and Hermes state remain. If the host path is misspelled, points to a different user’s home directory, or is not writable, Docker can start with an empty or unusable data path.

Back up ~/.hermes while Hermes is stopped or during a maintenance window. A backup that omits the directory can lose the exact keys, sessions, memories, skills, and logs that the mount was intended to protect. Treat the backup as sensitive because it can contain API keys and conversation-related data.

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

Upgrade Hermes without losing state

The normal upgrade sequence pulls the current image and recreates the service while leaving the bind-mounted data directory in place:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
docker compose pull
docker compose up -d

On startup, Hermes can run non-interactive configuration migrations. Keep the data directory available and writable during the migration, and retain a backup from before the upgrade so you can restore the previous state if a migration or provider change causes an unexpected result.

After the update, follow the logs and check both the gateway and dashboard (if enabled). If the new image does not behave as expected, stop the service, restore the backed-up data if necessary, and redeploy the previously tested image tag rather than deleting the persistent directory.

Deployment variants and their trade-offs

Variant Persistence model Exposure surface Process lifecycle Secret handling Best fit
Chat-only Compose Bind mount ~/.hermes:/opt/data No published ports, or only the private gateway port if required Default s6-supervised entrypoint Mounted .env or injected variables Users who interact through chat platforms and do not need a web UI.
Local dashboard Bind mount 8642 and 9119 limited to the host or private network Default supervised entrypoint Mounted .env or injected variables Single-host administration with minimal remote exposure.
Remote dashboard and API Bind mount plus tested backups Gateway and dashboard protected by firewall, authentication, and encrypted access Default supervised entrypoint Prefer injected secrets or a controlled secrets workflow Managed remote operations where external access is necessary.
Disposable test container No persistent mount, or a temporary mount Only ports needed for the test Still keep the default entrypoint Short-lived test credentials Experiments where losing sessions and configuration is acceptable.

The meaningful differences are not the YAML syntax; they are whether state is retained, which interfaces are reachable, whether s6 supervision remains active, where secrets live, and how much CPU and memory the service may consume.

Troubleshoot the common failures

Files or sessions disappear after recreation

  • Confirm the Compose volume is exactly ~/.hermes:/opt/data for the user running Compose.
  • Check that the host directory contains the files created by the setup wizard.
  • Verify that you did not start a different Compose project with another home directory or working directory.
  • Do not remove ~/.hermes while cleaning up containers.

The API is unreachable

  • Confirm the service is running with docker compose ps.
  • Check that API_SERVER_ENABLED=true is set when API serving is required.
  • Verify that API_SERVER_HOST is appropriate for the client location; a loopback bind cannot accept connections from another host.
  • Confirm host port 8642 is published and not blocked by another process or firewall rule.
  • Supply an API_SERVER_KEY of at least eight characters and use that key with the client.
  • Read the gateway logs for bind errors, authentication failures, or configuration mistakes.

The dashboard does not load

  • Ensure HERMES_DASHBOARD=1 is present and the service was recreated after changing the file.
  • Confirm that port 9119 is published and reachable from the intended network.
  • Check whether the dashboard is bound only to loopback or a private interface.
  • For a non-loopback bind, configure the authentication provider required by current hardened releases.
  • Remove the dashboard setting and port if you do not need the interface.

Permission errors on a NAS or shared mount

The UID and GID inside the container must be able to read and write the host-mounted directory. Align the container identity with the host owner using the documented PUID/PGID or HERMES_UID/HERMES_GID settings. Then restart the service and test creation of a file under /opt/data. Shared filesystems can also impose their own ownership, locking, or root-squash behavior; correct those at the storage layer if matching the numeric IDs is not sufficient.

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

Processes accumulate or the container behaves oddly after customization

Check whether the default image entrypoint was overridden. The s6-overlay entrypoint supervises the gateway and dashboard and reaps orphaned child processes. A custom entrypoint can remove that supervision, causing orphaned or zombie processes and making restarts less predictable. Restore the default entrypoint and keep only the command: gateway run override unless you have tested an alternative process model.

The container is killed under load

  • Compare actual memory use with the Compose limit of 4 GB.
  • Increase the host capacity or adjust the limit if legitimate workloads exceed it.
  • For browser automation, provide at least 2 GB of RAM as a starting point and allow headroom for the rest of the host.
  • Check logs for out-of-memory events and reduce concurrent automation before lowering the limit.

Operational checklist

  • State: ~/.hermes exists, is backed up, and is mounted at /opt/data.
  • Startup: docker compose up -d completes and docker compose ps shows the service running.
  • Supervision: The image’s default entrypoint remains active; only the gateway command is customized.
  • Ports: Publish 8642 only when the gateway API or dashboard needs it; publish 9119 only when the dashboard is enabled.
  • API security: External API access has API_SERVER_ENABLED=true, an intentional bind host, and an eight-character-or-longer key.
  • Dashboard security: Non-loopback access has an authentication provider, firewall restrictions, and encrypted transport where appropriate.
  • Secrets: Decide whether the mounted .env or injected environment variables fit your threat model, and keep credentials out of source control.
  • Capacity: The host meets the 1 GB/1 core/500 MB minimum, preferably the 2–4 GB/2 core/2 GB-plus baseline, with at least 2 GB RAM available for browser automation.
  • Upgrades: Back up the data directory, run docker compose pull, recreate with docker compose up -d, and inspect logs after migrations.

Recommended production pattern

For most installations, use the persistent bind mount, keep the supervised entrypoint, and start with no public ports. Add port 8642 only for a private API client or dashboard, then add port 9119 only when the dashboard is needed. Keep the dashboard and API on a private network whenever possible; if either must be reachable remotely, configure the required authentication, firewall rules, and encrypted access before opening the host to the internet. This pattern preserves Hermes state while keeping the externally reachable surface as small as the workload allows.

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.

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.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
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.