diff --git a/tasks/workstation/linux/software/llm.yml b/tasks/workstation/linux/software/llm.yml index cb9c055..de2f683 100644 --- a/tasks/workstation/linux/software/llm.yml +++ b/tasks/workstation/linux/software/llm.yml @@ -272,6 +272,63 @@ dateformat %Y-%m-%d_%H-%M-%S # each run gets its own file. mode: "0755" + + - block: + + - name: Workstation | Linux | Software | LLMs | runit | open-webui | Packages + ansible.builtin.package: + name: + - docker + state: present + + - name: Workstation | Linux | Software | LLMs | runit | open-webui | Packages | init + ansible.builtin.package: + name: + - docker-runit + state: present + when: ansible_pkg_mgr == "pacman" + + - name: Workstation | Linux | Software | LLMs | runit | open-webui | Dir | Run + ansible.builtin.file: + name: "/etc/sv/open_webui" + state: directory + owner: root + mode: "0755" + + - name: Workstation | Linux | Software | LLMs | runit | open-webui | Dir | Log + ansible.builtin.file: + name: "/etc/sv/open_webui/log" + state: directory + owner: root + mode: "0755" + + - name: Workstation | Linux | Software | LLMs | runit | open-webui | Dir | Log Config + ansible.builtin.file: + name: "/var/log/open_webui" + state: directory + owner: "{{ user }}" + mode: "0755" + + - name: Workstation | Linux | Software | LLMs | runit | open-webui | Script | File + ansible.builtin.copy: + dest: /etc/sv/open_webui/run + content: | + #!/bin/sh -e + # Wait for Docker to start up. + while [ ! -S /var/run/docker.sock ]; do sleep 1; done + # Start the open-webui program. + exec docker run --rm \ + -p 3000:{{ open_webui_port }} \ + --add-host=host.docker.internal:host-gateway \ + -v open-webui:/app/backend/data \ + -e WEBUI_SECRET_KEY=your-secret-key \ + -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \ + --name open-webui \ + ghcr.io/open-webui/open-webui:main + mode: "0755" + + when: open_webui + when: ansible_service_mgr == "runit" - name: Workstation | Linux | Software | LLMs | Services | Enable @@ -282,6 +339,8 @@ loop: - "{{ ollama }}" - "{{ zeroclaw }}" + - "docker" + - "open_webui" - name: Workstation | Linux | Software | LLMs | Services | Verify ansible.builtin.uri: @@ -295,6 +354,7 @@ loop: - http://127.0.0.1:11434/ - http://127.0.0.1:42617/health + - http://127.0.0.1:3000 #- name: Workstation | Linux | Software | LLMs | Config | zeroclaw | Root # ansible.builtin.blockinfile: