diff --git a/ai/compose.yml b/ai/compose.yml old mode 100644 new mode 100755 index dbd15d1..e6c6ffa --- a/ai/compose.yml +++ b/ai/compose.yml @@ -32,11 +32,9 @@ services: - default container_name: hermes entrypoint: ["/bin/bash", "-c", - "bash /opt/data/hermes-tools/install.sh && exec /usr/bin/tini -g -- /opt/hermes/docker/entrypoint.sh \"$@\"", + "bash /opt/data/hermes-tools/install.sh && . /opt/hermes/.venv/bin/activate && uv pip install openai 'mautrix[encryption]' -q && exec /usr/bin/tini -g -- /opt/hermes/docker/entrypoint.sh \"$@\"", "hermes-entrypoint"] restart: always - # Gateway run enables the internal API server on port 8642 - command: gateway run environment: - OLLAMA_HOST=http://ollama:11434 - API_SERVER_ENABLED=true @@ -59,6 +57,12 @@ services: - TZ=America/Montreal volumes: - /mnt/HoardingCow_docker_data/Hermes/data:/opt/data + # Syncthing-shared org files — read-only view of user's agenda + - /mnt/HoardingCow_docker_data/Syncthing/telos-ro:/opt/data/telos-ro:ro + # Syncthing-shared inbox — write tasks here, they sync to user's laptop + - /mnt/HoardingCow_docker_data/Syncthing/telos-rw:/opt/data/telos-rw:rw + # Persist Python venv across container recreation (Matrix bridge deps, etc.) + - /mnt/HoardingCow_docker_data/Hermes/venv:/opt/hermes/.venv devices: - /dev/kfd:/dev/kfd - /dev/dri:/dev/dri @@ -71,6 +75,35 @@ services: - openviking - honcho + syncthing: + image: syncthing/syncthing:latest + container_name: syncthing + hostname: syncthing + restart: always + ports: + - "8384:8384" + - "22000:22000" + - "21027:21027/udp" + environment: + - TZ=America/Montreal + volumes: + - /mnt/HoardingCow_docker_data/Syncthing/config:/var/syncthing/config + - /mnt/HoardingCow_docker_data/Syncthing/telos-ro:/telos-ro + - /mnt/HoardingCow_docker_data/Syncthing/telos-rw:/telos-rw + networks: + - ai_backend + - ai_net + labels: + - "traefik.enable=true" + - "traefik.http.routers.syncthing-http.rule=Host(`syncthing.lazyworkhorse.net`)" + - "traefik.http.routers.syncthing-http.entrypoints=web" + - "traefik.http.routers.syncthing-http.middlewares=redirect-to-https" + - "traefik.http.routers.syncthing-https.rule=Host(`syncthing.lazyworkhorse.net`)" + - "traefik.http.routers.syncthing-https.entrypoints=websecure" + - "traefik.http.routers.syncthing-https.tls=true" + - "traefik.http.routers.syncthing-https.tls.certresolver=njalla" + - "traefik.http.services.syncthing.loadbalancer.server.port=8384" + ollama: build: context: ./ollama