A Docker-based deployment for the Hermes backend and frontend applications.
Follow these steps to set up and run Hermes using Docker:
Create a folder for Hermes-related repos:
mkdir hermes && cd hermesClone Hermes repos:
git clone https://github.com/toadmaninteractive/hermes-backend
git clone https://github.com/toadmaninteractive/hermes-frontend
git clone https://github.com/toadmaninteractive/hermes-dockerOpen hermes-backend dir and run:
docker build -t hermes-backend:latest .Open hermes-frontend dir and run:
docker build -t hermes-frontend:latest --build-arg BUILD_ENV=production .docker network create hermesOpen hermes-docker dir and create a configuration file from an example:
cp config.yaml.example config.yamlEdit the config.yaml file:
- Fill in your LDAP settings (LDAP server address and bind user CN / password)
- Set
admin_groupto the correct group name containing users who will be Hermes administrators
docker compose up -dConnect to the Hermes backend interactive console:
docker compose exec hermes-backend /app/bin/server remote --sname remote --cookie hcookie --remsh hermes_localIn the console, type the following commands:
Repo.Seeds.run(:prod)
Hermes.sync_ldap()Exit the console by pressing Ctrl+G, then Q, and finally Enter.
After completing the Quickstart guide, Hermes will be running in Docker containers. To access the web interface through a browser, you'll need to set up a reverse proxy.
We provide two recommended approaches:
Configure a local proxy server such as nginx to route traffic to the Hermes containers.
We provide a pre-configured Traefik setup for production deployments. Traefik automatically handles SSL termination, load balancing, and routing.
- Registered domain name pointing to your server
- SSL certificates (certificate chain and private key)
- Prepare SSL certificates
- Save your certificate chain as
cert_key_chain.crt - Save your private key as
private.key - Place both files in the traefik/certs directory
- Configure your domain
- Edit
traefik/conf/dynamic/hermes.yml - Replace
hermes.yourcompany.comwith your actual domain name
- Start Traefik
Run this command from the docker directory:
docker compose up -d- Stop Traefik
Run this command from the docker directory:
docker compose downAfter starting Traefik, access Hermes at https://your-domain.com (replace with your actual domain). The proxy automatically handles SSL encryption and redirects HTTP traffic to HTTPS.
- Ensure your firewall allows traffic on ports 80 (HTTP) and 443 (HTTPS)
- DNS records should point to your server's public IP address
- Certificate files must be in PEM format
- Traefik automatically monitors container changes and updates routing accordingly