README.md

Dockerfile для установки yandex-disk на Synology NAS

Образ может быть собран как на базе Альт Линукс (по умолчанию), так и банальной убунты.

Синхронизация выполняется в ${SYNO_TARGET_PATH} (По умолчанию, ~/YandexDisk). Конфигурация хранится в volume.

Имейте ввиду, что Linux-версия yandex-disk уже почти 10-ок лет весьма “ограниченная”, мягко говоря. Яндекс положил болтище на развитие программы. И возможности по выборочной синхронизации ограничены максимум чёрным списком. Потому программа будет синхронизировать всё подряд.

Но мне это даже на руку, т.к. я не хочу ставить этот обрубок на свой Linux Desktop, чтобы он мне на SSD синхронизировал весь терабайт сразу. Я лучше подключу его по сети и буду пользоваться им через свою 2.5 гигабитную сеть. А Synology будет выполнять роль толстого кэша. Ради чего и создавалось всё это.

Использование

Склонировать репозиторий

git clone https://gitflic.ru/project/egzakharovich/synology_yandex-disk_docker
cd synology_yandex-disk_docker

Скопировать .env файл из шаблона

cp .template.env .env

Определить в .env файле переменные, которые значений по умолчанию не имеют. Такие как SYNO_UID и SYNO_USER.

Чтобы получить их значения, нужно зайти на Synology по ssh и вызвать команды id -u и id -un

# Предполагается, что у вас настроен хост "synology" до вашего NAS в ~/.ssh/config
ssh synology
id -u
# ^ Скопировать в SYNO_UID
id -un
# ^ Скопировать в SYNO_USER

И скопируйте полученные значения в текстовый файл .env

На рабочей машине определить контекст для docker, который будет указывать на synology.

# Контекст ссылается на хост, определённый в ~/.ssh/config
docker context create synology --docker "host=ssh://synology"
# Переключить контекст
docker context use synology
# Проверить соединение, перечислив выполняемые контейнеры
docker ps

Контекст не нужно определять только в том случае, если вы установили git на synology и клонируете репозиторий непосредственно на NAS, через ssh.

Затем, открыть приложение Docker в веб-интерфейсе DSM (я надеюсь, вы его установили, не так ли?), оно пригодится позже.

Пока оболочка находится (cd, pwd) в склонированном репозитории, вызвать docker compose up -d. Дождаться завершения “сборки” и запуска.

Перейти в веб-интерфейс DSM, там должен отобразиться новый контейнер yandex-disk-${SYNO_USER}. Провалитесь в него, затем на вкладку журналы и убедитесь, что там отобразилась строчка, которая просит вас перейти на https://ya.ru/device и ввести код. Код скопируйте и перейдите в новой вкладке, перед этим убедившись, что в этом браузере вы залогинены под нужным аккаунтом Яндекса.

Введите код на странице, нажмите кнопку и на этом, по идее, всё. Синхронизация должна начаться. В журнале каждую минуту (по умолчанию) будет отображаться статус синхронизации.

Описание

Опишите проект

Конвейеры
0 успешных
0 с ошибкой