Проблема
Вечерами мы с женой (иногда и с детьми) смотрим сериалы и фильмы. Контент я в основном скачиваю из открытых источников (торренты) и есть несколько неудобств:
-
несколько ноутбуков, которые не всегда заряжены
-
необходимость подключать один из них к телевизору (иногда нужен переходник, + на телевизоре нет 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. Не завёлся сразу — разбираться не стал
Пошаговая инструкция
-
На телефон устанавливаем Termux (из F‑Droid).
-
В Termux ставим proot‑distro и обновляем пакеты:
pkg update && pkg upgradepkg install proot-distro -
Устанавливаем Alpine и заходим в него:
proot-distro install alpineproot-distro login alpine -
Внутри контейнера устанавливаем необходимые пакеты: 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/