Commit Graph

48 Commits

Author SHA1 Message Date
fc777e2de2 fix: target only gfx906 for HIP compilation
gfx940/gfx1010/gfx1030/gfx1100 cause C++ narrowing errors in ollama's
mma.cuh with hipcc. Since we only have MI50 (gfx906) cards, compile
for gfx906 only. Reduces build time and avoids upstream code bugs.
2026-05-09 23:07:39 -04:00
d52f18b0fa fix: remove gfx1200 target (not supported by ROCm 6.1 clang 17)
ROCm 6.1's AMD clang 17 doesn't recognize gfx1200 architecture
(introduced in ROCm 6.2+). Caused compilation failure on all .cu files.
2026-05-09 22:53:11 -04:00
0d87fb2556 fix: build CPU and HIP backends separately
CPU backends compiled with GCC (fixes AVX intrinsic errors from hipcc).
HIP backend compiled with hipcc (legacy mode skips enable_language(HIP)).
Go binary built with GCC for CGo linking.
This avoids both CMAKE_HIP_COMPILER rejection and CXX=hipcc CPU failures.
2026-05-09 22:51:13 -04:00
f6bc2b07a7 fix: remove nonexistent CC=clang for Go build step
ROCm 6.1 image doesn't have clang/clang++ in PATH (only amdclang++).
GCC is the default and works fine for CGo linking.
2026-05-09 22:41:18 -04:00
aa6bbe87bf fix: correct AMDGPU_TARGETS to include gfx940/gfx1010/gfx1200
Targets were corrupted during previous patch iterations, contained
gfx908/gfx90a from the CMake preset instead of gfx940/gfx1010/gfx1200.
2026-05-09 22:40:40 -04:00
0c612d9731 fix: remove unsupported AMDGPU_TARGETS (gfx1200) for ROCm 6.1
ROCm 6.1's AMD clang 17 doesn't support gfx1200 (RDNA4).
Use only targets supported by ROCm 6.1: gfx906, gfx908, gfx90a, gfx1030, gfx1100.
2026-05-09 22:30:21 -04:00
5b210fe624 fix: use ROCm amdclang++ as HIP compiler, keep GCC for CPU code
Setting CXX=hipcc caused compilation failures on CPU backends (AVX
intrinsics). Now using GCC for CPU, ROCm's amdclang++ for HIP only.
2026-05-09 22:29:10 -04:00
d8b77c97c3 fix: use CXX=hipcc legacy mode for HIP CMake build
CMake 3.31 refuses CMAKE_HIP_COMPILER=hipcc with 'not supported'.
Using CXX=hipcc triggers the legacy HIP detection path which works.
2026-05-09 22:20:44 -04:00
a3d0fa0072 fix: set CMAKE_HIP_COMPILER explicitly for ROCm 6.1 HIP detection 2026-05-09 22:19:50 -04:00
956d76f14d fix: add unzip dependency for ninja installation 2026-05-09 22:14:53 -04:00
c6d2f5918f fix: use ollama v0.23.2 native CMake build system for ROCm 6 + gfx906
The old Dockerfile used the deprecated llama.cpp/ subdirectory approach
which doesn't exist in ollama v0.23.2. Now using the official CMake
presets (ROCm 6 preset) with AMDGPU_TARGETS including gfx906:xnack-.
2026-05-09 22:13:47 -04:00
f023dc1ee4 fix: update ollama Dockerfile to v0.23.2 with proper ROCm 6.1 + gfx906 build
- Update OLLAMA_VERSION from v0.13.5 to v0.23.2
- Fix package: golang -> golang-go
- Add ENV HCC_AMDGPU_TARGET=gfx906 and HSA_ENABLE_SDMA=0
- Set proper ENTRYPOINT + CMD
2026-05-09 21:56:14 -04:00
d34a4d3647 refactor: move hermes files into ai/hermes/ subdirectory
- ai/Dockerfile -> ai/hermes/Dockerfile
- ai/fix-permissions.sh -> ai/hermes/fix-permissions.sh
- ai/patch_tts_tool.py -> ai/hermes/patch_tts_tool.py
- ai/compose.yml: update hermes build context to ./hermes
- ollama stays at ai/ollama/Dockerfile
2026-05-09 21:50:04 -04:00
ef58155897 feat: add custom ollama image with ROCm 6.1 + gfx906 support
- Add ollama/Dockerfile that builds ollama from source with AMDGPU_TARGETS=gfx906
- Uses ROCm 6.1 (rocm/dev-ubuntu-22.04:6.1.2-complete) for MI50 support
- Builds llama.cpp runner with HIPBLAS for gfx906 architecture
- Updates compose.yml to build from this Dockerfile instead of pulling ollama/ollama:latest
2026-05-09 21:18:37 -04:00
93c01fa314 fix: add TZ=America/Montreal for correct cron scheduling 2026-05-09 19:49:54 +00:00
Thierry Pouplier
b89be7b8f4 chore: restore system packages lost in base image migration
The migration from debian:stable-slim to nousresearch/hermes-agent:latest
dropped several packages that were previously installed. This restores:

