Showing posts with label docker. Show all posts
Showing posts with label docker. Show all posts

Monday, 17 February 2025

Ollama-сервер и API

Всем привет.

LLM-модель - это языковая модель, обученная на больших объемах данных. Она помогает в обработке естественного языка для генерации текста на основе предыдущего контекста. LLM также используют в машинном переводе и при автозаполнении текста.

На рынке уже есть решения для работы с моделями с открытым исходным кодом, такие как gpt4all. Для администраторов, девопсов и безопасников подобный инструмент почти бесполезен, так как мы не можем удобно предоставить его разработчикам и контролировать учетные записи пользователей.

А проект Ollama прекрасно решает эти проблемы. И что особенно удобно его можно использовать локально на своем хосте если достаточно VRAM, или в своей локальной сети развернув на одном из серверов компании, и даже дома.

Основные отличия Ollama от других проектов - это предоставление бесплатного API. Уже есть огромный выбор графических интерфейсов для этого API. Проект доведен до ума и не требует танцев с бубном при запуске. Проект поддерживает Windows, Linux и MacOS. Многочисленные инструкции по локальной установке Ollama доступны в сети.

Самый популярный вариант это docker плюс Open WebUI. Суть в том, что сервер лучше запускать в Docker, так как это готовый проект на React и у него есть официальный образ. Также есть и официальный чарт от Open WebUI. 

Но не спешите так делать! Ну право, из-за одного сервиса я буду разворачивать у себя еще и docker. Нет, не буду, и штатно инсталировать Ollama тоже не буду. Не доверяю я всяким инсталяторам.)

И как же тогда? А я возьму из репозитория Ollama его портабельный вариант, и просто разверну его в отдельную папку. Готово! Забегая наперед, перед первым стартом  я пропишу еще две системные переменные для Ollama-сервера чтобы к нему можно было обращаться по локальной сети

OLLAMA_HOST=192.168.1.100

и отдельную папку для моделей чтобы файлы не падали на диск "С"

OLLAMA_MODELS=Е:\ollama\models

Пока все! Запускаю OLLAMA-сервер bat-файлом:

@echo off

start /B ollama.exe serve

timeout /t 5

@echo Load model to server ...

ollama.exe run "gemma:latest"

pause


Если вы заранее не загружали модель набирая ollama.exe pull "gemma:latest", то первый старт до готовности отвечать на запросы у вас займет некоторое время. Проверить работу и наличие локальных моделей можно через запрос http://192.168.1.100:11434/api/tags

Friday, 4 October 2024

Лаборатория с REMnux.

Всем привет.

Форензика (Forensics) - это компьютерная криминалистика, наука о расследовании киберпреступлений, то есть прикладная наука о раскрытии преступлений, связанных с компьютерной информацией. Неотъемлемой частью форензики является исследование цифровых доказательств, использование методов поиска, получения и закрепления данных доказательств.

Когда произошел инцидент, необходимо оперативно получить ответы на следующие вопросы:

  • понять, как была реализована атака;
  • построить сценарий взлома;
  • восстановить хронологию (таймлайн) атаки;
  • собрать артефакты, оставшиеся после атаки следы, и проанализировать их;
  • предложить превентивные защитные меры, чтобы такого впредь не повторилось.

Форензика делится на следующие направления:

  • computer forensics – к ней относится все, что связано с поиском артефактов взлома на локальной машине: анализ ram, hdd, реестра, журналов ОС и т. д.;
  • network forensics – анализ сетевого трафика;
  • forensic data analysis – посвящена анализу файлов, структур данных и бинарных последовательностей, оставшихся после атаки или использовавшихся при вторжении;
  • mobile device forensics – занимается всем, что касается особенностей извлечения данных из android и ios;
  • hardware forensic – экспертиза аппаратного обеспечения и технических устройств прошивки, bios и т. д.

В задачи исследователя входит анализ скомпрометированной машины на наличие доказательств компрометации (улик). То есть, по сути, нам важно понимать, как злоумышленник проник в систему, какие уязвимости он использовал, какие учетные записи были скомпрометированы и т. д.

Важно отметить, что доказательства должны быть сохранены в исходном виде, для того чтобы впоследствии эксперты со стороны защиты не смогли заявить, что эти доказательства были подделаны или изменены.

Экспертиза взломанного хоста состоит из Статического анализа и Динамического анализа.

Статический анализ

Задачи статического анализа:

  • создать образ жесткого диска или дампа оперативной памяти;
  • выявить и восстановить удаленные файлы;
  • остатки аномальных файлов в %temp% и системных директориях;
  • собрать историю серфинга веб-браузера;
  • системные логи события авторизации;
  • аудит доступа к файлам и директориям и т. д.;
  • получить список запущенных в памяти процессов и открытых коннектов сети.

Wednesday, 3 January 2024

Krita та А1111.


Всім привіт.

Я тут подумав що Krita повинен мати плагін і до популярного А1111. Ну не може того бути щоб до ComfyUI такий плагін був, а до А1111 не було.

Авжеж є і такий, і він має досить розвинутий, як на мене, інтерфейс, тобто має в Dockers самого Krita аж 6 закладок txt2img, img2img, inpaint, upscale та дві з налаштуваннями. Це навіть схоже на клонування частини інтерфейсу самого А1111 яка перенеcена в Krita.



Thursday, 20 April 2023

Английский язык с ChatGPT.

Всем привет.

