From 495943b8377b20f7b3664b7e2107e46eddfb27a9 Mon Sep 17 00:00:00 2001 From: Bastian de Byl Date: Thu, 12 Feb 2026 15:13:25 -0500 Subject: [PATCH] feat: add ollama and searxng, migrate to debyl.io hostname - Add ollama role for local LLM inference (install, service, models) - Add searxng container for private search - Migrate hostname from home.bdebyl.net to home.debyl.io (inventory, awsddns, zomboid entrypoint, home_server_name) - Update vault with new secrets Co-Authored-By: Claude Opus 4.6 --- ansible/deploy_home.yml | 2 + ansible/inventories/home/hosts.yml | 2 +- ansible/roles/ollama/handlers/main.yml | 8 +++ ansible/roles/ollama/meta/main.yml | 3 + ansible/roles/ollama/tasks/install.yml | 11 ++++ ansible/roles/ollama/tasks/main.yml | 9 +++ ansible/roles/ollama/tasks/models.yml | 10 +++ ansible/roles/ollama/tasks/service.yml | 23 +++++++ ansible/roles/ollama/templates/ollama.env.j2 | 4 ++ ansible/roles/podman/defaults/main.yml | 3 +- .../podman/tasks/containers/base/awsddns.yml | 2 +- .../podman/tasks/containers/home/searxng.yml | 59 ++++++++++++++++++ .../podman/templates/searxng/settings.yml.j2 | 35 +++++++++++ .../podman/templates/zomboid/entrypoint.sh.j2 | 2 +- ansible/vars/vault.yml | Bin 19039 -> 19428 bytes 15 files changed, 169 insertions(+), 4 deletions(-) create mode 100644 ansible/roles/ollama/handlers/main.yml create mode 100644 ansible/roles/ollama/meta/main.yml create mode 100644 ansible/roles/ollama/tasks/install.yml create mode 100644 ansible/roles/ollama/tasks/main.yml create mode 100644 ansible/roles/ollama/tasks/models.yml create mode 100644 ansible/roles/ollama/tasks/service.yml create mode 100644 ansible/roles/ollama/templates/ollama.env.j2 create mode 100644 ansible/roles/podman/tasks/containers/home/searxng.yml create mode 100644 ansible/roles/podman/templates/searxng/settings.yml.j2 diff --git a/ansible/deploy_home.yml b/ansible/deploy_home.yml index a40b77e..d4724b7 100644 --- a/ansible/deploy_home.yml +++ b/ansible/deploy_home.yml @@ -8,6 +8,8 @@ - role: podman # SSL certificates are now handled automatically by Caddy # - role: ssl # REMOVED - Caddy handles all certificate management + - role: ollama + tags: ollama - role: github-actions - role: graylog-config tags: graylog-config diff --git a/ansible/inventories/home/hosts.yml b/ansible/inventories/home/hosts.yml index 51a3845..539b66b 100644 --- a/ansible/inventories/home/hosts.yml +++ b/ansible/inventories/home/hosts.yml @@ -1,5 +1,5 @@ --- all: hosts: - home.bdebyl.net: + home.debyl.io: ansible_user: fedora diff --git a/ansible/roles/ollama/handlers/main.yml b/ansible/roles/ollama/handlers/main.yml new file mode 100644 index 0000000..09cce53 --- /dev/null +++ b/ansible/roles/ollama/handlers/main.yml @@ -0,0 +1,8 @@ +--- +- name: restart ollama + become: true + ansible.builtin.systemd: + name: ollama + state: restarted + daemon_reload: true + tags: ollama diff --git a/ansible/roles/ollama/meta/main.yml b/ansible/roles/ollama/meta/main.yml new file mode 100644 index 0000000..fdda41b --- /dev/null +++ b/ansible/roles/ollama/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - role: common diff --git a/ansible/roles/ollama/tasks/install.yml b/ansible/roles/ollama/tasks/install.yml new file mode 100644 index 0000000..fdf27ef --- /dev/null +++ b/ansible/roles/ollama/tasks/install.yml @@ -0,0 +1,11 @@ +--- +- name: check if ollama is already installed + ansible.builtin.stat: + path: /usr/local/bin/ollama + register: ollama_binary + +- name: install ollama via official install script + become: true + ansible.builtin.shell: | + curl -fsSL https://ollama.com/install.sh | sh + when: not ollama_binary.stat.exists diff --git a/ansible/roles/ollama/tasks/main.yml b/ansible/roles/ollama/tasks/main.yml new file mode 100644 index 0000000..040f736 --- /dev/null +++ b/ansible/roles/ollama/tasks/main.yml @@ -0,0 +1,9 @@ +--- +- import_tasks: install.yml + tags: ollama + +- import_tasks: service.yml + tags: ollama + +- import_tasks: models.yml + tags: ollama diff --git a/ansible/roles/ollama/tasks/models.yml b/ansible/roles/ollama/tasks/models.yml new file mode 100644 index 0000000..ab66e0c --- /dev/null +++ b/ansible/roles/ollama/tasks/models.yml @@ -0,0 +1,10 @@ +--- +- name: pull ollama models + become: true + ansible.builtin.command: ollama pull {{ item }} + loop: "{{ ollama_models }}" + register: result + retries: 3 + delay: 10 + until: result is not failed + changed_when: "'pulling' in result.stderr or 'pulling' in result.stdout" diff --git a/ansible/roles/ollama/tasks/service.yml b/ansible/roles/ollama/tasks/service.yml new file mode 100644 index 0000000..f9aaffc --- /dev/null +++ b/ansible/roles/ollama/tasks/service.yml @@ -0,0 +1,23 @@ +--- +- name: create ollama systemd override directory + become: true + ansible.builtin.file: + path: /etc/systemd/system/ollama.service.d + state: directory + mode: 0755 + +- name: template ollama environment override + become: true + ansible.builtin.template: + src: ollama.env.j2 + dest: /etc/systemd/system/ollama.service.d/override.conf + mode: 0644 + notify: restart ollama + +- name: enable and start ollama service + become: true + ansible.builtin.systemd: + name: ollama + enabled: true + state: started + daemon_reload: true diff --git a/ansible/roles/ollama/templates/ollama.env.j2 b/ansible/roles/ollama/templates/ollama.env.j2 new file mode 100644 index 0000000..29c0919 --- /dev/null +++ b/ansible/roles/ollama/templates/ollama.env.j2 @@ -0,0 +1,4 @@ +[Service] +Environment="OLLAMA_HOST={{ ollama_host }}:{{ ollama_port }}" +Environment="OLLAMA_NUM_PARALLEL=1" +Environment="OLLAMA_MAX_LOADED_MODELS=1" diff --git a/ansible/roles/podman/defaults/main.yml b/ansible/roles/podman/defaults/main.yml index c92d68b..7d2d0fc 100644 --- a/ansible/roles/podman/defaults/main.yml +++ b/ansible/roles/podman/defaults/main.yml @@ -8,6 +8,7 @@ debyltech_path: "{{ podman_volumes }}/debyltech" factorio_path: "{{ podman_volumes }}/factorio" fulfillr_path: "{{ podman_volumes }}/fulfillr" gregtime_path: "{{ podman_volumes }}/gregtime" +searxng_path: "{{ podman_volumes }}/searxng" hass_path: "{{ podman_volumes }}/hass" # nginx_path: removed - nginx no longer used # nosql_path: removed - nosql/redis no longer used @@ -77,7 +78,7 @@ bookstack_server_name: wiki.skudakrennsport.com cloud_server_name: cloud.bdebyl.net cloud_skudak_server_name: cloud.skudakrennsport.com fulfillr_server_name: fulfillr.debyltech.com -home_server_name: home.bdebyl.net +home_server_name: home.debyl.io uptime_kuma_server_name: uptime.debyltech.com uptime_kuma_personal_server_name: uptime.debyl.io parts_server_name: parts.bdebyl.net diff --git a/ansible/roles/podman/tasks/containers/base/awsddns.yml b/ansible/roles/podman/tasks/containers/base/awsddns.yml index ebf4307..146340f 100644 --- a/ansible/roles/podman/tasks/containers/base/awsddns.yml +++ b/ansible/roles/podman/tasks/containers/base/awsddns.yml @@ -4,7 +4,7 @@ container_name: awsddns container_image: "{{ image }}" -- name: create home.bdebyl.net awsddns server container +- name: create home.debyl.io awsddns server container become: true become_user: "{{ podman_user }}" diff: false diff --git a/ansible/roles/podman/tasks/containers/home/searxng.yml b/ansible/roles/podman/tasks/containers/home/searxng.yml new file mode 100644 index 0000000..44d4f9e --- /dev/null +++ b/ansible/roles/podman/tasks/containers/home/searxng.yml @@ -0,0 +1,59 @@ +--- +- name: create searxng host directory volumes + become: true + ansible.builtin.file: + path: "{{ item }}" + state: directory + owner: "{{ podman_subuid.stdout }}" + group: "{{ podman_user }}" + mode: 0755 + notify: restorecon podman + loop: + - "{{ searxng_path }}/config" + - "{{ searxng_path }}/data" + +- name: template searxng settings + become: true + ansible.builtin.template: + src: searxng/settings.yml.j2 + dest: "{{ searxng_path }}/config/settings.yml" + owner: "{{ podman_subuid.stdout }}" + group: "{{ podman_user }}" + mode: 0644 + +- name: unshare chown the searxng volumes for internal uid 977 + become: true + become_user: "{{ podman_user }}" + changed_when: false + ansible.builtin.shell: | + podman unshare chown -R 977:977 {{ searxng_path }}/config + podman unshare chown -R 977:977 {{ searxng_path }}/data + +- name: flush handlers + ansible.builtin.meta: flush_handlers + +- import_tasks: podman/podman-check.yml + vars: + container_name: searxng + container_image: "{{ image }}" + +- name: create searxng container + become: true + become_user: "{{ podman_user }}" + containers.podman.podman_container: + name: searxng + image: "{{ image }}" + restart_policy: on-failure:3 + log_driver: journald + network: + - host + env: + SEARXNG_BASE_URL: "http://127.0.0.1:8080/" + volumes: + - "{{ searxng_path }}/config:/etc/searxng" + - "{{ searxng_path }}/data:/srv/searxng/data" + +- name: create systemd startup job for searxng + include_tasks: podman/systemd-generate.yml + vars: + container_name: searxng diff --git a/ansible/roles/podman/templates/searxng/settings.yml.j2 b/ansible/roles/podman/templates/searxng/settings.yml.j2 new file mode 100644 index 0000000..25ec26d --- /dev/null +++ b/ansible/roles/podman/templates/searxng/settings.yml.j2 @@ -0,0 +1,35 @@ +use_default_settings: true + +general: + instance_name: "SearXNG" + debug: false + +server: + bind_address: "127.0.0.1" + port: 8080 + secret_key: "{{ searxng_secret_key }}" + limiter: false + image_proxy: false + +search: + safe_search: 0 + formats: + - html + - json + +engines: + - name: duckduckgo + engine: duckduckgo + disabled: false + + - name: google + engine: google + disabled: false + + - name: wikipedia + engine: wikipedia + disabled: false + + - name: bing + engine: bing + disabled: false diff --git a/ansible/roles/podman/templates/zomboid/entrypoint.sh.j2 b/ansible/roles/podman/templates/zomboid/entrypoint.sh.j2 index be78b62..cfc4054 100644 --- a/ansible/roles/podman/templates/zomboid/entrypoint.sh.j2 +++ b/ansible/roles/podman/templates/zomboid/entrypoint.sh.j2 @@ -84,6 +84,6 @@ fi # Start server cd "${INSTALL_DIR}" echo "=== Starting Project Zomboid Server ===" -echo "Connect to: home.bdebyl.net:16261" +echo "Connect to: home.debyl.io:16261" exec su -c "export LD_LIBRARY_PATH=${INSTALL_DIR}/jre64/lib:\${LD_LIBRARY_PATH} && ./start-server.sh ${SERVER_ARGS}" steam diff --git a/ansible/vars/vault.yml b/ansible/vars/vault.yml index 249adeb7e62a71648cd1acea6aaed9ae29a03ed8..e8fd7e6699e1ffef5b4aa1893c94d805006a01c9 100644 GIT binary patch literal 19428 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 literal 19039 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