Воронин

подключаем AI к нашему synology

Я использовал свою систему запущенную на Ollama (Nvidia RTX4090), по производительности просадок нет. Как поднять на debian ollama расписывать не стану, сразу перейду к настройке совместной работы с synology.

Для начала на м надо сделать модель, которую сможет вызывать synology, для этого я склонировал Qwen/Qwen3-235B-A22B в gpt-4o-mini

echo "FROM qwen3:235b" >> gpt-4o-mini.Modelfile
ollama create gpt-4o-mini -f ./gpt-4o-mini.Modelfile

проверка работы

curl http://localhost:11434/api/generate -d '{ "model": "gpt-4o-mini", "prompt": "Why is the sky blue?" }'

URL по-умолчанию для подключения к локальной Ollama http://ip_нашего_сервера:11434

формат API идентичный OpenAI

теперь в Synology добавляем новую LLM

название указываем своё, ключ API — любой (можно пробел)

открываем «Дополнительные настройки» и прописываем нашу URL

готово

как подружить synology с непроверенными дисками

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

Экономя до 30% стоимости на покупке и ставя диски не synology мы теряем возможность мониторинга smart.

Ежемесячных отчётов и т. д.

и критично это становится, когда мы используем не домашние решения, а большие серверы с дисками SAS, тут разница стоимости дисков может превышать и 500 тыс. руб.

Зато теперь, благодаря, Дейву Расселу у нас есть возможность «подружить» диски сторонних производителей с нашим сервером.

Для применения исправления, нужен доступ к серверу через SSH. Чтобы его включить перейдите в «Панель управления» -> «Терминал» и установите галочку напротив «Включить службу SSH», обязательно смените 22 порт на свой уникальный (49152-65535).

далее подключаемся по SSH (в linux и так понятно) в windows откройте терминал Win+X

подключитесь к серверу

где
  • адрес_сервера — это имя или ip адрес вашего сервера
  • пользователь — это логин администратора сервера (именно дефолтного администратора)
  • порт — порт, который назначили службе SSH (см. выше)

после подключения перейдите в режим администратора (укажите пароль пользователя)

sudo -i

теперь создаём папку opt и скачиваем скрипты

mkdir -m775 /opt
cd /opt
curl -O "https://raw.githubusercontent.com/007revad/Synology_HDD_db/refs/heads/main/syno_hdd_db.sh"
curl -O "https://raw.githubusercontent.com/007revad/Synology_HDD_db/refs/heads/main/syno_hdd_vendor_ids.txt"
chmod 750 /opt/syno_hdd_db.sh

выполните скрипт для обновления базы данных дисков

/opt/syno_hdd_db.sh

скрипт сам определит модель сервера, версию DSM, установленные диски и пропишет их в лист совместимости

и практически сразу диски станут «зелёными»

рекомендую запустить «исправление ошибок данных», чтобы всё было идеально

Скрипт для проверки валидности сертификата сервера

Обратились коллеги, скину скрин ошибки соединения с teamwork

надо проверить валидность сертификата

собственный тест сервера ошибки не выявил

как и собственный тест менеджера подключений

обратите внимание, все соединения защищены шифрованием ssl

давайте, напишем простой скрипт на bash для тестирования серификата на каждом подключении снаружи

#!/bin/bash

HOST="имя сервера" # Замените на ваш домен
#PORT="443"
PORT="27001"
DAYS_THRESHOLD=30 # За сколько дней предупреждать об истечении

# 1. Получаем даты окончания сертификата
# -connect: Подключаемся к хосту:порту
# -servername: Указываем SNI (Server Name Indication) для SNI-серверов
# x509 -noout -dates: Извлекаем даты из сертификата
END_DATE_STR=$(openssl s_client -connect $HOST:$PORT -servername $HOST 2>/dev/null | openssl x509 -noout -dates | grep "notAfter")

if [ -z "$END_DATE_STR" ]; then
    echo "Не удалось получить сертификат или ошибка соединения для $HOST"
    exit 1
fi

# Извлекаем дату в формате 'notAfter=...'
END_DATE=$(echo "$END_DATE_STR" | cut -d '=' -f 2)

# 2. Конвертируем дату в секунды с эпохи Unix
# date -d: Парсит дату
# +%s: Выводит в секундах
END_TIMESTAMP=$(date -d "$END_DATE" +%s)
CURRENT_TIMESTAMP=$(date +%s)

# 3. Вычисляем оставшиеся дни
DAYS_LEFT=$(( (END_TIMESTAMP - CURRENT_TIMESTAMP) / 86400 )) # 86400 секунд в дне

echo "Сертификат для $HOST действителен до: $END_DATE ($DAYS_LEFT дней осталось)"

# 4. Проверка на истечение срока
if [ "$DAYS_LEFT" -lt 0 ]; then
    echo "!!! ВНИМАНИЕ: Сертификат для $HOST истек $((-1 * DAYS_LEFT)) дней назад !!!"
elif [ "$DAYS_LEFT" -le "$DAYS_THRESHOLD" ]; then
    echo "!!! ВНИМАНИЕ: Сертификат для $HOST истекает через $DAYS_LEFT дней (менее $DAYS_THRESHOLD) !!!"
else
    echo "Сертификат для $HOST в порядке."
fi

ну и результат выполнения (проверял 443 и 27001 порты)

Ранее Ctrl + ↓