ServerAdmin.ru
32.4K subscribers
1.17K photos
72 videos
29 files
3.18K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Ресурс включён в перечень Роскомнадзора
Download Telegram
Развлекательная пятничная тема - очень необычный сервис по запуску старых операционных систем, в том числе специфичных и редких, в браузере - https://copy.sh/v86/.

Я начал с Windows 95. Захотелось поностальгировать. В запущенной системе оказалась игра Age of Empires! Запустил её, и она нормально играется в браузере. Я развернул систему на полный экран, чтобы удобнее было и словил давно забытое ощущение - не могу выйти из полного экрана. На полном серьёзе ощутил себя пользователем Vi или Vim, который первый раз его запустил.

Перепробовал всё, что мне пришло в голову, но так и не смог выйти из полноэкранного режима. Система перехватывает все привычные сочетания клавиш, типа Win, которые обычно помогают свернуть приложение. Но только не тут. Сработало только сочетание Ctrl+Alt+Del. Я через диспетчер задач вываливался в свою систему, но при переходе в браузер, опять оказывался в полноэкранной Windows 95. Пришлось браузер закрыть. Так что аккуратнее. Если кто найдёт способ выйти из полного экрана запущенной системы, расскажите, как это сделали.

Сервис очень крутой и необычный. Я даже толком не понимаю, как всё это работает. Всё исполнение через JavaScript локально у вас в браузере. Поддерживается уйма систем, в том числе специфичных, типа Haiku или системы реального времени QNX. Помню, как по ней какую-то работу, реферат что ли, или курсовую, писал в универе на предмете Операционные системы.

Для запуска ничего не нужно - ни регистрации, ни каких-то настроек. Выбираешь систему, запускаешь, она грузится в браузере. Разворачиваешь на весь экран - работает как родная. Причём, это открытый проект - https://github.com/copy/v86, можно у себя запустить, если очень хочется. Есть инструкция и Dockerfile для упаковки всего этого в контейнер.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#разное
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍80👎1
▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересными/полезными. Это видео из моих подписок за последнее время (обычно беру период в 2 недели), что мне понравились.

Почему программистам сложно найти работу? Что такое агенты?
Рассуждения программиста, плотно работающего с ИИ в компании, которая занимается разработкой и продажей агентов под задачи заказчиков. Можно послушать на прогулке.

HomeLab #3. Апгрейд сети, авто-миграция виртуалок, косяки
Для любителей посмотреть на чужие домашние лабы. У автора необычная кастомная мини-стойка с традиционным кластером на PVE. Похоже, все владельцы несерверного железа сталкиваются с проблемами драйверов сетевых карт. У автора хоть и не Realtek, но тоже проблемы с сетевухами. В целом у автора спокойная, грамотная речь, приятно слушать.

Why You Need 3 Nodes // My Proxmox Ceph Cluster Project!
Автор рассказал про свой кластер Ceph из трёх узлов. Он привёл пример типичной бюджетной схемы из трёх серверов, где поднимается кластер PVE, кластер Ceph, на котором размещаются образы дисков машин. Таким образом получаем очень бюджетную HA конфигурацию виртуальных машин с бесшовной миграцией виртуалок между нодами кластера. Это вполне надёжное и рабочее решение.

Claude Code на своих моделях v2 (Desktop & CLI)
Anthropic запрещает использование сторонних LLM в своём агенте. Автор показывает, как это обойти через использование проксирующего сервиса для LLM - LiteLLM. Последний просто эмулирует API поддерживаемых LLM, переадресовывая запросы в сторонние.

OpenClaw установка на AWS EC2 и AWS Bedrock | TERRAFORM и Вручную | Шаг за Шагом
Интеграция OpenClaw с инфраструктурой AWS. Для нас это не особо сейчас актуально, так как доступ к AWS ограничен. Но интересно просто для понимания процесса. Агент может не только что-то кодить, но и автоматически поднимать необходимые сервисы облачного провайдера, чтобы запускать то, что он накодил. Автор на конкретных примерах показал, как это работает.

ЛУЧШИЕ ЛОКАЛЬНЫЕ OCR-модели: тесты и сравнение на реальных документах
Тест локальных моделей на распознавание текста - PaddleOCR-VL, MinerU, GLM-OCR, Chandra OCR 2, olmOCR 2 и Qwen3.6 35B. Для тестов использовались как печатный и рукописный текст, так и сложные таблицы и формулы. Победили olmOCR-2-7B и Qwen3.6-35B. То есть специализированные LLM при значительно меньших весах показывают сопоставимые результаты с более тяжёлыми моделями общего назначения.

Инструменты для бенчмарка веб-сервера
Автор разбирает теорию по тестированию веб серверов и разбирает с примерами такие утилиты, как ab, wrkx и h2load. О последних двух вообще не слышал никогда, хотя вроде знаю все популярные решения из этой области. У меня были заметки по ним: Yandex.Tank, artillery.io, k6, Locust, Taurus, Plow.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45👎1
Последнее время много про ИИ думаю, про будущее нашей профессии и вот это вот всё. И знаете, какая мне идея в голову пришла? Вот раньше были сисадмины, потом появились DevOps и им почти за то же самое стали платить больше, чем сисадминам.

Мне кажется, уже сейчас можно потихоньку девопсам и тем более сисадминам писать в резюме ИИ-инженер или AI-инженер. Это увеличит и востребованность, и зарплату, хотя делать вы по сути будете всё то же самое, что и раньше. Просто немного изучите ИИ и внедряйте в свой рабочий процесс.

Нигде не видел этой мысли. Самому вчера пришла в голову во время прогулки. Вообще, пешие прогулки или пробежки - полезная тема. Физическая активность сама по себе увеличивает кровообращение и снабжение мозга кислородом, так ты ещё и переключаешь внимание. А если где-то на природе гуляешь, что я обычно делаю, так ещё и медитативный эффект получается.

Стараюсь хотя бы через день гулять пешком по часу. Идеально, конечно, так делать каждый день. Или хотя бы в будни после сидячего рабочего дня. У меня каждый день не получается. Очень много дел помимо основной работы.

#ai #мысли
1👍150👎5
Недавно делал заметку про анализ системных логов с помощью ИИ на примере проблемы с моим старым сервером с PVE. Он в какой-то момент начал аварийно перезагружаться по 2-3 раза в день без видимых на то причин. В логах никаких ошибок. Просто ребут, как-будто нажали кнопку reset.

Я подумал, что начались проблемы со старым железом. Хотел для начала БП поменять, потом память проверить, потому сетевуху заменить. Там стоит чип Realtek, с ним иногда бывают проблемы, хотя ни разу не сталкивался с тем, чтобы он приводил к аварийным перезагрузкам.

И как же мне повезло, что в комментариях один человек предположил, что проблема может быть с новым ядром Linux, которое недавно в PVE обновилось на 7-ю ветку. Судя по всему оно ко мне прилетело с очередным обновлением. Даже не обратил на это внимание.

Как оказалось, проблема была реально с ядром. У меня даже предположения не было смотреть в эту сторону. Не обратил внимания, что ядро обновилось. Сколько бы я времени потратил впустую, если бы не попробовал загрузиться в старой 6-й версии. Я выждал некоторое время и убедился, что не было ни одного аварийного ребута с момента возврата на 6-е ядро.

Делаю отдельно заметку об этом. Возможно, она кому-то сэкономит массу времени, как сэкономило мне. Банальный возврат на прошлую версию ядра, которая всё ещё поддерживаться и никаких проблем с ней нет, решило разом мою проблему.

Смотрим доступные в системе ядра:

# proxmox-boot-tool kernel list
Manually selected kernels:
None.
Automatically selected kernels:
6.17.13-7-pve
7.0.0-3-pve
7.0.2-2-pve

Принудительно выставляем 6-ю версию:

# proxmox-boot-tool kernel pin 6.17.13-7-pve

Перезагружаемся и проверяем:

# uname -r
6.17.13-7-pve