- poppler-utils, imagemagick (PDF/image processing)
- texlive-latex-base, latex-extra, fonts-recommended, xetex, science
- qemu-user-static, binfmt-support (cross-compilation)
- emacs-nox (text editing)

These were added in PRs 3/5, 4/5, 5/5 and earlier commits of the
compose repo. The official image already has git, curl, ffmpeg,
python3, gcc, openssh, ripgrep, tini, docker-cli, etc.
2026-05-09 19:18:16 +00:00
Thierry Pouplier
748b5037b9 fix: update TTS patch for latest hermes-agent tts_tool.py
- Patch now matches the current tts_tool.py (newer version ships in
  nousresearch/hermes-agent:latest with different Edge fallback text)
- Adds dedicated elif provider == 'piper' block before else:
- Replaces else: fallback to use Piper instead of Edge
- Patches ALL copies (venv site-packages + /opt/hermes/tools/)
- Removes Edge TTS entirely as default/provider
2026-05-09 19:03:10 +00:00
Thierry Pouplier
3f80744ebd fix: install piper-tts as root (venv is root-owned in base image)
The nousresearch/hermes-agent:latest image creates its venv
as root. Running 'uv pip install' as USER hermes fails with
Permission denied on the site-packages directory.

Fix: keep USER root while modifying the venv, then switch
back to USER hermes for runtime.
2026-05-09 17:47:30 +00:00
Thierry Pouplier
6f17743667 fix: install into existing venv instead of recreating it
The nousresearch/hermes-agent:latest base image already has a
venv with hermes-agent installed at /opt/hermes/.venv/.
Running 'uv venv' on top of it either fails or wipes the
existing install.

Fix: activate the existing venv first, then pip install into it.
2026-05-09 17:44:55 +00:00
Thierry Pouplier
98216d2872 refactor: use official Hermes Agent image as base, not debian:stable-slim
Starting from debian:stable-slim required re-installing everything
(Hermes source, Node.js, Playwright, etc.) which was redundant
and fragile. The official nousresearch/hermes-agent image already
has all that.

Now the Dockerfile:
- FROM nousresearch/hermes-agent:latest (has tts_tool.py, Playwright, etc.)
- Install Piper + voice model on top
- Patch tts_tool.py at build time (Edge fallback -> Piper)
- Runtime fallback in fix-permissions.sh for volume resilience

Cleaner, smaller Dockerfile, and the build-time patch can find
tts_tool.py because it's in the base image's venv.
2026-05-09 17:39:23 +00:00
Thierry Pouplier
a40e347dfa fix: install hermes-agent from pip so build-time TTS patch works
The Dockerfile starts from debian:stable-slim, not from the official
Hermes image. Without installing hermes-agent from pip, there is no
tools/tts_tool.py in the image at build time, so the patch script
crashes with FileNotFoundError.

Adding hermes-agent to uv pip install gives us tts_tool.py in the
venv site-packages, so the COPY+RUN patch step works cleanly.

Also keep the runtime fallback in fix-permissions.sh for cases where
the volume's site-packages differ from the image.
2026-05-09 17:37:32 +00:00
Thierry Pouplier
cfa2a898c3 fix: move TTS patch from build-time to runtime
The build-time COPY+RUN of patch_tts_tool.py failed because
the Dockerfile starts from debian:stable-slim and only copies
the ai/ build context — there's no tools/tts_tool.py in the
image at build time (Hermes is on the mounted data volume).

Move patching to fix-permissions.sh which runs at container
startup when the data volume is mounted, so tts_tool.py is
available via the venv site-packages.

