
Hermes Agent is an open-source, self-hosted AI agent developed by Nous Research. It features persistent memory, autonomous skill creation, and multi-platform messaging integrations including Telegram, Discord, Slack, and WhatsApp. Unlike chatbot wrappers or IDE-bound copilots, Hermes Agent runs continuously on your server, learns from interactions, and improves its capabilities over time.
This article explains how to deploy Hermes Agent on a Linux server using Docker Compose with Traefik for automatic HTTPS. It covers directory setup, environment configuration, LLM provider setup (including free access via Nous Portal and optional integration with Vultr Serverless Inference), and demonstrates the application by creating a task and verifying persistent memory.
Before you begin, you need to:
hermes.example.com).Hermes Agent stores all user data including configuration, API keys, sessions, skills, and memories in a persistent data directory. The Docker container mounts this directory to preserve state across restarts and upgrades.
Create the project directory with subdirectories for persistent data.
data/: Persists Hermes Agent configuration, sessions, skills, and memory files.Navigate to the project directory.
Create the environment file.
Add the following configuration. Replace hermes.example.com with your domain name and admin@example.com with your email address.
Save and close the file.
Docker Compose orchestrates the Hermes Agent gateway, dashboard, and Traefik reverse proxy. The gateway handles messaging integrations and agent execution, while the dashboard provides a web interface for monitoring and configuration. This setup extends the official Docker deployment guide with Traefik for automatic HTTPS and basic authentication.
Generate a hashed password file for Traefik basic authentication. Replace DASHBOARD_USERNAME with your preferred username and STRONG_DASHBOARD_PASSWORD with a secure password.
Create the Docker Compose file.
Add the following configuration.
Save and close the file.
In the above manifest:
.htpasswd file for basic authentication.--insecure flag allows binding to 0.0.0.0, which is safe because Traefik handles HTTPS. The basicauth.usersfile label configures basic authentication for dashboard access../data mount persists all Hermes Agent state including OAuth tokens from Nous Portal. The letsencrypt volume stores TLS certificates.Build and start all services in detached mode.
Verify all services are running.
Output:
View the logs for the services.
For more information on managing a Docker Compose stack, see the How To Use Docker Compose article.
After deployment, configure your LLM provider and access the dashboard.
Configure your LLM provider using the hermes model command.
Select your preferred provider. For free access, choose Nous Portal and complete the OAuth authentication flow. You can also select OpenAI, Anthropic, OpenRouter, or other providers and enter API keys when prompted. For Vultr Serverless Inference, see the optional configuration section later in this article. The configuration is saved to the data directory and persists across container restarts.
Open a web browser and navigate to https://hermes.example.com. Replace hermes.example.com with your configured domain.
Enter the basic authentication credentials when prompted (the DASHBOARD_USERNAME and STRONG_DASHBOARD_PASSWORD you used when generating the .htpasswd file).
Verify the dashboard displays the agent status and active sessions.
Navigate to the Config section in the dashboard to review model settings, memory preferences, and messaging integrations.
Testing core agent functionality confirms that memory persistence, skill execution, and the LLM integration work correctly.
Open a terminal session with the agent.
This opens an interactive chat session with the Hermes Agent.
Send a test message to verify the LLM connection.
The agent responds with its capabilities and confirms the configured LLM provider (Nous Portal, OpenAI, Anthropic, or OpenRouter) is working.
Test persistent memory by asking the agent to remember information.
Exit the chat session by typing /exit or Ctrl+C, then start a new session.
Verify memory persistence by asking about the stored information.
The agent recalls the previously stored information, confirming persistent memory is working.
Test a built-in tool by asking the agent to perform a task.
The agent uses its tools to retrieve and display the current timestamp.
Hermes Agent supports custom model providers through OpenAI-compatible endpoints. Configure Vultr Serverless Inference as a model provider to access additional AI models.
Hermes Agent requires a model that supports tool calling. Model availability can change over time, so verify the current supported models in the Vultr Console or through the Inference API before selecting one for Hermes.
Enable Vultr Serverless Inference in the Vultr Console and copy your API key.
Add your Vultr API key to the environment file. Replace YOUR-VULTR-API-KEY with your Vultr API key.
Add the following line:
Save and close the file.
Edit the Hermes configuration file.
Find the providers: {} line and replace it with the Vultr configuration:
Save and close the file.
Restart the Hermes services to apply the new configuration.
Start an interactive chat session. Pass the environment file so the Vultr provider is available in the model picker.
Switch to a Vultr model using the model picker. Type /model to open the interactive picker.
Select vultr from the provider list, then choose a model such as moonshotai/Kimi-K2.6 or deepseek-ai/DeepSeek-V4-Pro.
Verify the model responds correctly by sending a test message.
Output:
The agent responds with its model name and confirms it is served via Vultr, indicating the integration works correctly.
You have deployed Hermes Agent on a Linux server using Docker Compose with Traefik for automatic HTTPS and basic authentication for dashboard access. The setup provides a self-hosted AI agent with persistent memory, autonomous skill creation, and support for multiple LLM providers including Nous Portal (free MiMo v2 Pro access), OpenAI, Anthropic, OpenRouter, and Vultr Serverless Inference. For messaging platform integrations, scheduled automations, and advanced configuration, refer to the official Hermes Agent documentation.
0 Comments
Be the first to comment and share your perspective with the community.