llm, switch open-terminal over to compose so that build dependencies are persistent.
This commit is contained in:
1 parent
0e1648cc31
commit
65aeea9a93
1 file changed
+111
-65
@@ -228,10 +228,11 @@
|
|||||||
- "{{ qwen_code }}"
|
- "{{ qwen_code }}"
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | LLMs | Docker
|
- name: Workstation | Linux | Software | LLMs | Docker | Install
|
||||||
ansible.builtin.package:
|
ansible.builtin.package:
|
||||||
name:
|
name:
|
||||||
- docker
|
- docker
|
||||||
|
- docker-compose
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | LLMs | Docker | runit
|
- name: Workstation | Linux | Software | LLMs | Docker | runit
|
||||||
@@ -521,7 +522,14 @@
|
|||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
name: "/var/log/open-terminal"
|
name: "/var/log/open-terminal"
|
||||||
state: directory
|
state: directory
|
||||||
owner: "{{ user }}"
|
owner: root
|
||||||
|
mode: "0755"
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | Dir | /usr/local/etc
|
||||||
|
ansible.builtin.file:
|
||||||
|
name: "/usr/local/etc/open-terminal"
|
||||||
|
state: directory
|
||||||
|
owner: root
|
||||||
mode: "0755"
|
mode: "0755"
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | AI-Sandbox | Dir
|
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | AI-Sandbox | Dir
|
||||||
@@ -543,7 +551,6 @@
|
|||||||
|
|
||||||
export ANDROID_HOME="{{ user_user.home }}/SDKs/Android/Sdk"
|
export ANDROID_HOME="{{ user_user.home }}/SDKs/Android/Sdk"
|
||||||
export GRADLE_USER_HOME={{ user_user.home }}/.gradle
|
export GRADLE_USER_HOME={{ user_user.home }}/.gradle
|
||||||
export GRADLE_HOME={{ user_user.home }}/.gradle
|
|
||||||
export PATH="$ANDROID_HOME/platform-tools:$PATH"
|
export PATH="$ANDROID_HOME/platform-tools:$PATH"
|
||||||
export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"
|
export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"
|
||||||
|
|
||||||
@@ -643,83 +650,127 @@
|
|||||||
group: "{{ user }}"
|
group: "{{ user }}"
|
||||||
mode: "0755"
|
mode: "0755"
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | Script | Compose YAML
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: /usr/local/etc/open-terminal/docker-compose.yml
|
||||||
|
content: |
|
||||||
|
#exec docker run \
|
||||||
|
# --name open-terminal \
|
||||||
|
# --network=host \
|
||||||
|
# -v {{ user_user.home }}/AI-Sandbox:/home/user \
|
||||||
|
# -v {{ user_user.home }}/Code:{{ user_user.home }}/Code \
|
||||||
|
# -v {{ user_user.home }}/SDKs:{{ user_user.home }}/SDKs \
|
||||||
|
# -v {{ jdk_jvm }}:{{ jdk_jvm }}:ro \
|
||||||
|
# -v {{ jdk_etc }}:{{ jdk_etc }}:ro \
|
||||||
|
# -v {{ jdk_etc17 }}:{{ jdk_etc17 }}:ro \
|
||||||
|
# -v {{ jdk_etc21 }}:{{ jdk_etc21 }}:ro \
|
||||||
|
# -v {{ jdk_etc25 }}:{{ jdk_etc25 }}:ro \
|
||||||
|
# -v /etc/hosts:/etc/hosts:ro \
|
||||||
|
# -v {{ user_user.home }}/.gradle:{{ user_user.home }}/.gradle \
|
||||||
|
# -v {{ user_user.home }}/.pub-cache:{{ user_user.home }}/.pub-cache \
|
||||||
|
# -e OPEN_TERMINAL_FILE_BROWSER_ROOT="/home/user" \
|
||||||
|
# -e OPEN_TERMINAL_API_KEY="{{ open_terminal_key }}" \
|
||||||
|
# -e OPEN_TERMINAL_PACKAGES="$packages" \
|
||||||
|
# -e GOT_EM="$GOT_EM" \
|
||||||
|
# $image run --port {{ open_terminal_port }}
|
||||||
|
|
||||||
|
services:
|
||||||
|
open-terminal:
|
||||||
|
build:
|
||||||
|
context: ./
|
||||||
|
network: host
|
||||||
|
container_name: open-terminal
|
||||||
|
network_mode: host
|
||||||
|
command: run --port {{ open_terminal_port }}
|
||||||
|
environment:
|
||||||
|
- OPEN_TERMINAL_FILE_BROWSER_ROOT=/home/user
|
||||||
|
- OPEN_TERMINAL_API_KEY={{ open_terminal_key }}
|
||||||
|
- OPEN_TERMINAL_PACKAGES=
|
||||||
|
- GOT_EM=true
|
||||||
|
volumes:
|
||||||
|
- {{ user_user.home }}/AI-Sandbox:/home/user
|
||||||
|
- {{ user_user.home }}/Code:{{ user_user.home }}/Code
|
||||||
|
- {{ user_user.home }}/SDKs:{{ user_user.home }}/SDKs
|
||||||
|
- {{ jdk_jvm }}:{{ jdk_jvm }}:ro
|
||||||
|
- {{ jdk_etc }}:{{ jdk_etc }}:ro
|
||||||
|
- {{ jdk_etc17 }}:{{ jdk_etc17 }}:ro
|
||||||
|
- {{ jdk_etc21 }}:{{ jdk_etc21 }}:ro
|
||||||
|
- {{ jdk_etc25 }}:{{ jdk_etc25 }}:ro
|
||||||
|
- /etc/hosts:/etc/hosts:ro
|
||||||
|
- {{ user_user.home }}/.gradle:{{ user_user.home }}/.gradle
|
||||||
|
- {{ user_user.home }}/.pub-cache:{{ user_user.home }}/.pub-cache
|
||||||
|
owner: root
|
||||||
|
mode: "0755"
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | Script | Dockerfile
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: /usr/local/etc/open-terminal/Dockerfile
|
||||||
|
content: |
|
||||||
|
FROM ghcr.io/open-webui/open-terminal:latest
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
RUN echo "Android"
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
libc6:amd64 libncurses-dev \
|
||||||
|
libstdc++6 lib32z1 libbz2-1.0 android-udev-rules
|
||||||
|
# Debian removed JDK 17, continue serving from the host.
|
||||||
|
# default-jdk openjdk-17-jdk
|
||||||
|
|
||||||
|
RUN echo "Flutter (Main)"
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
curl git unzip xz-utils zip libglu1-mesa libglu1-mesa
|
||||||
|
|
||||||
|
RUN echo "Flutter (Linux)"
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
clang cmake git ninja-build pkg-config libgtk-3-dev \
|
||||||
|
liblzma-dev libstdc++-12-dev
|
||||||
|
|
||||||
|
RUN echo "Flutter (Android)"
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
libc6:amd64 libstdc++6 lib32z1 libbz2-1.0
|
||||||
|
|
||||||
|
USER user
|
||||||
|
owner: root
|
||||||
|
mode: "0755"
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | Script | env
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: /usr/local/etc/open-terminal/.env
|
||||||
|
content: |
|
||||||
|
COMPOSE_BAKE=true
|
||||||
|
owner: root
|
||||||
|
mode: "0755"
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | Script | Run
|
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | Script | Run
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
dest: /etc/sv/open-terminal/run
|
dest: /etc/sv/open-terminal/run
|
||||||
content: |
|
content: |
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
exec 2>&1
|
exec 2>&1
|
||||||
image=ghcr.io/open-webui/open-terminal:latest
|
|
||||||
packages=""
|
|
||||||
|
|
||||||
# Wait for Docker to start up.
|
# Wait for Docker to start up.
|
||||||
while [ ! -S /var/run/docker.sock ]; do sleep 1; done
|
while [ ! -S /var/run/docker.sock ]; do sleep 1; done
|
||||||
|
|
||||||
# Ensure the old container is gone.
|
# Ensure the old container is stopped.
|
||||||
echo "RUN: Stopping..."
|
echo "RUN: Stopping..."
|
||||||
docker stop open-terminal &&
|
docker compose -f /usr/local/etc/open-terminal/docker-compose.yml down &&
|
||||||
echo "RUN: Container stopped" ||
|
echo "RUN: Container stopped" ||
|
||||||
echo "RUN: Container already stopped."
|
echo "RUN: Container already stopped."
|
||||||
echo "RUN: Deleting..."
|
|
||||||
docker rm -f open-terminal &&
|
|
||||||
echo "RUN: Container deleted" ||
|
|
||||||
echo "RUN: Container already deleted."
|
|
||||||
|
|
||||||
# Check for any new updates in background.
|
# Check for any new updates in background.
|
||||||
echo "RUN: Updating..."
|
echo "RUN: Updating..."
|
||||||
docker pull $image &
|
sleep 60 &&
|
||||||
|
docker compose -f /usr/local/etc/open-terminal/docker-compose.yml \
|
||||||
|
build --pull &
|
||||||
|
|
||||||
GOT_EM=false
|
export GOT_EM=true
|
||||||
if curl -sf --max-time 5 -o /dev/null https://hyperling.com; then
|
|
||||||
# Internet is available, pull extra packages.
|
|
||||||
GOT_EM=true
|
|
||||||
|
|
||||||
# Android, sans default-jdk
|
|
||||||
packages="$packages \
|
|
||||||
libc6:amd64 libncurses-dev libstdc++6 lib32z1 libbz2-1.0 \
|
|
||||||
android-udev-rules \
|
|
||||||
"
|
|
||||||
|
|
||||||
# Flutter (Main)
|
|
||||||
packages="$packages \
|
|
||||||
curl git unzip xz-utils zip libglu1-mesa libglu1-mesa \
|
|
||||||
"
|
|
||||||
|
|
||||||
# Flutter (Linux)
|
|
||||||
packages="$packages \
|
|
||||||
clang cmake git ninja-build pkg-config libgtk-3-dev \
|
|
||||||
liblzma-dev libstdc++-12-dev \
|
|
||||||
"
|
|
||||||
|
|
||||||
# Flutter (Android)
|
|
||||||
packages="$packages \
|
|
||||||
libc6:amd64 libstdc++6 lib32z1 libbz2-1.0 \
|
|
||||||
"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Start the open-terminal program.
|
# Start the open-terminal program.
|
||||||
# https://github.com/open-webui/open-terminal#configuration
|
# https://github.com/open-webui/open-terminal#configuration
|
||||||
set -e
|
set -e
|
||||||
exec docker run \
|
exec docker compose -f /usr/local/etc/open-terminal/docker-compose.yml up
|
||||||
--name open-terminal \
|
owner: root
|
||||||
--network=host \
|
|
||||||
-v {{ user_user.home }}/AI-Sandbox:/home/user \
|
|
||||||
-v {{ user_user.home }}/Code:{{ user_user.home }}/Code \
|
|
||||||
-v {{ user_user.home }}/SDKs:{{ user_user.home }}/SDKs \
|
|
||||||
-v {{ jdk_jvm }}:{{ jdk_jvm }}:ro \
|
|
||||||
-v {{ jdk_etc }}:{{ jdk_etc }}:ro \
|
|
||||||
-v {{ jdk_etc17 }}:{{ jdk_etc17 }}:ro \
|
|
||||||
-v {{ jdk_etc21 }}:{{ jdk_etc21 }}:ro \
|
|
||||||
-v {{ jdk_etc25 }}:{{ jdk_etc25 }}:ro \
|
|
||||||
-v {{ user_user.home }}/.gradle:{{ user_user.home }}/.gradle \
|
|
||||||
-v {{ user_user.home }}/.pub-cache:{{ user_user.home }}/.pub-cache \
|
|
||||||
-e OPEN_TERMINAL_FILE_BROWSER_ROOT="/home/user" \
|
|
||||||
-e OPEN_TERMINAL_API_KEY="{{ open_terminal_key }}" \
|
|
||||||
-e OPEN_TERMINAL_PACKAGES="$packages" \
|
|
||||||
-e GOT_EM="$GOT_EM" \
|
|
||||||
$image run --port {{ open_terminal_port }}
|
|
||||||
|
|
||||||
# -p {{ open_terminal_port }}:8000
|
|
||||||
mode: "0755"
|
mode: "0755"
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | Script | Finish
|
- name: Workstation | Linux | Software | LLMs | runit | open-terminal | Script | Finish
|
||||||
@@ -729,15 +780,10 @@
|
|||||||
{{ runit_finish_sleep }}
|
{{ runit_finish_sleep }}
|
||||||
|
|
||||||
echo "FINISH: Stopping..."
|
echo "FINISH: Stopping..."
|
||||||
docker stop open-terminal &&
|
docker compose -f /usr/local/etc/open-terminal/docker-compose.yml down &&
|
||||||
echo "FINISH: Container stopped" ||
|
echo "FINISH: Container stopped" ||
|
||||||
echo "FINISH: Container already stopped."
|
echo "FINISH: Container already stopped."
|
||||||
|
|
||||||
echo "FINISH: Deleting..."
|
|
||||||
docker rm -f open-terminal &&
|
|
||||||
echo "FINISH: Container deleted" ||
|
|
||||||
echo "FINISH: Container already deleted."
|
|
||||||
|
|
||||||
echo "FINISH: Done!"
|
echo "FINISH: Done!"
|
||||||
mode: "0755"
|
mode: "0755"
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user