Nano NAS из смартфона

от автора

Проблема

Вечерами мы с женой (иногда и с детьми) смотрим сериалы и фильмы. Контент я в основном скачиваю из открытых источников (торренты) и есть несколько неудобств:

  • несколько ноутбуков, которые не всегда заряжены

  • необходимость подключать один из них к телевизору (иногда нужен переходник, + на телевизоре нет AirPlay).

  • на рабочем ноуте не хочется качать торренты

  • поставишь фильм на закачку — а кто-то возьмёт и закроет ноут

Как хочется

Включил телек -> выбрал фильм -> смотришь

Решение

После статьи на Хабре про «домашний NAS своими руками» захотелось сделать что-то подобное, но увидев цены на готовые серьёзные решения (да и даже на комплектуем, диски, корпуса и т.д.) — передумал.

Вспомнил, что недавно мой старый OnePlus 5T (2017 года. Боже, как он был хорош. Да я и сейчас бы мог его использовать) перешёл обратно ко мне от ребёнка (“третья жизнь смартфона”). И решил попробовать использовать его как «ультра-мини‑нано-NAS». А если быть точным — медиа‑сервер. Встроенной памяти маловато (всего 64 Гб) но при должной “гигиене” (“посмотрел фильм — удалил”) — должно хватить.

Аппарат кстати по‑прежнему быстрый и приятный в использовании, но уже не получает обновлений.

Чтобы не превращать телефон в «монолитную» Linux‑систему (рассматривал postmarketOS), я выбрал более щадящий путь: установить Termux и запустить в нём Linux‑подобную среду через PRoot. Благодаря этому смартфон остаётся полноценным устройством с двумя SIM‑картами, и при этом можно без риска для Android подъёмать сервисы для раздачи медиаконтента.

Выбор программ

  • Alpine Linux

  • sshd

  • dms (https://github.com/anacrolix/dms) — лёгкий и простой в настройке (3 параметра при запуске демона) DLNA сервер.

  • transmission‑daemon — для торрентов. Имеет встроенную веб-адимнку -> можно стартануть загрузку с любого устройства в сети

Смотрел альтернативы

  • Jellyfin. Нужен .NET и тяжеловат для телефона

  • Gerbera. Показался сложным в конфигурации

  • minidlna. Не завёлся сразу — разбираться не стал

Пошаговая инструкция

  1. На телефон устанавливаем Termux (из F‑Droid).

  2. В Termux ставим proot‑distro и обновляем пакеты:

    pkg update && pkg upgradepkg install proot-distro
  3. Устанавливаем Alpine и заходим в него:

    proot-distro install alpineproot-distro login alpine
  4. Внутри контейнера устанавливаем необходимые пакеты: SSH, transmission‑daemon и dms. Пример команд для Alpine:

    apk updateapk add openssh transmission-daemon ca-certificates curl curl# DMS - качал с GitHub бинарник

Хитрости и мелкие настройки

  • SSH: использую порт 2222 для SSH, так как стандартный порт 22 может быть заблокирован или недоступен.

  • На Android можно повысить лимит фоновых процессов, чтобы Termux и контейнер не убивались системой:

    adb shell device_config put activity_manager max_phantom_processes 2147483647
  • В настройках Android для приложения Termux отключите энергосбережение и оптимизацию, разрешите ему работать в фоне

  • После перезагрузки телефона нужно снова запускать контейнер и сервисы. Чтобы облегчить этот процесс, можно добавить стартовый скрипт в ~/.ashrc внутри Alpine, который будет проверять и запускать необходимые демоны:

    # --- Server Startup Script ---# 1. Start SSH Daemon (if not running)if ! pidof "sshd" > /dev/null; thenc    /usr/sbin/sshd    echo "🚀 SSH Server started on port 2222"fi# 2. Start Transmission Daemon (if not running)if ! pidof "transmission-daemon" > /dev/null; then    transmission-daemon -g ~/.config/transmission-daemon    echo "📥 Transmission Daemon started"fi# 3. Start DMS Media Server (background)if ! pidof "dms" > /dev/null; then    /root/dms -path /sdcard/Download -ifname wlan0 -http :8200 -friendlyName "5T-Cinema" > /dev/null 2>&1 &    echo "📺 DMS Media Server started in background"fiecho "--- All services are active ---"

Итог

  • Решение простое и дешёвое: старый смартфон превращается в компактный DLNA‑сервер, доступный для телевизора в локальной сети.

  • Termux и PRoot даёт гибкость без полной замены Android

  • Лёгкие компоненты Alpine, dms и transmission‑daemon укладываются в ресурсы старого устройства.

Лежит не жужжит (в прямом смысле). Фильмы скачивает, раздаёт и показывает.

Лежит не жужжит (в прямом смысле). Фильмы скачивает, раздаёт и показывает.

ссылка на оригинал статьи https://habr.com/ru/articles/1022218/