Пожалуй, новости о языковых моделях и их использовании уже немного надоели, но вчера я нашел у одного парня для себя полезное применение - изучать Английский, в том числе и разговорный. Что могут нам предложить в этом деле специалисты из OpenAI: например совместить работу ChatGPT, Whisper и Telegram.

Мотивация - нужно заговорить на английском не стесняясь, но так чтобы тебя понимали. Не секрет что уровень B1 у каждого второго преимущественно в чтении или письме. Разговорные уроки с учителем стоят довольно дорого, ходить в английские клубы не всегда удобно, да и вообще общаться с людьми оффлайн или онлайн на непонятные темы не хочется. Поэтому тот парень решил, что для начала будет легше заставить себя говорить на компьютер, например c ChatGPT. Где ChatGPT войдет в роль учителя-помощника и будет поправлять тебя каждый раз если ты ошибешся, также он будет готов тебя слушать 24/7 и поддерживать диалог на любую тематику. Почти идеально.

Про постановку задачи и проверку модели SAR вы можете прочитать у автора в посте. Репозиторий его кода расположен здесь.

Реализация - лично я не заморачивался арендой сервера. Я сделал форк его репозитория и пошел с ним на Gitpod, где и собрал нужный docker-контейнер. Разумеется перед сборкой надо прописать в коде значение openai.api_key  для GPT и TOKEN для Telegram. Уверен, что вы знаете где их искать.)


Далее запускаете контейнер "Run interactive" и разговариваете в своем Telegram. 


Все работает. Для задания роли учителя а не просто собеседника необходимо использовать ключ /teach.

Почти идеально ибо ваш учитель отвечает вам только письменно. Понимать на слух речь собеседника это уже другая задача. Кстати, преподаватели Английского уже малость волнуются за свое будущее, и я их понимаю: АІ-технологии могут им оставить только самых ленивых учеников, или самых болтливых.)

Удачи.


Wednesday, 19 August 2020

WebUI для управления Docker.

Всем привет.

Ностальгия по красивому GUI не отпускает даже при работе с Docker. Но оказывается что благодаря инструменту Portainer можно легко управлять и контейнерами (образами, сетями, сервисами и пр.) на локальном или удаленном docker-хосте (в том числе Swarm-кластере).

Еще одна крайне полезная особенность Portainer‘а - поддержка шаблонов приложений (Application Templates), с помощью которых можно в один клик мышью развернуть все необходимые сервисы для WordPress или MySQL. 

Эти и другие возможности инструмента Portainer можно получить без каких-либо настроек с помощью однострочной команды:

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

После проделанных действий можно перейти в браузере по адресу http://ip_address:9000, установить пароль администратора и выбрать docker-хост (в нашем примере - локальный), которым будет управлять Portainer.

Sunday, 1 April 2018

Тестовый полигон Docker с Zabbix и Jenkins, продолжение.

Всем привет.

Продолжим наши фокусы. Начало здесь.

5. Поднять контейнер с jenkins внутри
docker pull jenkins

Стартуем новый контейнер:
Внимание! В таком старте jenkins захватит консоль ssh. Два пути отсюда, либо с ключом -d демон либо stop/start из другой консоли

docker run --name myjenkins -p 8080:8080 jenkins
-OR-
docker run --name myjenkins -p 8080:8080 -p 50000:50000 -v /home/user00:/var/jenkins_home jenkins

Первый вход в frontend jenkins:
http://IP_адрес_хоста:8080
Создаем пользователя для frontend jenkins.

Была проблема  с повторным входом в frontend jenkins.
Решение нашел такое:
Just change the "useSecurity" element to false in the /var/lib/jenkins/config.xml file. 
This way you will be able to login and reset the password if needed.
<useSecurity>false</useSecurity>
Однако после такой правки вход включился анонимный, который так и остался(.

Friday, 30 March 2018

Тестовый полигон Docker с Zabbix и Jenkins.

Всем привет. 

Недавно у меня появилась возможность попробовать руками СI/CD. Мне поручили развернуть полигон Docker+Zabbix+Jenkins. Это было мое тестовое задание.

Вкратце оно звучало так:
1. Развернуть машину на Centos 7.
1.1 Установить базовый софт и обновления.
1.2 Настроить доступ ssh по публичным ключам
2. Установить и настроить запуск docker
3. Поднять докер контейнер с zabbix внутри
4. Настроить zabbix на мониторинг localhost
5. Поднять контейнер с jenkins внутри
6. После настройки jenkins создать job который при запуске будет ротировать логи localhost
7. Настроить sftp доступ к логам zabbix (readonly)

По правде говоря для меня все было в новинку, кроме первого пункта. Далее я покажу мои шаги с возможными проблемами и попытками их решения. Скажу сразу что как для полного новичка в СI/CD у меня не все получалось. И скорее всего другие кандидаты его выполнили быстрее.

Старт.

1. Развернуть на виртуальном хосте Centos 7.
Тут элементарно. Можно использовать VirtualBox. Однако помните что 7-я Centos любит 64-х разрядную ОС и аппаратную поддержку виртуализации VT-x или AMD-V. Если ваш ЦП не поддерживает инструкции VT-x или AMD-V, то VirtualBox не предложит вам эмуляцию 64-х разрядной ОС.

1.1 Установить базовый софт и обновления.
Под базовым софтом подразумевается установка утилит
mc, nano, htop, ncdu    Ok
yum install bind-utils  Ok

1.2 Настроить доступ ssh по публичным ключам
На эту тему у меня получился пост ранее, читаем здесь.

2. Установить и настроить docker
docker search zabbix
docker pull zabbix

Версия на печать

Популярное