{"id":269638,"date":"2026-09-11T13:21:09","date_gmt":"2026-09-11T13:21:09","guid":{"rendered":"https:\/\/www.bluehost.com\/blog\/?p=269638"},"modified":"2026-09-11T13:21:14","modified_gmt":"2026-09-11T13:21:14","slug":"hermes-agent-docker","status":"publish","type":"post","link":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/","title":{"rendered":"Hermes Agent Docker: Production Setup Guide That Works"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Hermes Agent Docker setup combines persistent storage, automatic recovery and enough resources to handle your tasks.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The official Docker image separates application files from writable agent data. A persistent data volume preserves config, sessions, memory and logs through container restarts and image updates. Supervised processes help the gateway and optional dashboard service recover when a process fails.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This guide walks you through the setup with Docker Compose. You\u2019ll configure the published image, create a bind mount on your host machine and run services as a non-root Hermes user. You\u2019ll also learn to manage the supervised gateway, monitor resources and handle updates on a Linux host or cloud VPS.&nbsp;<\/p>\n\n\n\n<h2 id=\"h-what-are-the-prerequisites-for-hermes-agent-docker-nbsp\" class=\"wp-block-heading\"><strong>What are the prerequisites for Hermes Agent Docker?<\/strong>&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before running Hermes Agent in a Docker container, prepare the following:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Host machine:<\/strong> Use Ubuntu or Debian with SSH access for a remote server. Docker Desktop supports local testing on Windows or macOS.\u00a0<\/li>\n\n\n\n<li><strong>System resources:<\/strong> Minimum 1 GB RAM and one CPU core. Recommended: 2\u20134 GB RAM and two cores. Browser automation needs at least 2 GB RAM. \u00a0<\/li>\n\n\n\n<li><strong>Docker tools:<\/strong> <a href=\"https:\/\/hermes-agent.nousresearch.com\/docs\/user-guide\/docker\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install Docker Engine<\/a> and Docker Compose. Your host user needs permission to run Docker commands.\u00a0<\/li>\n\n\n\n<li><strong>Credentials:<\/strong> Prepare authentication details for a supported model provider. Add messaging credentials if connecting the gateway to Telegram, Discord or Slack.\u00a0<\/li>\n\n\n\n<li><strong>Persistent storage:<\/strong> Create a host folder and bind mount it to \/opt\/data. This data volume preserves config, memory and sessions across a container restart.\u00a0<\/li>\n\n\n\n<li><strong>Dashboard access:<\/strong> Configure authentication when binding beyond localhost. For public access, use HTTPS through a reverse proxy.\u00a0<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Verify your installation:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker --version&nbsp;\ndocker compose version&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On an Ubuntu or Debian server, enable Docker at boot:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl enable --now docker&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The official Docker image ships with Python, Node.js and core dependencies, so a standard setup requires no separate host installation of these components.&nbsp;<\/p>\n\n\n\n<svg version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" viewBox=\"0 0 1774 621\"> \n<image width=\"1774\" height=\"621\" xlink:href=\"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/04\/hermes-cta-2-1024x358.png\"><\/image> <a xlink:href=\"https:\/\/www.bluehost.com\/vps-hosting\/hermes-agent\"> \n<rect x=\"97\" y=\"487\" fill=\"#fff\" opacity=\"0\" width=\"328\" height=\"100\"><\/rect> \n<\/a> \n<\/svg> \n\n\n\n<p class=\"wp-block-paragraph\"><strong>Also read:<\/strong> <a href=\"https:\/\/www.bluehost.com\/blog\/hermes-agent-n8n-automated-workflows\/\">Hermes Agent + n8n: Build Automated Workflows That Actually Think<\/a>\u00a0<\/p>\n\n\n\n<h2 id=\"h-step-by-step-hermes-agent-docker-setup-production-ready-guide-nbsp-nbsp\" class=\"wp-block-heading\"><strong>Step-by-step Hermes agent docker setup (Production-ready guide)&nbsp;<\/strong>&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This Hermes Agent Docker setup uses persistent storage, automatic recovery and private dashboard access. The official Docker image ships with dependencies and runs supervised services as a non-root Hermes user. Its \/opt\/hermes install tree remains root-owned and read-only to that user. &nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Run the server commands over SSH as the same non-root host user with Docker access. Docker Engine, Docker Compose and OpenSSL should already be installed.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-1-prepare-storage-and-credentials-nbsp\" class=\"wp-block-heading\"><strong>Step 1: Prepare storage and credentials<\/strong>&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Create a project folder and persistent data directory:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p \"$HOME\/hermes\" \"$HOME\/.hermes\"&nbsp;\ncd \"$HOME\/hermes\"&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Generate dashboard credentials and save your host user IDs:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>umask 077&nbsp;\ncat &gt; .env &lt;&lt;EOF&nbsp;\nHERMES_UID=$(id -u)&nbsp;\nHERMES_GID=$(id -g)&nbsp;\nHERMES_DATA_DIR=$HOME\/.hermes&nbsp;\nHERMES_DASHBOARD_BASIC_AUTH_USERNAME=admin&nbsp;\nHERMES_DASHBOARD_BASIC_AUTH_PASSWORD=$(openssl rand -hex 24)&nbsp;\nHERMES_DASHBOARD_BASIC_AUTH_SECRET=$(openssl rand -hex 32)&nbsp;\nEOF&nbsp;\nchmod 600 .env&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Keep this file private. Saving these values ensures Docker Compose reuses the same credentials and user IDs during upgrades. &nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-2-run-the-setup-wizard-nbsp\" class=\"wp-block-heading\"><strong>Step 2: Run the setup wizard<\/strong>&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Use this Docker run command to configure Hermes Agent:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run -it --rm \\&nbsp;\n&nbsp;-e HERMES_UID=\"$(id -u)\" \\&nbsp;\n&nbsp;-e HERMES_GID=\"$(id -g)\" \\&nbsp;\n&nbsp;-v \"$HOME\/.hermes:\/opt\/data\" \\&nbsp;\n&nbsp;nousresearch\/hermes-agent:latest setup&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Choose your model provider and complete authentication. Configure a messaging channel if you plan to use the gateway.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hermes saves application credentials under ~\/.hermes\/.env. This is separate from the Compose settings in ~\/hermes\/.env.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-3-create-the-compose-file-nbsp\" class=\"wp-block-heading\"><strong>Step 3: Create the Compose file<\/strong>&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Save the following as ~\/hermes\/docker-compose.yml:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:&nbsp;\n&nbsp;hermes:&nbsp;\n&nbsp;&nbsp;&nbsp;image: nousresearch\/hermes-agent:latest&nbsp;\n&nbsp;&nbsp;&nbsp;container_name: hermes&nbsp;\n&nbsp;&nbsp;&nbsp;command: gateway run&nbsp;\n&nbsp;&nbsp;&nbsp;restart: unless-stopped&nbsp;\n&nbsp;\n&nbsp;&nbsp;&nbsp;env_file:&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- .env&nbsp;\n&nbsp;\n&nbsp;&nbsp;&nbsp;environment:&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HERMES_DASHBOARD: \"1\"&nbsp;\n&nbsp;\n&nbsp;&nbsp;&nbsp;volumes:&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- \"${HERMES_DATA_DIR:?Set HERMES_DATA_DIR}:\/opt\/data\"&nbsp;\n&nbsp;\n&nbsp;&nbsp;&nbsp;ports:&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- \"127.0.0.1:9119:9119\"&nbsp;\n&nbsp;\n&nbsp;&nbsp;&nbsp;shm_size: \"1g\"&nbsp;\n&nbsp;\n&nbsp;&nbsp;&nbsp;deploy:&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resources:&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;limits:&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memory: 4G&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cpus: \"2.0\"&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The bind mount connects an absolute path on the host machine to \/opt\/data. This data volume preserves config, sessions, memory and logs across container recreation.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The dashboard service runs alongside the supervised gateway. Shared memory supports browser automation. Adjust resource limits to your host capacity.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Keep the default image entrypoint and omit init: true so the s6 supervision tree remains active. Never share this writable data folder between two gateway containers. &nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-4-start-and-verify-hermes-nbsp\" class=\"wp-block-heading\"><strong>Step 4: Start and verify Hermes<\/strong>&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Run these commands from ~\/hermes:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose config --quiet&nbsp;\ndocker compose up -d&nbsp;\ndocker compose ps&nbsp;\ndocker exec hermes hermes gateway status&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Check recent logs:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker logs --tail 100 hermes&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Send a test message through your configured channel to confirm the agent responds.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-5-access-the-dashboard-securely-nbsp\" class=\"wp-block-heading\"><strong>Step 5: Access the dashboard securely<\/strong>&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On your local computer, open an SSH tunnel:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh -N -L 9119:127.0.0.1:9119 your-user@SERVER-IP&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Keep the tunnel running and open http:\/\/127.0.0.1:9119. Sign in using the credentials saved in the server\u2019s ~\/hermes\/.env.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For public dashboard access, configure supported OAuth or OIDC authentication with HTTPS through a reverse proxy. Follow the dashboard guidance for public URLs and trusted proxies. &nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-6-manage-recovery-and-updates-nbsp\" class=\"wp-block-heading\"><strong>Step 6: Manage recovery and updates<\/strong>&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">s6 restarts failed supervised processes. Docker\u2019s unless-stopped policy handles container exits and daemon restarts, while manually stopped containers stay stopped. &nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Task<\/strong>&nbsp;<\/td><td><strong>Command<\/strong>&nbsp;<\/td><\/tr><tr><td>Restart the Hermes gateway&nbsp;<\/td><td>docker exec hermes hermes gateway restart&nbsp;<\/td><\/tr><tr><td>Perform a container restart&nbsp;<\/td><td>docker restart hermes&nbsp;<\/td><\/tr><tr><td>Check resource usage&nbsp;<\/td><td>docker stats &#8211;no-stream hermes&nbsp;<\/td><\/tr><tr><td>Stop Hermes for a backup&nbsp;<\/td><td>docker compose stop&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Back up ~\/.hermes and ~\/hermes\/.env while Hermes is stopped. Then update the published image:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose pull&nbsp;\ndocker compose up -d&nbsp;<\/code><\/pre>\n\n\n\n<h3 id=\"h-optional-add-another-profile-nbsp\" class=\"wp-block-heading\"><strong>Optional: Add another profile<\/strong>&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Create and configure a separate agent profile before starting its gateway:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker exec hermes hermes profile create coder&nbsp;\ndocker exec -it hermes hermes -p coder setup&nbsp;\ndocker exec hermes hermes -p coder gateway start&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Per-profile gateways are registered dynamically as supervised services. Each profile maintains separate configuration, memory and sessions within the same Docker container.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-production-maintenance-checklist-nbsp\" class=\"wp-block-heading\"><strong>Production maintenance checklist<\/strong>&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Keep your Hermes Agent Docker deployment stable with these practices:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Back up the ~\/.hermes data volume regularly.\u00a0<\/li>\n\n\n\n<li>Use restart: unless-stopped for container recovery.\u00a0<\/li>\n\n\n\n<li>Keep the supervised gateway enabled.\u00a0<\/li>\n\n\n\n<li>Monitor CPU and RAM with docker stats.\u00a0<\/li>\n\n\n\n<li>Use authentication for dashboard access.\u00a0<\/li>\n\n\n\n<li>Put public services behind HTTPS and a secure reverse proxy.\u00a0<\/li>\n\n\n\n<li>Avoid running Hermes commands as root unless required.\u00a0<\/li>\n\n\n\n<li>Never share one writable data volume between multiple gateway containers.\u00a0<\/li>\n\n\n\n<li>Pull updated Docker images and recreate containers when upgrading.\u00a0<\/li>\n\n\n\n<li>Use SSH instead of an unreliable browser console for server administration.\u00a0<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This approach keeps the Hermes Agent, Docker image and persistent agent data clearly separated. It also makes upgrades, container recovery and ongoing management easier.&nbsp;<\/p>\n\n\n\n<svg version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" viewBox=\"0 0 1983 608\"> \n<image width=\"1983\" height=\"608\" xlink:href=\"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/04\/hermes-cta-1-1024x314.png\"><\/image> <a xlink:href=\"https:\/\/www.bluehost.com\/vps-hosting\/hermes-agent\"> \n<rect x=\"108\" y=\"428\" fill=\"#fff\" opacity=\"0\" width=\"353\" height=\"114\"><\/rect> \n<\/a> \n<\/svg> \n\n\n\n<h2 id=\"h-common-hermes-agent-docker-problems-and-how-to-fix-them\" class=\"wp-block-heading\">Common Hermes Agent Docker problems and how to fix them<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A Hermes Agent Docker setup can start successfully and still encounter storage, configuration or resource problems. Here\u2019s what to check when workflows stop working.<\/p>\n\n\n\n<h3 id=\"h-1-host-interruptions\" class=\"wp-block-heading\">1. Host interruptions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Docker Desktop supports local testing on Windows or macOS. Problems arise when the host machine sleeps, shuts down or loses network access, interrupting agent workflows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For unattended tasks, use a local server or cloud VPS that stays powered on with reliable connectivity. A restart policy helps recover the Docker container when Docker restarts, but manually stopped containers remain stopped with unless-stopped.<\/p>\n\n\n\n<h3 id=\"h-2-configuration-errors\" class=\"wp-block-heading\">2. Configuration errors<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The official Docker image ships with core dependencies. Its \/opt\/hermes install tree is root-owned and read-only to the non-root Hermes user. Attempts to modify source code or run uv sync there during normal operation can fail.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Build additional dependencies into a custom image. Check permissions on \/opt\/data and preserve the default image entrypoint so supervised processes initialize correctly. If the dashboard service fails to start, confirm that supported authentication is configured when it binds beyond localhost.<\/p>\n\n\n\n<h3 id=\"h-3-missing-persistent-data\" class=\"wp-block-heading\">3. Missing persistent data<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A normal container restart preserves the same container\u2019s writable files. Data loss becomes a risk when that container is removed or recreated without reusable persistent storage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Map a bind mount or named data volume to \/opt\/data in your Docker Compose file. This preserves config, sessions, memory and logs across container replacement. Never point two gateway containers at the same writable folder.<\/p>\n\n\n\n<h3 id=\"h-4-browser-and-scheduling-failures\" class=\"wp-block-heading\">4. Browser and scheduling failures<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Browser automation can fail when RAM or shared memory is insufficient. For browser workloads, allocate at least 2 GB RAM and configure shared memory using:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>shm_size: &#8220;1g&#8221; in the Compose file<\/li>\n\n\n\n<li>&#8211;shm-size=1g in a Docker run command<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These settings address memory requirements; website or network errors still need separate investigation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Scheduled jobs also depend on the gateway. If a job does not run, check the supervised gateway, paused schedules, provider credentials and execution errors. A completed job can also have a separate delivery failure.<\/p>\n\n\n\n<h3 id=\"h-5-resource-bottlenecks\" class=\"wp-block-heading\">5. Resource bottlenecks<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Concurrent tasks can exhaust available CPU or RAM. Check usage with docker stats hermes, then adjust concurrency and resource allocation for the workload. Resource limits control consumption but do not add capacity to the host machine.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hermes supports multiple profiles within one container. Per-profile gateways are registered dynamically as supervised services. Use separate containers when workloads need independent resource limits, image versions or network boundaries, with a separate data folder for each.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Also read:<\/strong> <a href=\"https:\/\/www.bluehost.com\/blog\/run-hermes-agent-vps\/\">How to Run Hermes Agent 24\/7 on a VPS (The Complete 2026 Guide) <\/a>\u00a0<\/p>\n\n\n\n<h2 id=\"h-final-thoughts-nbsp-nbsp\" class=\"wp-block-heading\"><strong>Final thoughts&nbsp;<\/strong>&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Getting Hermes Agent running is easy. Keeping it stable is the real challenge. Most setups fail because they treat it like a simple app, when it actually depends on continuous execution, persistent memory, and a reliable runtime.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A production-ready setup comes down to three things: the right infrastructure, proper container configuration, and strong persistence. Skip any one of these, and issues will show up over time.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Focus on stability over shortcuts. Use isolated environments, map your data correctly, and monitor performance as workloads grow.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you want to simplify the process, we at Bluehost provide a more streamlined path. With our VPS, you can deploy faster using a one-click Hermes setup built into the process, while still keeping full control over your environment.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ready to run Hermes Agent without the setup headaches? Get started with <a href=\"https:\/\/www.bluehost.com\/vps-hosting\/hermes-agent\">Bluehost Hermes VPS <\/a>and launch a stable, production-ready environment today.\u00a0\u00a0<\/p>\n\n\n\n<h2 id=\"h-faqs-nbsp-nbsp\" class=\"wp-block-heading\"><strong>FAQs&nbsp;<\/strong>&nbsp;<\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1789132044444\"><strong class=\"schema-faq-question\">How do I secure my Hermes Agent Docker container in production?<\/strong> <p class=\"schema-faq-answer\">For a production setup, restrict <a href=\"https:\/\/www.bluehost.com\/blog\/vps-dedicated-manage-ports\/\">exposed ports<\/a> and use an SSH tunnel or VPN for private dashboard access. For a public dashboard service, configure supported OAuth or OIDC authentication and HTTPS through a reverse proxy. Protect credential files with restrictive permissions and limit access to the Docker daemon.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1789132068093\"><strong class=\"schema-faq-question\">How do I update the Docker image without losing data?<\/strong> <p class=\"schema-faq-answer\">Stop Hermes and back up the data volume, compose file and environment settings. Keep the bind mount connected to the same absolute path on your host machine, with \/opt\/data as the container mount point. From the project folder, run:<br><code>docker compose pull docker compose up -d<\/code><br>Verify logs and agent responses after updating to the new version.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1789132095463\"><strong class=\"schema-faq-question\">How do I access the Hermes Agent CLI after installation?<\/strong> <p class=\"schema-faq-answer\">Use docker exec to run a command inside your container. For a container named hermes, check gateway status with:<br><code>docker exec hermes hermes gateway status<\/code><br>For an interactive <a href=\"https:\/\/www.bluehost.com\/blog\/bash-script-everything-you-need-to-know\/\">Bash<\/a> session as the Hermes user, run:<br><code>docker exec -it --user hermes hermes bash<\/code><br>These commands provide CLI access without opening another network port.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1789132117446\"><strong class=\"schema-faq-question\">Does Hermes Agent Docker Compose work on Windows?<\/strong> <p class=\"schema-faq-answer\">Yes. Docker Desktop runs Linux containers through WSL2 on supported Windows systems. Keep project files in the WSL Linux filesystem for better bind mount performance. Paths, permissions and resource settings still need attention. For continuous production use, choose a <a href=\"https:\/\/www.bluehost.com\/help\/article\/bh-difference-between-linux-and-windows-hosting\">Linux environment<\/a> or configure the Windows host to remain available.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1789132142819\"><strong class=\"schema-faq-question\">Can I deploy Hermes Agent on Tencent Cloud Lighthouse?<\/strong> <p class=\"schema-faq-answer\">A compatible Linux <a href=\"https:\/\/www.bluehost.com\/blog\/web-hosting-vs-vps-hosting\/\">virtual server<\/a> on Tencent Cloud Lighthouse should support this approach. Tencent documents Docker deployment on the platform. Check that the server architecture matches the published image and allow sufficient CPU, RAM and storage for your <a href=\"https:\/\/www.bluehost.com\/blog\/vps-for-automation-workflows\/\">automation tasks<\/a>. Configure outbound model-provider access and monitor actual workloads to confirm performance.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1789132204908\"><strong class=\"schema-faq-question\">Do I need to install dependencies or modify the source code?<\/strong> <p class=\"schema-faq-answer\">The image ships with Python, Node.js and bundled dependencies. Its build uses uv sync to prepare Python packages. The application install tree at \/opt\/hermes is root owned and read only to the runtime Hermes user. For persistent changes to bundled dependencies or source code, build a derived Docker image.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1789132222274\"><strong class=\"schema-faq-question\">What does the non root Hermes user do?<\/strong> <p class=\"schema-faq-answer\">It runs the main program and supervised processes after initialization. The Hermes CLI wrapper detects root callers and transparently re-executes standard Hermes commands under that account; non root callers proceed directly. Match the runtime UID\/GID to the host user when needed for file ownership. Arbitrary docker exec commands do not automatically drop root privileges.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1789132236901\"><strong class=\"schema-faq-question\">Why should I preserve the default image entrypoint?<\/strong> <p class=\"schema-faq-answer\">The image entrypoint normally launches s6-overlay as PID 1, prepares storage during boot and starts the supervision tree. If another init system owns PID 1, the dispatcher uses a fallback path without s6-supervised services. Keep the default entrypoint and avoid adding &#8211;init to your Docker run command or init: true to the Compose file.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1789132256823\"><strong class=\"schema-faq-question\">Does a Hermes restart require a container restart?<\/strong> <p class=\"schema-faq-answer\">Usually, you can restart only the supervised gateway:<br><code>docker exec hermes hermes gateway restart<\/code><br>In normal gateway mode, s6 restarts a supervised service when it fails while a sleep infinity heartbeat keeps the container alive. With gateway supervision disabled, the gateway acts as the container&#8217;s main process: the container exits when the main program exits and returns its exit code. Inspect docker logs hermes for error details.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1789132280943\"><strong class=\"schema-faq-question\">Can one container run multiple Hermes profiles?<\/strong> <p class=\"schema-faq-answer\">Yes. Per profile gateways are registered dynamically within the supervision tree. Each profile maintains separate config, credentials, memory and sessions. At boot, gateway_state.json helps restore gateways previously recorded as running; explicitly stopped gateways stay stopped. Use separate containers when workloads need independent resource limits, image versions or network isolation. Give each container a separate writable data folder.<\/p> <\/div> <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hermes Agent Docker setup combines persistent storage, automatic recovery and enough resources to handle your tasks.&nbsp; The official Docker image separates application files from writable agent data. A persistent data volume preserves config, sessions, memory and logs through container restarts and image updates. Supervised processes help the gateway and optional dashboard service recover when a [&hellip;]<\/p>\n","protected":false},"author":138,"featured_media":269674,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[3746,3048],"tags":[3330],"ppma_author":[842],"class_list":["post-269638","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hermes-agent","category-vps-hosting","tag-how-to-guides"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.7 (Yoast SEO v27.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Hermes Agent Docker Setup: Production Guide for 2026<\/title>\n<meta name=\"description\" content=\"Learn how to set up Hermes Agent Docker with Docker Compose, persistent storage, secure access and reliable production deployment.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/posts\/269638\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hermes Agent Docker: Production Setup Guide That Works\" \/>\n<meta property=\"og:description\" content=\"Learn how to set up Hermes Agent Docker with Docker Compose, persistent storage, secure access and reliable production deployment.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/\" \/>\n<meta property=\"og:site_name\" content=\"Bluehost Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/bluehost\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-11T13:21:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-11T13:21:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/04\/Hermes-Agent-Docker-Production-Setup.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1672\" \/>\n\t<meta property=\"og:image:height\" content=\"941\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Mohit Sharma\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bluehost\" \/>\n<meta name=\"twitter:site\" content=\"@bluehost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mohit Sharma\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/\"},\"author\":{\"name\":\"Mohit Sharma\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#\\\/schema\\\/person\\\/963ada146537ec6b6cc4d4f02e6c40c8\"},\"headline\":\"Hermes Agent Docker: Production Setup Guide That Works\",\"datePublished\":\"2026-09-11T13:21:09+00:00\",\"dateModified\":\"2026-09-11T13:21:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/\"},\"wordCount\":2109,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Hermes-Agent-Docker-Production-Setup.png\",\"keywords\":[\"How-To Guides\"],\"articleSection\":[\"Hermes Agent\",\"VPS hosting\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#respond\"]}]},{\"@type\":[\"WebPage\",\"FAQPage\"],\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/\",\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/\",\"name\":\"Hermes Agent Docker Setup: Production Guide for 2026\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Hermes-Agent-Docker-Production-Setup.png\",\"datePublished\":\"2026-09-11T13:21:09+00:00\",\"dateModified\":\"2026-09-11T13:21:14+00:00\",\"description\":\"Learn how to set up Hermes Agent Docker with Docker Compose, persistent storage, secure access and reliable production deployment.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#breadcrumb\"},\"mainEntity\":[{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132044444\"},{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132068093\"},{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132095463\"},{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132117446\"},{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132142819\"},{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132204908\"},{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132222274\"},{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132236901\"},{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132256823\"},{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132280943\"}],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Hermes-Agent-Docker-Production-Setup.png\",\"contentUrl\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Hermes-Agent-Docker-Production-Setup.png\",\"width\":1672,\"height\":941},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hosting\",\"item\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/category\\\/hosting\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"VPS hosting\",\"item\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/category\\\/hosting\\\/vps-hosting\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Hermes Agent Docker: Production Setup Guide That Works\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/\",\"name\":\"Bluehost\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#organization\",\"name\":\"Bluehost\",\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/bluehost-logo.svg\",\"contentUrl\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/bluehost-logo.svg\",\"width\":136,\"height\":24,\"caption\":\"Bluehost\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/bluehost\\\/\",\"https:\\\/\\\/x.com\\\/bluehost\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/bluehost-com\\\/\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/bluehost\",\"https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Bluehost\"],\"description\":\"Bluehost is a leading web hosting provider empowering millions of websites worldwide. \\u2028Discover how Bluehost's expertise, reliability, and innovation can help you achieve your online goals.\",\"telephone\":\"+1-888-401-4678\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#\\\/schema\\\/person\\\/963ada146537ec6b6cc4d4f02e6c40c8\",\"name\":\"Mohit Sharma\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ef26790cc4942b0fc60957ce3a9d0854c759a20994b106b99defa5385a80dcca?s=96&d=mm&r=g2db1a2f67f45c93b46c4cb340a8d96bc\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ef26790cc4942b0fc60957ce3a9d0854c759a20994b106b99defa5385a80dcca?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ef26790cc4942b0fc60957ce3a9d0854c759a20994b106b99defa5385a80dcca?s=96&d=mm&r=g\",\"caption\":\"Mohit Sharma\"},\"description\":\"I\u2019m Mohit Sharma, a content writer at Bluehost who focuses on WordPress. I enjoy making complex technical topics easy to understand. When I\u2019m not writing, I\u2019m usually gaming. With skills in HTML, CSS, and modern IT tools, I create clear and straightforward content that explains technical ideas.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/mohitsharma066\\\/\"],\"honorificPrefix\":\"Mr\",\"birthDate\":\"1996-10-06\",\"gender\":\"male\",\"knowsAbout\":[\"HTML\",\"WordPress\",\"Writing\"],\"knowsLanguage\":[\"English\",\"Hindi\"],\"jobTitle\":\"Web Content Writer\",\"worksFor\":\"Newfold Digital\",\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/author\\\/mohit-sharma\\\/\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132044444\",\"position\":1,\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132044444\",\"name\":\"How do I secure my Hermes Agent Docker container in production?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"For a production setup, restrict <a href=\\\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/vps-dedicated-manage-ports\\\/\\\">exposed ports<\\\/a> and use an SSH tunnel or VPN for private dashboard access. For a public dashboard service, configure supported OAuth or OIDC authentication and HTTPS through a reverse proxy. Protect credential files with restrictive permissions and limit access to the Docker daemon.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132068093\",\"position\":2,\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132068093\",\"name\":\"How do I update the Docker image without losing data?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Stop Hermes and back up the data volume, compose file and environment settings. Keep the bind mount connected to the same absolute path on your host machine, with \\\/opt\\\/data as the container mount point. From the project folder, run:<br>docker compose pull docker compose up -d<br>Verify logs and agent responses after updating to the new version.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132095463\",\"position\":3,\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132095463\",\"name\":\"How do I access the Hermes Agent CLI after installation?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Use docker exec to run a command inside your container. For a container named hermes, check gateway status with:<br>docker exec hermes hermes gateway status<br>For an interactive <a href=\\\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/bash-script-everything-you-need-to-know\\\/\\\">Bash<\\\/a> session as the Hermes user, run:<br>docker exec -it --user hermes hermes bash<br>These commands provide CLI access without opening another network port.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132117446\",\"position\":4,\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132117446\",\"name\":\"Does Hermes Agent Docker Compose work on Windows?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Docker Desktop runs Linux containers through WSL2 on supported Windows systems. Keep project files in the WSL Linux filesystem for better bind mount performance. Paths, permissions and resource settings still need attention. For continuous production use, choose a <a href=\\\"https:\\\/\\\/www.bluehost.com\\\/help\\\/article\\\/bh-difference-between-linux-and-windows-hosting\\\">Linux environment<\\\/a> or configure the Windows host to remain available.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132142819\",\"position\":5,\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132142819\",\"name\":\"Can I deploy Hermes Agent on Tencent Cloud Lighthouse?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"A compatible Linux <a href=\\\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/web-hosting-vs-vps-hosting\\\/\\\">virtual server<\\\/a> on Tencent Cloud Lighthouse should support this approach. Tencent documents Docker deployment on the platform. Check that the server architecture matches the published image and allow sufficient CPU, RAM and storage for your <a href=\\\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/vps-for-automation-workflows\\\/\\\">automation tasks<\\\/a>. Configure outbound model-provider access and monitor actual workloads to confirm performance.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132204908\",\"position\":6,\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132204908\",\"name\":\"Do I need to install dependencies or modify the source code?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The image ships with Python, Node.js and bundled dependencies. Its build uses uv sync to prepare Python packages. The application install tree at \\\/opt\\\/hermes is root owned and read only to the runtime Hermes user. For persistent changes to bundled dependencies or source code, build a derived Docker image.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132222274\",\"position\":7,\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132222274\",\"name\":\"What does the non root Hermes user do?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"It runs the main program and supervised processes after initialization. The Hermes CLI wrapper detects root callers and transparently re-executes standard Hermes commands under that account; non root callers proceed directly. Match the runtime UID\\\/GID to the host user when needed for file ownership. Arbitrary docker exec commands do not automatically drop root privileges.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132236901\",\"position\":8,\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132236901\",\"name\":\"Why should I preserve the default image entrypoint?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The image entrypoint normally launches s6-overlay as PID 1, prepares storage during boot and starts the supervision tree. If another init system owns PID 1, the dispatcher uses a fallback path without s6-supervised services. Keep the default entrypoint and avoid adding --init to your Docker run command or init: true to the Compose file.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132256823\",\"position\":9,\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132256823\",\"name\":\"Does a Hermes restart require a container restart?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Usually, you can restart only the supervised gateway:<br>docker exec hermes hermes gateway restart<br>In normal gateway mode, s6 restarts a supervised service when it fails while a sleep infinity heartbeat keeps the container alive. With gateway supervision disabled, the gateway acts as the container's main process: the container exits when the main program exits and returns its exit code. Inspect docker logs hermes for error details.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132280943\",\"position\":10,\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/hermes-agent-docker\\\/#faq-question-1789132280943\",\"name\":\"Can one container run multiple Hermes profiles?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Per profile gateways are registered dynamically within the supervision tree. Each profile maintains separate config, credentials, memory and sessions. At boot, gateway_state.json helps restore gateways previously recorded as running; explicitly stopped gateways stay stopped. Use separate containers when workloads need independent resource limits, image versions or network isolation. Give each container a separate writable data folder.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Hermes Agent Docker Setup: Production Guide for 2026","description":"Learn how to set up Hermes Agent Docker with Docker Compose, persistent storage, secure access and reliable production deployment.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/posts\/269638\/","og_locale":"en_US","og_type":"article","og_title":"Hermes Agent Docker: Production Setup Guide That Works","og_description":"Learn how to set up Hermes Agent Docker with Docker Compose, persistent storage, secure access and reliable production deployment.","og_url":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/","og_site_name":"Bluehost Blog","article_publisher":"https:\/\/www.facebook.com\/bluehost\/","article_published_time":"2026-09-11T13:21:09+00:00","article_modified_time":"2026-09-11T13:21:14+00:00","og_image":[{"width":1672,"height":941,"url":"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/04\/Hermes-Agent-Docker-Production-Setup.png","type":"image\/png"}],"author":"Mohit Sharma","twitter_card":"summary_large_image","twitter_creator":"@bluehost","twitter_site":"@bluehost","twitter_misc":{"Written by":"Mohit Sharma","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#article","isPartOf":{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/"},"author":{"name":"Mohit Sharma","@id":"https:\/\/www.bluehost.com\/blog\/#\/schema\/person\/963ada146537ec6b6cc4d4f02e6c40c8"},"headline":"Hermes Agent Docker: Production Setup Guide That Works","datePublished":"2026-09-11T13:21:09+00:00","dateModified":"2026-09-11T13:21:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/"},"wordCount":2109,"commentCount":0,"publisher":{"@id":"https:\/\/www.bluehost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/04\/Hermes-Agent-Docker-Production-Setup.png","keywords":["How-To Guides"],"articleSection":["Hermes Agent","VPS hosting"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#respond"]}]},{"@type":["WebPage","FAQPage"],"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/","url":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/","name":"Hermes Agent Docker Setup: Production Guide for 2026","isPartOf":{"@id":"https:\/\/www.bluehost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#primaryimage"},"image":{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/04\/Hermes-Agent-Docker-Production-Setup.png","datePublished":"2026-09-11T13:21:09+00:00","dateModified":"2026-09-11T13:21:14+00:00","description":"Learn how to set up Hermes Agent Docker with Docker Compose, persistent storage, secure access and reliable production deployment.","breadcrumb":{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#breadcrumb"},"mainEntity":[{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132044444"},{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132068093"},{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132095463"},{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132117446"},{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132142819"},{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132204908"},{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132222274"},{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132236901"},{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132256823"},{"@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132280943"}],"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#primaryimage","url":"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/04\/Hermes-Agent-Docker-Production-Setup.png","contentUrl":"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/04\/Hermes-Agent-Docker-Production-Setup.png","width":1672,"height":941},{"@type":"BreadcrumbList","@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.bluehost.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Hosting","item":"https:\/\/www.bluehost.com\/blog\/category\/hosting\/"},{"@type":"ListItem","position":3,"name":"VPS hosting","item":"https:\/\/www.bluehost.com\/blog\/category\/hosting\/vps-hosting\/"},{"@type":"ListItem","position":4,"name":"Hermes Agent Docker: Production Setup Guide That Works"}]},{"@type":"WebSite","@id":"https:\/\/www.bluehost.com\/blog\/#website","url":"https:\/\/www.bluehost.com\/blog\/","name":"Bluehost","description":"","publisher":{"@id":"https:\/\/www.bluehost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.bluehost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.bluehost.com\/blog\/#organization","name":"Bluehost","url":"https:\/\/www.bluehost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bluehost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2023\/08\/bluehost-logo.svg","contentUrl":"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2023\/08\/bluehost-logo.svg","width":136,"height":24,"caption":"Bluehost"},"image":{"@id":"https:\/\/www.bluehost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/bluehost\/","https:\/\/x.com\/bluehost","https:\/\/www.linkedin.com\/company\/bluehost-com\/","https:\/\/www.youtube.com\/user\/bluehost","https:\/\/en.wikipedia.org\/wiki\/Bluehost"],"description":"Bluehost is a leading web hosting provider empowering millions of websites worldwide. \u2028Discover how Bluehost's expertise, reliability, and innovation can help you achieve your online goals.","telephone":"+1-888-401-4678"},{"@type":"Person","@id":"https:\/\/www.bluehost.com\/blog\/#\/schema\/person\/963ada146537ec6b6cc4d4f02e6c40c8","name":"Mohit Sharma","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ef26790cc4942b0fc60957ce3a9d0854c759a20994b106b99defa5385a80dcca?s=96&d=mm&r=g2db1a2f67f45c93b46c4cb340a8d96bc","url":"https:\/\/secure.gravatar.com\/avatar\/ef26790cc4942b0fc60957ce3a9d0854c759a20994b106b99defa5385a80dcca?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ef26790cc4942b0fc60957ce3a9d0854c759a20994b106b99defa5385a80dcca?s=96&d=mm&r=g","caption":"Mohit Sharma"},"description":"I\u2019m Mohit Sharma, a content writer at Bluehost who focuses on WordPress. I enjoy making complex technical topics easy to understand. When I\u2019m not writing, I\u2019m usually gaming. With skills in HTML, CSS, and modern IT tools, I create clear and straightforward content that explains technical ideas.","sameAs":["https:\/\/www.linkedin.com\/in\/mohitsharma066\/"],"honorificPrefix":"Mr","birthDate":"1996-10-06","gender":"male","knowsAbout":["HTML","WordPress","Writing"],"knowsLanguage":["English","Hindi"],"jobTitle":"Web Content Writer","worksFor":"Newfold Digital","url":"https:\/\/www.bluehost.com\/blog\/author\/mohit-sharma\/"},{"@type":"Question","@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132044444","position":1,"url":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132044444","name":"How do I secure my Hermes Agent Docker container in production?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"For a production setup, restrict <a href=\"https:\/\/www.bluehost.com\/blog\/vps-dedicated-manage-ports\/\">exposed ports<\/a> and use an SSH tunnel or VPN for private dashboard access. For a public dashboard service, configure supported OAuth or OIDC authentication and HTTPS through a reverse proxy. Protect credential files with restrictive permissions and limit access to the Docker daemon.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132068093","position":2,"url":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132068093","name":"How do I update the Docker image without losing data?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Stop Hermes and back up the data volume, compose file and environment settings. Keep the bind mount connected to the same absolute path on your host machine, with \/opt\/data as the container mount point. From the project folder, run:<br>docker compose pull docker compose up -d<br>Verify logs and agent responses after updating to the new version.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132095463","position":3,"url":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132095463","name":"How do I access the Hermes Agent CLI after installation?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Use docker exec to run a command inside your container. For a container named hermes, check gateway status with:<br>docker exec hermes hermes gateway status<br>For an interactive <a href=\"https:\/\/www.bluehost.com\/blog\/bash-script-everything-you-need-to-know\/\">Bash<\/a> session as the Hermes user, run:<br>docker exec -it --user hermes hermes bash<br>These commands provide CLI access without opening another network port.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132117446","position":4,"url":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132117446","name":"Does Hermes Agent Docker Compose work on Windows?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Yes. Docker Desktop runs Linux containers through WSL2 on supported Windows systems. Keep project files in the WSL Linux filesystem for better bind mount performance. Paths, permissions and resource settings still need attention. For continuous production use, choose a <a href=\"https:\/\/www.bluehost.com\/help\/article\/bh-difference-between-linux-and-windows-hosting\">Linux environment<\/a> or configure the Windows host to remain available.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132142819","position":5,"url":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132142819","name":"Can I deploy Hermes Agent on Tencent Cloud Lighthouse?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"A compatible Linux <a href=\"https:\/\/www.bluehost.com\/blog\/web-hosting-vs-vps-hosting\/\">virtual server<\/a> on Tencent Cloud Lighthouse should support this approach. Tencent documents Docker deployment on the platform. Check that the server architecture matches the published image and allow sufficient CPU, RAM and storage for your <a href=\"https:\/\/www.bluehost.com\/blog\/vps-for-automation-workflows\/\">automation tasks<\/a>. Configure outbound model-provider access and monitor actual workloads to confirm performance.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132204908","position":6,"url":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132204908","name":"Do I need to install dependencies or modify the source code?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"The image ships with Python, Node.js and bundled dependencies. Its build uses uv sync to prepare Python packages. The application install tree at \/opt\/hermes is root owned and read only to the runtime Hermes user. For persistent changes to bundled dependencies or source code, build a derived Docker image.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132222274","position":7,"url":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132222274","name":"What does the non root Hermes user do?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"It runs the main program and supervised processes after initialization. The Hermes CLI wrapper detects root callers and transparently re-executes standard Hermes commands under that account; non root callers proceed directly. Match the runtime UID\/GID to the host user when needed for file ownership. Arbitrary docker exec commands do not automatically drop root privileges.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132236901","position":8,"url":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132236901","name":"Why should I preserve the default image entrypoint?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"The image entrypoint normally launches s6-overlay as PID 1, prepares storage during boot and starts the supervision tree. If another init system owns PID 1, the dispatcher uses a fallback path without s6-supervised services. Keep the default entrypoint and avoid adding --init to your Docker run command or init: true to the Compose file.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132256823","position":9,"url":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132256823","name":"Does a Hermes restart require a container restart?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Usually, you can restart only the supervised gateway:<br>docker exec hermes hermes gateway restart<br>In normal gateway mode, s6 restarts a supervised service when it fails while a sleep infinity heartbeat keeps the container alive. With gateway supervision disabled, the gateway acts as the container's main process: the container exits when the main program exits and returns its exit code. Inspect docker logs hermes for error details.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132280943","position":10,"url":"https:\/\/www.bluehost.com\/blog\/hermes-agent-docker\/#faq-question-1789132280943","name":"Can one container run multiple Hermes profiles?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Yes. Per profile gateways are registered dynamically within the supervision tree. Each profile maintains separate config, credentials, memory and sessions. At boot, gateway_state.json helps restore gateways previously recorded as running; explicitly stopped gateways stay stopped. Use separate containers when workloads need independent resource limits, image versions or network isolation. Give each container a separate writable data folder.","inLanguage":"en-US"},"inLanguage":"en-US"}]}},"authors":[{"term_id":842,"user_id":138,"is_guest":0,"slug":"mohit-sharma","display_name":"Mohit Sharma","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/ef26790cc4942b0fc60957ce3a9d0854c759a20994b106b99defa5385a80dcca?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":"","9":"","10":"","11":"","12":"","13":"","14":"","15":""}],"_links":{"self":[{"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/posts\/269638","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/users\/138"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/comments?post=269638"}],"version-history":[{"count":4,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/posts\/269638\/revisions"}],"predecessor-version":[{"id":279999,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/posts\/269638\/revisions\/279999"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/media\/269674"}],"wp:attachment":[{"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/media?parent=269638"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/categories?post=269638"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/tags?post=269638"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=269638"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}