Also make patch_tts_tool.py robust: searches multiple paths
for tts_tool.py, accepts path as argument, exits 0 instead
of 1 when file/pattern not found (build must not fail).
2026-05-09 17:36:26 +00:00
Thierry Pouplier
0609720b33 fix: reinstate tts_tool.py patch step in Dockerfile
Commit 8e9a75f removed the COPY+RUN of patch_tts_tool.py
because the build context was thought to be insufficient.
The build context is ai/ which contains both the Dockerfile
and patch_tts_tool.py, so COPY works fine.

Without this step the tts_tool.py silently falls through
to Edge TTS as its default provider even when
config.yaml says provider: piper, because 'piper' is not
a recognized provider in the unpatched code. This caused
the female Edge TTS voice (AriaNeural) instead of the
configured Ryan High male voice.
2026-05-09 17:13:01 +00:00
Thierry Pouplier
d97f1cb1e5 fix: add startup permission fix for data volume (chown critical dirs on boot) 2026-05-09 16:04:32 +00:00
Thierry Pouplier
1a1cfec80a fix: add atomic write permission fix (preserves file mode on os.replace) 2026-05-09 15:50:29 +00:00
Thierry Pouplier
90e227bc4e feat: switch back to Ryan high quality voice 2026-05-09 15:21:49 +00:00
Thierry Pouplier
8e9a75fe5c fix: remove patch step from Dockerfile (build context is just ai/) 2026-05-09 14:28:35 +00:00
Thierry Pouplier
3016d0da2c fix: patch source tts_tool.py path, not site-packages 2026-05-09 14:27:07 +00:00
Thierry Pouplier
b750d26d80 feat: switch to Norman voice (US male, medium) 2026-05-09 14:20:46 +00:00
Thierry Pouplier
0a9507de65 fix: add ca-certificates for HuggingFace download 2026-05-09 14:14:52 +00:00
Thierry Pouplier
b3fa424661 fix: correct COPY path for patch_tts_tool.py (build context is ai/) 2026-05-09 14:12:06 +00:00
Thierry Pouplier
77fe8133ae fix: Dockerfile heredoc for voice download instead of multi-line -c 2026-05-09 14:09:50 +00:00
Thierry Pouplier
3f080da35e fix: clean patch script - only target Edge, no Coqui references 2026-05-09 13:59:09 +00:00
Thierry Pouplier
78f499bde8 fix: use full OPENROUTER_API_KEY variable name 2026-05-09 13:55:38 +00:00
Thierry Pouplier
e779818e73 chore: remove pycache 2026-05-09 13:41:54 +00:00
Thierry Pouplier
25d7611043 fix: clean Dockerfile with Piper TTS, external patch script 2026-05-09 13:41:37 +00:00
Thierry Pouplier
28213eec5c fix: replace Coqui/ROCm with Piper TTS (simpler, local, CPU) 2026-05-09 13:24:08 +00:00
Thierry Pouplier
c2471818b2 feat: add ROCm + Coqui TTS with GPU support to Dockerfile 2026-05-09 04:09:57 +00:00
Thierry Pouplier
f5171a7d6e fix: replace Dockerfile with simplified stable-slim version 2026-05-09 02:38:30 +00:00
Thierry Pouplier
5c504501d3 feat: add ROCm GPU env vars to hermes service for faster-whisper STT 2026-05-09 00:20:57 +00:00
434b2835ff Merge remote-tracking branch 'origin/feat/wireguard-vpn' into HEAD 2026-05-04 23:05:09 -04:00
d9f62652cb Commented webui for now. now using it 2026-05-04 22:56:07 -04:00
Thierry Pouplier
bc49391b4f chore: clean up WireGuard from Hermes Dockerfile, keep custom build 2026-05-05 02:11:37 +00:00
Thierry Pouplier
acf45acdd9 feat: enable NET_ADMIN for Hermes container to support WireGuard 2026-05-05 01:48:21 +00:00
Thierry Pouplier
b021d0dba7 feat: add custom Hermes Dockerfile with WireGuard tools 2026-05-05 01:42:55 +00:00
fb0f2cbe84 Network reorganization, multiple updates 2026-04-27 05:47:46 -04:00
c76d0fda6b Progress dump before ai agent 2026-04-04 04:48:49 -04:00
1e64f8e321 Big progress dump 2026-02-22 18:35:22 -05:00