У меня несколько тестовых гипервизоров дома на старом железе и только тут возникли проблемы. Не знаю, с чем это связано, но мне на 100% помогло.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#proxmox #ошибка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍185👎1
Я уже писал и даже не раз о некоторых бесплатных курсах в академии Zabbix. В очередной раз зашёл посмотреть, нет ли там чего-то нового и интересного. И оно нашлось. Вроде ничего особенного, но я получил новую для себя информацию из бесплатного урока Browsing with Zabbix. Это запись какого-то вебинара по этой теме.

Там подробно рассказано о возможностях мониторинга сайтов с помощью Zabbix. Он всегда это умел делать, но в 7-й версии вышло крупное обновление. То, что там реализовано на сегодняшний день, отличается от того, что я настраивал ранее. Вообще все старые наработки, подходы и шаблоны можно забыть и взять то, что Zabbix предлагает из коробки. Например, вот эта моя статья полностью потеряла актуальность.

Мониторинг сайтов в Zabbix Server сейчас реализован следующим образом:

◽️У Zabbix есть интеграция с фреймворком для веб проверок Selenium. Достаточно его запустить в любом виде, например, в виде Docker контейнера, и в конфигурации сервера указать url до Selenium. Никаких настроек больше делать не надо.
◽️Есть готовый шаблон Website by Browser, который помимо сбора основных метрик (время загрузки, размер страницы, время dns запроса, время TCP хендшейков и других) умеет делать скриншоты страниц. В шаблон включена панель с метриками и возможностью быстро посмотреть скриншоты. Сделано просто и относительно удобно.
◽️С помощью Selenium и сценариев на JavaScript можно делать любые проверки сайтов - переходы, заполнение форм, аутентификация и т.д.
◽️Далее включаются все возможности Zabbix по разветвлённым оповещениям с эскалацией и костылестроению. Можно что-то перезапускать, чистить кэши, отправлять логи и т.д.

❗️Важное замечание по поводу скриншотов. Они хранятся в бинарном виде в базе, так что не увлекайтесь их созданием и не храните слишком много. Это будет приводить к серьёзному увеличению размера базы.

В базовых возможностях у вас есть преднастроенный шаблон для основных метрик, а для расширения функциональности можно писать свои. В уроке есть несколько примеров. Например, с Jira, когда выполняется ряд проверок с созданием скриншотов на каждом этапе:

1️⃣ Главная страница портала
2️⃣ Аутентификация - ввод логина и пароля
3️⃣ Страница системы после аутентификации

Секреты для аутентификации хранятся в макросах, доступ к которым может быть ограничен. Это уже не сказать, что просто настроить, но и сложного ничего нет. Selenium - известный продукт. Для него и примеров полно, и ИИ может помочь если что. Обычно проверки все типовые, под себя не сложно адаптировать чей-то пример. У вас получится микс из поддерживаемых методов Selenium и объектов айтема Browser.

Как всё это настроить в актуальной версии сервера - рассказано в документации. Там всё просто, у меня сразу получилось.

Единственное, что не понял, почему в стандартный шаблон мониторинга сайта не добавили айтем с кодом ответа веб сервера и триггер на него. Для того, чтобы это сделать, придётся по старинке добавить Веб сценарий с проверкой кода ответа и вручную для его настроить триггер.

При этом в шаблоне Website by Browser используется метод collectPerfEntries();, который включает в себя код ответа веб сервера. В json портянке базового ключа website.get.data он называется response_status. Достаточно создать ещё один зависимый айтем с JSONPath = $.performance_data.details[0].navigation.response_status с типом данных - целое числовое. И добавить на него триггер, если значение не 200. Странно, что это не сделали. Если будешь сам дорабатывать, то потом придётся при каждом обновлении следить за этим и вручную переносить изменения. Неудобно. Логично было бы такую полезную метрику сразу туда добавить.

И ещё заметил, что в шаблоне ко всем числовым метрикам добавлен множитель 0.001. Не знаю, зачем. С ним цифры получаются нереальные, слишком маленькие. А без множителя похожи на правду. Убрал его.

