Compare commits
13 Commits
fix/matrix
...
fix/remove
| Author | SHA1 | Date | |
|---|---|---|---|
| d8a1ebcd96 | |||
| 567850bd13 | |||
| 2d59bb44c3 | |||
| bf56d4be8b | |||
| 1c8efb1090 | |||
| 7725830e6c | |||
| 548e15d6b4 | |||
| 35aa466e87 | |||
| 2ff99b1f57 | |||
| dea1429a5d | |||
|
|
2aab06cc1a | ||
|
|
a404f5e2c4 | ||
|
|
f9afd79f3e |
20
ai/compose.yml
Normal file → Executable file
20
ai/compose.yml
Normal file → Executable file
@@ -31,20 +31,8 @@ services:
|
|||||||
ssh:
|
ssh:
|
||||||
- default
|
- default
|
||||||
container_name: hermes
|
container_name: hermes
|
||||||
# Install Matrix bridge deps (mautrix[encryption]) + openai into the venv at startup.
|
|
||||||
# Ensures the venv is usable even on first boot with empty persistent volume.
|
|
||||||
entrypoint: ["/bin/bash", "-c",
|
entrypoint: ["/bin/bash", "-c",
|
||||||
"bash /opt/data/hermes-tools/install.sh && \
|
"bash /opt/data/hermes-tools/install.sh && bash /opt/data/hermes-tools/run-multi-gateways.sh && exec /usr/bin/tini -g -- /opt/hermes/docker/entrypoint.sh \"$@\"",
|
||||||
if [ ! -f /opt/hermes/.venv/bin/python3 ]; then \
|
|
||||||
uv venv /opt/hermes/.venv --seed && \
|
|
||||||
. /opt/hermes/.venv/bin/activate && \
|
|
||||||
uv pip install --no-cache-dir --no-deps -e /opt/hermes && \
|
|
||||||
uv pip install --no-cache-dir piper-tts sounddevice numpy; \
|
|
||||||
else \
|
|
||||||
. /opt/hermes/.venv/bin/activate; \
|
|
||||||
fi && \
|
|
||||||
uv pip install openai 'mautrix[encryption]' -q && \
|
|
||||||
exec /usr/bin/tini -g -- /opt/hermes/docker/entrypoint.sh \"$@\"",
|
|
||||||
"hermes-entrypoint"]
|
"hermes-entrypoint"]
|
||||||
restart: always
|
restart: always
|
||||||
# Gateway run enables the internal API server on port 8642
|
# Gateway run enables the internal API server on port 8642
|
||||||
@@ -52,6 +40,10 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- OLLAMA_HOST=http://ollama:11434
|
- OLLAMA_HOST=http://ollama:11434
|
||||||
- HERMES_DASHBOARD=1
|
- HERMES_DASHBOARD=1
|
||||||
|
# Multi-profile: comma-separated list of profiles to run as gateways.
|
||||||
|
# The entrypoint reads this and starts one gateway per profile.
|
||||||
|
# Add profiles here when they exist on disk (e.g. default,researcher,writer)
|
||||||
|
- HERMES_PROFILES=ashley,claire,finn,matt,paul
|
||||||
- API_SERVER_ENABLED=true
|
- API_SERVER_ENABLED=true
|
||||||
- API_SERVER_PORT=8642
|
- API_SERVER_PORT=8642
|
||||||
- API_SERVER_HOST=0.0.0.0
|
- API_SERVER_HOST=0.0.0.0
|
||||||
@@ -71,8 +63,6 @@ services:
|
|||||||
- /mnt/HoardingCow_docker_data/Syncthing/telos-ro:/opt/data/telos-ro:ro
|
- /mnt/HoardingCow_docker_data/Syncthing/telos-ro:/opt/data/telos-ro:ro
|
||||||
# Syncthing-shared inbox — write tasks here, they sync to user's laptop
|
# Syncthing-shared inbox — write tasks here, they sync to user's laptop
|
||||||
- /mnt/HoardingCow_docker_data/Syncthing/telos-rw:/opt/data/telos-rw:rw
|
- /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:
|
devices:
|
||||||
- /dev/kfd:/dev/kfd
|
- /dev/kfd:/dev/kfd
|
||||||
- /dev/dri:/dev/dri
|
- /dev/dri:/dev/dri
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ USER root
|
|||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
libportaudio2 ca-certificates poppler-utils imagemagick \
|
libportaudio2 ca-certificates poppler-utils imagemagick \
|
||||||
|
libolm-dev \
|
||||||
texlive-latex-base texlive-latex-extra texlive-fonts-recommended \
|
texlive-latex-base texlive-latex-extra texlive-fonts-recommended \
|
||||||
texlive-xetex texlive-science \
|
texlive-xetex texlive-science \
|
||||||
qemu-user-static binfmt-support emacs-nox && \
|
qemu-user-static binfmt-support emacs-nox && \
|
||||||
@@ -42,6 +43,12 @@ RUN apt-get update && \
|
|||||||
# ---------- UV ----------
|
# ---------- UV ----------
|
||||||
COPY --chmod=0755 --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/
|
COPY --chmod=0755 --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/
|
||||||
|
|
||||||
|
# ---------- Matrix bridge + extra pip deps ----------
|
||||||
|
# Previously installed inline at container startup and persisted via volume mount.
|
||||||
|
# Now baked into the image so the fragile venv volume mount can be removed.
|
||||||
|
RUN . /opt/hermes/.venv/bin/activate && \
|
||||||
|
uv pip install --no-cache-dir 'mautrix[encryption]' openai
|
||||||
|
|
||||||
# ---------- Piper TTS ----------
|
# ---------- Piper TTS ----------
|
||||||
RUN . /opt/hermes/.venv/bin/activate && \
|
RUN . /opt/hermes/.venv/bin/activate && \
|
||||||
uv pip install --no-cache-dir piper-tts sounddevice numpy && \
|
uv pip install --no-cache-dir piper-tts sounddevice numpy && \
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# This file was replaced by inline entrypoint logic in compose.yml
|
|
||||||
# See ai/compose.yml hermes.entrypoint for the current implementation.
|
|
||||||
echo "startup.sh is obsolete — logic is inline in compose.yml entrypoint"
|
|
||||||
Reference in New Issue
Block a user