diff --git a/playbooks/portainer.yml b/playbooks/portainer.yml index 7f283e4..e0145be 100644 --- a/playbooks/portainer.yml +++ b/playbooks/portainer.yml @@ -3,4 +3,5 @@ become: true roles: - docker - - portainer \ No newline at end of file + - portainer + - openwebui \ No newline at end of file diff --git a/playbooks/roles/openwebui/README.md b/playbooks/roles/openwebui/README.md new file mode 100644 index 0000000..61b7d63 --- /dev/null +++ b/playbooks/roles/openwebui/README.md @@ -0,0 +1,34 @@ +# Ansible Role: Open WebUI Docker Compose + +An Ansible role to deploy Open WebUI using Docker Compose. + +## Requirements + +- Docker +- Docker Compose + +## Role Variables + +Available variables are listed below, along with default values (see `defaults/main.yml`): + +```yaml +openwebui_data_dir: "/opt/open-webui" +openwebui_port: 8080 +openwebui_ollama_base_url: "http://localhost:11434" +``` + +## Dependencies + +- docker + +## Example Playbook + +```yaml +- hosts: "servers" + roles: + - role: "openwebui" +``` + +## License + +MIT diff --git a/playbooks/roles/openwebui/defaults/main.yml b/playbooks/roles/openwebui/defaults/main.yml new file mode 100644 index 0000000..aa09d90 --- /dev/null +++ b/playbooks/roles/openwebui/defaults/main.yml @@ -0,0 +1,4 @@ +--- +openwebui_data_dir: "/opt/open-webui" +openwebui_port: 8080 +openwebui_ollama_base_url: "http://localhost:11434" diff --git a/playbooks/roles/openwebui/meta/main.yml b/playbooks/roles/openwebui/meta/main.yml new file mode 100644 index 0000000..f973f48 --- /dev/null +++ b/playbooks/roles/openwebui/meta/main.yml @@ -0,0 +1,12 @@ +galaxy_info: + author: "Your Name" + description: "An Ansible role to deploy Open WebUI using Docker Compose" + license: "MIT" + min_ansible_version: "2.9" + platforms: + - name: "Ubuntu" + versions: + - "focal" + - "bionic" +dependencies: + - role: docker diff --git a/playbooks/roles/openwebui/tasks/main.yml b/playbooks/roles/openwebui/tasks/main.yml new file mode 100644 index 0000000..25ce7c5 --- /dev/null +++ b/playbooks/roles/openwebui/tasks/main.yml @@ -0,0 +1,16 @@ +--- +- name: "Create Open WebUI directory" + ansible.builtin.file: + path: "{{ openwebui_data_dir }}" + state: "directory" + mode: "0755" + +- name: "Create Open WebUI docker-compose.yml" + ansible.builtin.template: + src: "docker-compose.yml.j2" + dest: "{{ openwebui_data_dir }}/docker-compose.yml" + +- name: "Start Open WebUI services" + community.docker.docker_compose: + project_src: "{{ openwebui_data_dir }}" + state: "present" diff --git a/playbooks/roles/openwebui/templates/docker-compose.yml.j2 b/playbooks/roles/openwebui/templates/docker-compose.yml.j2 new file mode 100644 index 0000000..ecec0cd --- /dev/null +++ b/playbooks/roles/openwebui/templates/docker-compose.yml.j2 @@ -0,0 +1,13 @@ +version: '3.8' + +services: + open-webui: + image: ghcr.io/open-webui/open-webui:main + container_name: open-webui + ports: + - "{{ openwebui_port }}:8080" + volumes: + - "{{ openwebui_data_dir }}:/app/backend/data" + environment: + - OLLAMA_BASE_URL={{ openwebui_ollama_base_url }} + restart: always