Помимо этого отвязал интервал создания скриншотов от остальных метрик, так как делать даже раз в минуту скриншот очень расточительно и не имеет смысла.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#zabbix
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍76👎2
Мне тут попался на глаза один любопытный проект - wstunnel. Самому особо не нужен, но друг интересовался 😁. Он любой трафик упаковывает в websocket. Сейчас много таких упаковывателей появилось, как в websocket, в dns запросы, так и другие протоколы, например, icmp.

Этот упаковыватель отличает простота использования. Я лично проверил, работает хорошо. Состоит из одного бинарника, который достаточно скачать и запустить. Поддерживаются системы - Linux, macOS, Android. Windows нет, но если в винде запустить в WSL, то в основной системе нормально работает. Можно без проблем поднять SOCKS5 для основного браузера.

Покажу на примере, как это работает. Допустим, нам надо на работе скачать дистрибутив Veeam Agent for Microsoft Windows FREE или Elasticsearch. Компании заблокировали возможность загрузки из РФ. А на файрволе закрыты все порты, кроме 443, и изменить это вы не можете. Арендуем любую VPS, откуда будет доступ в США. Скачиваем на неё бинарник и распаковываем:

# wget https://github.com/erebe/wstunnel/releases/download/v10.5.5/wstunnel_10.5.5_linux_amd64.tar.gz
# tar xzvf wstunnel_10.5.5_linux_amd64.tar.gz

Даём права на запуск и запускаем в режиме сервера:

# ./wstunnel server wss://[::]:443

На своей машине скачиваем то же самое и запускаем в режиме клиента:

# ./wstunnel client -L socks5://127.0.0.1:8090 --connection-min-idle 5 wss://vps_ip:443

У вас на машине запустился SOCKS5 прокси по адресу 127.0.0.1:8090. Теперь эти параметры можно использовать в браузере в настройках прокси. Отдельно порекомендую вот это расширение для браузеров - ZeroOmega. Я постоянно пользуюсь, хорошо работает, задачи решает. Можно быстро переключать прокси на конкретных сайтах, либо настроить постоянные списки.

Благодаря этому трюку вы без проблем сможете обойти ссанкции недружественных стран и прочих иноагентов-вредителей.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩
Please open Telegram to view this post
VIEW IN TELEGRAM
👍156👎1
Очередная подборка статей авторов, которые согласились в ней участвовать. Кто не понимает, о чём идёт речь, может прочитать прошлые публикации по этой теме (раз, два).

Удобная Docker лаборатория с блэкджеком и Web GUI
Очень подробная статья с настройкой лаборатории на базе Docker, Komodo - оркестратор для него, Nginx Proxy Manager - веб интерфейс управления веб сервером, Technitium - DNS сервер для всей лаборатории.

Установка Taiga в Docker
Установка сервера для управления проектами Taiga.io - функциональный open source проект для работы по методологии Agile. Я делал про него заметку.

Duplicati - резервное копирование с шифрованием для домашнего сервера
Обзор популярной программы для бэкапов. Я делал про неё заметку У программы простой и приятный веб интерфейс, поддержка дедупликации и инкрементных бэкапов. Ставится локально на сервер и с него же управляется. То есть это не централизованная система.

Zerobyte - автоматизация резервного копирования для self-hosted инфраструктуры
Ещё один инструмент для бэкапов, но уже централизованный. В основе у него Restic. Я его недавно тестировал и писал заметку. Интересное решение, рекомендую попробовать.

Zabbix. Оповещения в MAX.
Скрипт и подробная инструкция по использованию для отправки уведомлений из Zabbix в MAX.

Как настроить оповещения Zabbix в MAX
Ещё одна реализация уведомлений из Zabbix в MAX через Webhook, без внешнего скрипта.

Первое знакомство с n8n
Обзор популярной платформы для автоматизации n8n - визуальный конструктор для выстраивания рабочих процессов. Автор показал установку и создание простого workflow с отправкой уведомления в Telegram.

