services: agent: build: . container_name: hermes-brain env_file: - .env volumes: - .:/app/hermes_code:ro - ${HERMES_DATA_PATH}/config.yaml:/app/hermes_data/config.yaml:ro - ${HERMES_DATA_PATH}/SOUL.md:/app/hermes_data/SOUL.md:ro - ./.env:/app/hermes_data/.env:ro - ${HERMES_DATA_PATH}/state.db:/app/hermes_data/state.db:rw - ${HERMES_DATA_PATH}/sessions:/app/hermes_data/sessions:rw - ${HERMES_DATA_PATH}/logs:/app/hermes_data/logs:rw - ${HERMES_DATA_PATH}/skills:/app/hermes_data/skills:rw - ${HERMES_DATA_PATH}/sandboxes:/app/hermes_data/sandboxes:rw - ${HERMES_DATA_PATH}/memories:/app/hermes_data/memories:rw - ${HERMES_WORKSPACE_PATH}/hermes:/app/hermes_data/workspace:rw environment: - BROWSER_URL=http://browser:9222 depends_on: - browser stdin_open: true tty: true restart: always networks: - hermes-net deploy: resources: limits: memory: 1.5G browser: build: context: ./browser_env dockerfile: Dockerfile.browser container_name: hermes-browser networks: hermes-net: aliases: - browser shm_size: '2gb' volumes: - browser_profiles:/src/browser_data restart: always tunnel: image: cloudflare/cloudflared:latest container_name: hermes-tunnel restart: always command: tunnel --url http://browser:6080 networks: - hermes-net volumes: browser_profiles: networks: hermes-net: driver: bridge # Optional: SSL configuration if needed # extra_hosts: # - "host.docker.internal:host-gateway" # Uncomment the following if you need persistent logging or data # volumes: # - ./logs:/tmp/logs