summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2026-10-27 18:44:28 +0100
committerFelix Morgner <felix.morgner@gmail.com>2026-10-27 18:45:13 +0100
commit6fb3a546861cd4dcb69d78bbc0d7d33f4a712372 (patch)
tree98b5c24bfc22b6ac14206aa09920c833ef9efb39
parentf172f10023652c14c4a95462e63f1d2830236cfc (diff)
downloadlocal-ai-6fb3a546861cd4dcb69d78bbc0d7d33f4a712372.tar.xz
local-ai-6fb3a546861cd4dcb69d78bbc0d7d33f4a712372.zip
terminal: set up TeachOS development terminal
-rw-r--r--.gitignore1
-rw-r--r--Dockerfile.comfyui21
-rw-r--r--Dockerfile.terminal-teachos60
-rw-r--r--docker-compose.yml32
4 files changed, 103 insertions, 11 deletions
diff --git a/.gitignore b/.gitignore
index b05be10..e0ce477 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/comfyui
/ollama
/open-terminal
+/extracted
diff --git a/Dockerfile.comfyui b/Dockerfile.comfyui
index 3512bd4..128dab9 100644
--- a/Dockerfile.comfyui
+++ b/Dockerfile.comfyui
@@ -1,15 +1,32 @@
-FROM docker.io/ubuntu:resolute
+FROM docker.io/ubuntu:noble
RUN apt update && \
apt full-upgrade --auto-remove --purge --yes && \
apt install --no-install-recommends --yes \
+ build-essential \
git \
libatomic1 \
+ libegl-dev \
+ libegl1 \
+ libgbm1 \
+ libgl1 \
+ libgl1-mesa-dev \
+ libgl1-mesa-dri \
+ libgles2 \
+ libglvnd0 \
+ libglx0 \
+ libnuma-dev \
libopengl0 \
+ mesa-utils \
+ mesa-utils-extra \
python3 \
+ python3-dev \
python3-venv && \
rm -rf /var/lib/apt/lists/*
+ENV PYTHONDONTWRITEBYTECODE=1
+ENV PYTHONUNBUFFERED=1
+
RUN mkdir -p /app/ComfyUI && chown -R ubuntu: /app
USER ubuntu
@@ -25,7 +42,7 @@ RUN /app/venv/bin/pip3 install \
WORKDIR /app/ComfyUI
RUN git clone https://github.com/Comfy-Org/ComfyUI.git . && \
- git checkout v0.41.1
+ git checkout v0.43.0
RUN /app/venv/bin/pip install \
--pre \
diff --git a/Dockerfile.terminal-teachos b/Dockerfile.terminal-teachos
new file mode 100644
index 0000000..2046825
--- /dev/null
+++ b/Dockerfile.terminal-teachos
@@ -0,0 +1,60 @@
+FROM registry.gitlab.ost.ch:45023/teachos/devcontainers/x86-64:16.2.0-1-py3.14
+
+RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install --yes --no-install-recommends \
+ acpica-tools \
+ ca-certificates \
+ clangd-22 \
+ clang-tidy-22 \
+ cmake \
+ curl \
+ g++-16 \
+ gcc-16 \
+ gdb \
+ git \
+ git-lfs \
+ grub2-common \
+ grub-pc \
+ locales \
+ make \
+ mtools \
+ ninja-build \
+ python3-poetry \
+ python3-pip \
+ qemu-system-x86 \
+ ssh \
+ wget \
+ xorriso \
+ && rm -rf /var/lib/apt/lists/*
+
+RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
+ dpkg-reconfigure --frontend=noninteractive locales && \
+ update-locale LANG=en_US.UTF-8
+
+RUN update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-16 100 && \
+ update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-16 100 && \
+ update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-16 100 && \
+ update-alternatives --install /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-16 100 && \
+ update-alternatives --install /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-16 100 && \
+ update-alternatives --install /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-16 100 && \
+ update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-16 100 && \
+ update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-22 100 && \
+ update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-22 100
+
+RUN curl -LO https://github.com/catchorg/Catch2/archive/refs/tags/v3.15.3.tar.gz && \
+ tar xf v3.15.3.tar.gz && \
+ cd Catch2-3.15.3 && \
+ cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTING=OFF && \
+ cmake --build build --target install --parallel && \
+ cd .. && \
+ rm -rf Catch2-3.15.3 v3.15.3.tar.gz
+
+USER ubuntu
+
+ENV PYTHONUNBUFFERED=1 \
+ PATH=/home/ubuntu/.local/bin:$PATH \
+ SHELL=/bin/bash \
+ HOME=/home/ubuntu
+
+RUN curl -LsSf https://astral.sh/uv/install.sh | sh
+
+ENTRYPOINT ["uvx"]
diff --git a/docker-compose.yml b/docker-compose.yml
index 8732b1c..8df2366 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -3,7 +3,7 @@ services:
comfyui:
build:
dockerfile: Dockerfile.comfyui
- image: comfyui:0.41.1
+ image: comfyui:0.43.0
pull_policy: never
container_name: comfyui
restart: always
@@ -15,6 +15,10 @@ services:
--multi-user
environment:
ROCR_VISIBLE_DEVICES: 1
+ TZ: Europe/Zurich
+ PYOPENGL_PLATFORM: egl
+ PYRENDER_PLATFORM: egl
+ EGL_PLATFORM: surfaceless
volumes:
- type: bind
source: ./comfyui/custom_nodes
@@ -39,6 +43,7 @@ services:
ports:
- 8188:8188
group_add:
+ - video
- 985
- 989
ipc: host
@@ -60,11 +65,12 @@ services:
OLLAMA_FLASH_ATTENTION: 1
OLLAMA_KV_CACHE_TYPE: q8_0
OLLAMA_KEEP_ALIVE: 15m
- OLLAMA_MAX_LOADED_MODELS: 2
+ OLLAMA_MAX_LOADED_MODELS: 1
OLLAMA_MAX_QUEUE: 512
OLLAMA_NUM_PARALLEL: 2
OLLAMA_NO_CLOUD: 1
ROCR_VISIBLE_DEVICES: 0
+ TZ: Europe/Zurich
volumes:
- type: bind
source: ./ollama/data
@@ -80,17 +86,25 @@ services:
- /dev/kfd:/dev/kfd
- /dev/dri:/dev/dri
- open-terminal:
- image: ghcr.io/open-webui/open-terminal
+ open-terminal-teachos:
+ image: open-terminal/teachos:16.2.0
+ build:
+ dockerfile: Dockerfile.terminal-teachos
+ command: >
+ open-terminal
+ run
+ --host 0.0.0.0
+ --port 8000
+ --cors-allowed-origins https://ai.arknet.ch
+ --cwd /home/ubuntu/workspaces
restart: always
- container_name: open-terminal
+ container_name: open-terminal-teachos
environment:
- OPEN_TERMINAL_MULTI_USER: true
- OPEN_TERMINAL_PACKAGES: git-lfs cmake g++ libstdc++-14-dev ninja-build
OPEN_TERMINAL_API_KEY: wt-656cfbcda04de70926016fb5f7a82529d97650ce4512ae70a70ab26c49fafce7
+ TZ: Europe/Zurich
volumes:
- type: bind
- source: ./open-terminal/base
- target: /home
+ source: ./open-terminal/teachos
+ target: /home/ubuntu/workspaces
ports:
- 8000:8000