Как восстановить данные из резервной копии Veeam Agent
Подробная инструкция по восстановлению бэкапа, созданного через Veeam Agent. Там на самом деле не всё так просто и очевидно, как может показаться на первый взгляд. Я недавно сталкивался с проблемами. Надо обязательно тестировать восстановление заранее, чтобы знать, как действовать.

Настраиваем OpenConnect middle server для доступа к закрытому контуру
Подробная статья по настройке OpenConnect сервера в качестве промежуточного сервера, который принимает подключения от клиентов, а потом сам подключается к другому серверу и прокидывает туда соединение пользователя. Интересная тема в том числе в контексте современных блокировок.

Pangolin — самый простой (но не дешевый) способ открыть доступ к homelab
Обзор сервиса Pangolin для публикации веб сервисов из закрытой сети в интернет. Необычная реализация на базе Traefik + свой сервис IAM + Wireguard. Я писал по нему подробную заметку.

PowerShell для начинающих администраторов: команды, справка и примеры
Базовая информация по работе в Powershell.

🔥Fwknop - современный port knocking для Linux
Современная реализация похожего на port knocking подхода для открытия доступа на файрволе. Ни разу раньше не слышал про него. Надо будет попробовать. Там в основе отправка одного пакета с зашифрованным содержимым, а не обычный стук разными размерами пакетов по портам или отправка icmp запросов.

Хотите присоединиться к этой подборке? Пишите мне в личные сообщения.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍55👎3
При переходе на Linux с Freebsd, я почти сразу пересел на Centos, где по умолчанию была файловая система XFS. Я особо не заморачивался, и везде использовал её. Каких-то нюансов или проблем у меня с ней не было. По мере того, как стал потихоньку использовать другие ОC, в частности Ubuntu и Debian, где по умолчанию используется EXT4, стал появляться вопрос, а какую файловую систему использовать? Можно выбрать и ту, и другую.

Первое, что приходит в голову, RedHat - крупная именитая компания с огромным количеством различных разработок. Если она рекомендует и по умолчанию использует XFS, почему бы просто не довериться ей.

Я уже поднимал когда-то давно эту тему на канале и было много отзывов по этим ФС. Решил для себя и вас актуализировать этот вопрос, прочитав обсуждения на эту тему, некоторые статьи и поспрашивав ИИ. Вот что в итоге вынес для себя.

📌 На основе комментариев в канале и нескольких обсуждений на Reddit:

◽️XFS архитектурно более сложная система, восстановить с неё данные, если что-то пойдёт не так, намного сложнее, чем с EXT4.
◽️Аварийные выключения с гораздо большей вероятностью приведут к сбоям XFS. На эту тему прям много отзывов.
◽️XFS не получится уменьшить в размере, в отличие от EXT4.
◽️В EXT4 количество доступных inodes задаётся в момент создания, либо используется значение по умолчанию, и их вполне реально все исчерпать. Я лично с этим сталкивался. В XFS такой проблемы нет, они выделяются динамически.
◽️Из-за активного развития XFS, в разных системах могут быть разные версии ФС, так что не получится примонтировать том из одной системы в другую, где отличаются версии ФС в ядре. Это в основном актуально при подключении томов из новых версий в старые. Например, том из Centos 7 можно примонтировать в Centos 9, а наоборот - нет. Даже из Centos 9 в 8-ю версию не примонтировать.

С точки зрения пользовательского опыта, EXT4 проще, универсальнее, надёжнее.

📌 Теперь набор архитектурных отличий:

◽️У XFS есть так называемые Allocation Groups (AG) - независимые группы, на которые разбита файловая система. Каждая AG работает как отдельная мини файловая система. Благодаря этому XFS более эффективно работает с параллельной нагрузкой по чтению-записи по сравнению с EXT4. Это их основное архитектурное отличие. Важно понимать, что разница эта будет заметна только при больших нагрузках на больших же хранилищах.
◽️В XFS есть поддержка Reflink - позволяет нескольким файлам использовать одни и те же блоки данных, что экономит место на диске. Она основана на механизме копирования при записи (Copy-on-Write, CoW).

И ещё важный нюанс. В 2020 году вышла известная статья со сравнением производительности XFS и EXT4 в контексте использования под MySQL сервер. С учётом изменений в MySQL того времени и тестам, автор сделал однозначный вывод, что с XFS работа значительно быстрее, так что он рекомендовал использовать именно её. С тех пор было много обновлений, в том числе и EXT4 и такой разницы в производительности больше нет. Так что та рекомендация потеряла актуальность. Если верить современным тестам, то разница между этими файловыми системами в смешанной нагрузке стала минимальна.

Какой я в итоге для себя сделал вывод?

- Для смешанной нагрузки в различных VPS использовать EXT4 и не забивать себе голову.

- XFS рассматривать только в больших хранилищах, собранных в RAID, например под видеонаблюдение, образы VM или бэкапы. Последнее наиболее актуально. Например, Veeam поддерживает технологию reflink, что существенно экономит место и увеличивает производительность хранилища с бэкапами. У меня есть одна такая большая хранилка с Veeam и там, к сожалению, EXT4. Надо было раньше эту заметку писать. Так что имейте это в виду. Я на тот момент не стал заморачиваться и сделал всё по умолчанию. И теперь Synthetic Full длится часами, а мог бы за минуты выполняться.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#fileserver
Please open Telegram to view this post
VIEW IN TELEGRAM
👍136👎2
Когда разбирался с файловыми системами, увидел возможность EXT4, про которую раньше не знал. Можно сделать дамп метаданных файловой системы, без непосредственно самих данных. То есть вы получаете список всех файлов с размером, правами и прочими атрибутами. Этот дамп можно примонтировать, как обычный диск, и посмотреть структуру. Всё будет выглядеть, как обычная файловая система, только самих данных не будет.

Выглядит это примерно так. Работает даже для примонтированной системы. Но для надёжности, конечно, лучше отмонтировать, если есть возможность:

# e2image -rf /dev/sda1 fs_raw.img
# mkdir -p /mnt/fs_metadata
# mount -t ext4 -o ro,noload fs_raw.img /mnt/fs_metadata

В данном случае я сделал образ метаданных корневого раздела диска и примонтировал его в /mnt/fs_metadata.

На практике это может быть полезным для сравнения больших разнесённых хранилищ файлов. Например, можно снять дамп метаданных, перенести его на другой сервер, там смонтировать и очень быстро найти различия с помощью того же rsync. По сети такое сравнение для больших хранилищ может длиться очень долго. А через такой дамп быстрее в разы.

Выглядит это примерно так:

# rsync -ani --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run --exclude=/tmp --exclude=/mnt / /mnt/fs_metadata/

В данном случае --exclude используются, потому что я сравниваю корень. Оставил их для примера, если нужно будет тоже сделать какие-то исключения. На выходе получите листинг изменённых файлов, где будет указан тип файла
f / d / l (файл / директория / симлинк) и чем различаются: s - размер, p - права, o - владелец и т.д. По этим меткам, соответственно, можно грепнуть и вывести только нужные различия.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍143👎1
Кремниевая долина - наиболее мемный сериал на IT тематику, из которого есть куча нарезок и различных переводов. Особенно нарезок с Гилфойлом. С момента его выхода ничего лучше так и не сняли.

Предлагаю к просмотру три наиболее забавных с моей точки зрения момента, касающихся напрямую IT и наших повседневных задач:

1️⃣ Удаление данных. Это вообще самый топ. Там можно присмотреться к консоли и увидеть реальную систему, не бутафорию.

2️⃣ Собеседование с Гилфойлом, когда его брали на работу, где он выдал великолепный монолог.

3️⃣ Обыгран популярный мем на тему табов или пробелов. Ричард бортанул подругу, когда увидел, что она ставит пробелы вместо табов.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍108
У меня наконец-то дошли руки заняться семейным видеоархивом. Он так разросся, что вручную его вести затруднительно. Решил подключить технологии машинного обучения в лице хранилища Immich. Это известный open source продукт, который постоянно обозревают блогеры. Посмотреть обзор - это одно, а реально попользоваться - другое дело.

Меня всегда останавливало от поднятия какого-то сервиса для медиа то, что у тебя параллельно возникает ещё один архив, куда надо загружать новые файлы. Можно столкнуться с тем, что при каких-то проблемах с сервисом, можно потерять либо саму структуру файлов в нём, либо вообще сами файлы, так как они превратятся в кашу.

Сейчас у меня архив хранится в сетевой папке с ручной разбивкой по событиям, датам и т.д. Это просто и надёжно, но хлопотно в плане каталогизации, потому что поток новых файлов большой, времени в нём разбираться нету. В итоге последние года всё валится в папки "Разобрать", "2025", "Старый смартфон" и т.д. Никто туда не заходит и ничего не разбирает.

Всё это дело копируется в Яндекс.Диск и в ещё один локальный бэкап. Яндекс диск в целом прост и неприхотлив. По расписанию туда копируются все изменения. Файлы при желании можно посмотреть в браузере. Из аналитики только временная шкала и некоторый интеллектуальный поиск, но не понятно, как и чем он строится. Иногда могу что-то быстро найти, иногда нет. К примеру, по запросу "деревянный дом" вижу фотки своего дома. Довольно удобно. Но иногда что-то ищу, но нахожу.

В итоге развернул Immich и скормил ему свой архив. Расскажу по пунктам, чем он привлёк и как там всё работает:

🔥Самое главное, почему решил его использовать - в Immich можно подключить свой уже существующий архив в виде внешнего хранилища. Для меня это ключевое преимущество. Я по прежнему всё сгружаю в сетевую папку, при желании распределяю по директориям, как мне нравится, бэкаплю по той же схеме, чтобы в случае потери Immich у меня не пострадал сам архив. Immich в него ходит в режиме чтения.

🔹Поверх моего архива Immich делает следующее:

◽️Создаёт миниатюры фотографий для просмотра в браузере.
◽️Извлекает метаданные из фоток для поиска по ним.
◽️Распознаёт содержимое фоток для поиска. К примеру, я могу найти все фотографии, где есть море, коричневая футболка, деревянный дом и т.д. Примерно так же, как в Яндекс Диске. Качество среднее. Что-то находит, что-то нет. Это всё калибруется настройками локальной LLM и качеством миниатюр, по которым ведётся поиск.
◽️Поиск дубликатов по содержимому, а не метаданным.
◽️Обнаружение и распознавание лиц. Это то, что понравилось больше всего. Распознаёт лица нормально, даже детей. Где-то после 2-3 лет детей уже не путает. Грудничка и трехлетку видит как разных детей, но это решается ручным объединением.
◽️Распознаёт текст. Я особо не проверял, как работает, у меня почти нет текста на фотках.
◽️ Кодирует видео в заданные форматы и разрешения. Я не стал это делать, не хочу плодить дубликаты файлов. То, что надо, сжимаю сам в изначальном архиве.
◽️По геометкам, если они есть, отображает на карте фотографии.

Благодаря метаданным, геометкам, распознаванию содержимого и лиц можно выполнять расширенный поиск. Например, вывести все фотки какого-то ребёнка в конкретный год. Под аналитику можно использовать как встроенные небольшие локальные модели, так и подключать внешние. Не тестировал, как это работает.

Из своих данных Immich генерирует миниатюры и хранит всё своё состояние в PostgreSQL. Основную ценность представляет она, если вы фотки подключаете из внешнего хранилища. Миниатюры, если что, можно пересоздать, как и переиндексировать всю медиатеку. Это процесс небыстрый, но и потеря данных некритична, если что. Пару тройку дней можно подождать, если нужно будет заново разметить.

Я пока остановился на том, буду вести архив как раньше, а Immich использовать только для аналитики. Загружать фото непосредственно в него, например, через приложение на смартфоне, не буду. Это удобно, но будет приводить к раздвоению архива.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#fileserver
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍125👎2