TANIX W2 — ВСТАНОВЛЕННЯ DEBIAN, DOCKER І КОНТЕЙНЕРІВ

TANIX W2 — ВСТАНОВЛЕННЯ DEBIAN, DOCKER І КОНТЕЙНЕРІВ
Після виконання цих інструкцій, ви отримаєте ядро ​​розумного будинку за $20 з енергоспоживанням 2-5W.

Відразу почну з очікуваного питання: «А повернення після Linux на Android TV зробити можна і це дуже просто?» — Так, саме так)
Завантажити Slimbox і записати його на SD-карту програмою — Burn Card Maker 2.0.3 . Установка така сама, як і Debian — вставити картку, затиснути зубочисткою кнопку в аудіороз’єм і підключити живлення. Минут за п’ять на приставці знову Android TV. Тому виконувати цю інструкцію можна без страху та побоювань, у Вас все вийде!

 

Підготовка носія та образу Debain:

Завантажуємо програму для запису образу на флеш-пам’ять і сам образ:
https://etcher.balena.io/  
https://github.com/devmfc/debian-on-amlogic/releases

Записуємо, відкриваємо файл boot.config і видаляємо # зліва від потрібної моделі тв-боксу, в нашому випадку:

| box=tanixw2

Вставляємо флеш-пам’ять (SD/USB). Затискаємо зубочисткою кнопку, яка знаходиться в аудіороз’ємі та подаємо харчування. Чекаємо на 5 секунд.

Вводимо в терміналі (або powershell) в одній локальній мережі з пристроєм:

| ssh root@ip

Пароль: tvbox

ip – адреси, яка присвоєна тв-боксу. Його видно при підключенні плеєра HDMI. Також можна переглянути в роутері або за допомогою програми для смартфона, підключеного до тієї ж локальної мережі, наприклад WIFIMan

Переносимо прошивку на внутрішню пам’ять пристрою:

Вводимо команди по черзі:

| ./aml-multiboot-setup.sh

| ./aml-install-to-emmc.sh

reboot

Після перезавантаження пристрою знову входимо до ssh:

|  ssh root@ip

Пароль:tvbox

 

Оновлюємо пакети:

| apt update && apt upgrade -y

Встановлюємо пакет nano (текстовий редактор):

| apt install nano

Встановлюємо Docker:

| apt update && apt install -y ca-certificates curl gnupg lsb-release && mkdir -p /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/debian/gpg | gpg —dearmor -o /etc/apt/keyrings/docker.gpg && echo «deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.gpg] docker-ce-cli containerd.io docker-buildx-plugin docker-compose-

Веб-інтерфейс Portainer за адресою http://ip:9000

Встановлюємо Portainer (для управління контейнерами):

| docker volume create portainer

| docker run -d —name portainer —restart=always -p 9000:9000 -p 9443:9443 -v /var/run/docker.sock:/var/run/docker.sock -v portainer:/data portainer/portainer-ce:latest

Після встановлення доступів за адресою:  http://ip:9000

 

Розшаримо папку з контейнерами в SMB:

| apt install -y samba samba-common-bin

| nano /etc/samba/smb.conf

Опускаємося вниз файлу, додаємо:

[DockerVolumes]

   path = /var/lib/docker/volumes

   browseable = yes

   read only = no

   guest ok = no

   valid users = root

   force user = root

“CTRL+O” → “ENTER” → “CTRL+X”

smbpasswd -a root

Вводимо пароль для доступу до SMB з логіном root та натискаємо “ ENTER

systemctl restart smbd

systemctl enable smbd

Встановлюємо MQTT-брокер:

docker volume create mosquitto

docker run -d —name mosquitto —restart=always —network host -v /var/lib/docker/volumes/mosquitto:/mosquitto eclipse-mosquitto:latest

Потім зупиняємо MQTT:

docker stop mosquitto

Створюємо файл – mosquitto.conf

mkdir -p /var/lib/docker/volumes/mosquitto/config

nano /var/lib/docker/volumes/mosquitto/config/mosquitto.conf

Вставляємо текст:

persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
listener 1883
allow_anonymous false
password_file /mosquitto/config/passwd

Після введення зберігаємо та виходимо: “CTRL+O” → “ENTER” → “CTRL+X”
Створюємо файл — passwd

Заходимо на сайт:   https://dmelo.eu/blog/mosquitto_passwd_gen/

Вводимо:
Username — homeassistant

Password — вигадуєте пароль до брокера та вводите його
Iterations — 100
Натискаємо Generate

У зеленому полі з’явився пароль.

У SSH вводимо:

nano /var/lib/docker/volumes/mosquitto/config/passwd

Вставляємо туди весь текст із зеленого поля цілком

Після введення зберігаємо та виходимо: “CTRL+O” → “ENTER” → “CTRL+X”

Запускаємо MQTT:
docker start mosquitto

Встановлюємо ESPHome:
docker volume create esphome
docker run -d —name esphome —restart=always —network host -e TZ=Europe/Kyiv -v /var/lib/docker/volumes/esphome:/config

Europe/Kyiv – замінюємо на вашу часову зону. Переглянути список можна за посиланням: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

Після встановлення доступів за адресою:  http://ip:6052

 

Встановлюємо Z2M (Zigbee2MQTT):

docker volume create z2m

docker run -d —name zigbee2mqtt —device /dev/ttyUSB0:/dev/ttyUSB0 —restart=always —network host -v /var/lib/docker/volumes/z2m:/app/data koenkk/zigbee2mqtt:latest

PS рядком —device /dev/ttyUSB0:/dev/ttyUSB0 \ ми прокидаємо в наш контейнер доступ до USB-zigbee координатора. Якщо він знаходитись на іншому порту, потрібно прописати інший. Дізнатися про це можна командою:

ls -l /dev/ttyUSB*

або, якщо нічого не знайшло:

ls -l /dev/ttyACM*

Ми побачимо:

УВАГА ! Zigbee2MQTT треба налаштовувати, шляхом редагування файлу configuration.yaml у папці » z2m «, у нас вона доступна в SMB.

Тому потім зупиняємо Z2M:

docker stop zigbee2mqtt

Налаштовуємо configuration.yaml :

YOUTUBE має докладні професійні інструкції налаштування Z2M під кожен конкретний адаптер Zigbee.

Після чого запускаємо Z2M:

docker start zigbee2mqtt

Після встановлення доступів за адресою: http://ip:8080

Встановлюємо HomeAssistant:

docker volume create homeassistant

docker run -d —name homeassistant —device /dev/ttyUSB0:/dev/ttyUSB0 —restart=always —network=host -v /var/lib/docker/volumes/homeassistant:/config ghcr.io/home-assistant/home-assistant:stable

Якщо у вас Zigbee-координатора немає, то цю строчку вводити не потрібно:

  —device /dev/ttyUSB0:/dev/ttyUSB0 \ 

Коли з’явиться – виконайте:

docker stop homeassistant

docker rm homeassistant

І встановіть Home Assistant — повторно ( «Встановлюємо HomeAssistant»)

Всі ваші дані будуть залишатися без змін (але на всякий випадок робіть регулярні автобекапі HomeAssistant біля хмари та ручні бекапі перед подібними маніпуляціями).

Після встановлення доступів за адресою: http://ip:8123

Установка HACS:

Після встановлення та налаштування Home Assistant заходимо за адресою та завантажуємо:

https://github.com/hacs/integration/releases/tag/2.0.5

Розпаковуємо та папку HACS поміщаємо в папку «custom_components» (якщо ні — створіть) у кореневому каталозі контейнера (там, де файли configuration.yaml).

Перезавантажуємо систему, заходимо Установки — Пристрої та служби — Додати інтеграцію та шукаємо HACS.

Після перезавантаження ми отримаємо HACS.

Встановлюємо Watchtower (контейнер для автоматичного оновлення всіх контейнерів у DOCKER):

docker run -d —name watchtower —restart=always -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower —cleanup —interval 86400

interval 86400 – година за секунди з моменту запуску контейнера. 86400 = 24 години.

Бонус:

Додаємо SD-карту або флешку, примонтуємо її (щоб не відвалювалася після перезавантаження), розшаримо по SMB, а також встановимо контейнери, які дозволять качати торенти, а також відео з відеосервісів (youtube, rutube тощо).

Підготовка SD-картки/флешки

Перевіряємо, як називається розділ карти/флешки (нам потрібно поле NAME, де вказано розмір, у мене це mmcblk0p1, вам потрібно в коді нижче замінити на своє значення):

lsblk -f

Бачимо назву нашої карти. У мене це — mmcblk0p1 , вам потрібно замінити на свою назву.

Потім:

mkdir -p /mnt/sdcard

mount /dev/mmcblk0p1 /mnt/sdcard

mkfs.ext4 /dev/mmcblk0p1 

mount /dev/mmcblk0p1 /mnt/sdcard

Відкриваємо ще раз список та копіюємо UUID:

lsblk -f

(У мене це: e929e3e0-8601-7e4e-9351-2a219d220963 , вам, в коді нижче, потрібно замінити на свій!).

Вводимо команду:

nano /etc/fstab

Внизу файлу вставляємо:

UUID=e929e3e0-8601-7e4e-9351-2a219d220963 /mnt/sdcard ext4 defaults 0 2

Після введення зберігаємо та виходимо: “CTRL+O” → “ENTER” → “CTRL+X”

Розшаруємо SD-картку/флешку за SMB

nano /etc/samba/smb.conf

Опускаємося у самий низ і додаємо текст:

[sdcard]

   path = /mnt/sdcard

   browseable = yes

   writable = yes

   guest ok = no

   valid users = root

Після введення зберігаємо та виходимо: “CTRL+O” → “ENTER” → “CTRL+X”

Вводимо команду:

systemctl restart smbd

Зовнішню пам’ять тепер видно у SMB.

Встановлюємо MeTube (програму для завантаження відео з відеосервісів):

docker volume create metube

docker run -d —name metube -v /var/lib/docker/volumes/metube:/config -v /mnt/sdcard:/downloads -p 8081:8081 —restart=always ghcr.io/alexta69/metube:latest

Після встановлення доступів за адресою: http://ip:8081

За фактом це форк YT-DLP, оформлений у приємний веб-інтерфейс.

Підтримуються: youtube, rutube та сотні інших сайтів.

Список підтримуваних сайтів можна знайти тут:

https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md

Встановлюємо qBittorrent:

docker volume create qbittorrent

docker run -d —name qbittorrent -v /var/lib/docker/volumes/qbittorrent:/config -v /mnt/sdcard:/downloads -p 9080:8080 —restart=always linuxserver/qbittorrent

docker stop qbittorrent

nano /var/lib/docker/volumes/qbittorrent/qBittorrent/qBittorrent.conf

Опускаємось біля самого низу і додаємо (блок — [Preferences]):

WebUI\HostHeaderValidation=false

WebUI\CSRFProtection=false

WebUI\LocalHostAuth=false

Після введення зберігаємо та виходимо: “CTRL+O” → “ENTER” → “CTRL+X”

docker start qbittorrent

docker logs qbittorrent —tail 50

Після цього ви побачите балку з тимчасовим паролем для першої сесії.

Після встановлення доступів за адресою: http://ip:9080

Заходьте до веб-інтерфейсу, логін: admin, пароль: тієї, що у лозі. І змінюєте мову, пароль.

Після налаштування перезавантажуєте SMB:

systemctl restart smbd

Готово. Усі файли MeTube та qBittorrent будуть зберігатися в корінь зовнішнього сховища (або підпапку, якщо це настроїти в qBittorrent).

Також керувати qBittorrent можна в додатку для Android — qBitcontroller

Рекомендую зберегти цю команду — systemctl restart smbd . Іноді SMB чомусь довго розуміє і нових файлів може бути не видно. Введення цієї команди перезавантажує SMB, і всі файли одразу видно.

Що стосується MeTube і qBittorrent – ​​рекомендую здорово оцінювати ресурси даного медіаплеєра. Очевидно, що продуктивність упиратиметься у швидкість LAN 100мбіт (12 мбайт на секунду). Це стосується і завантаження і локальної передачі файлів SMB. Загалом працює без проблем, проте не варто забувати, що на сервері присутні й інші контейнери. Дивіться на стабільність роботи. У разі потреби — налаштуйте у qBittorrent черговість та обмежуйте кількість трекерів.

У мене версія 2/16 ГБ, але мені ресурсів цілком вистачає. Навантаження ЦП у звичайному режимі роботи коливається від 10% до 20%, завантаження RAM — близько 60%, так що в принципі запас є. Час завантаження Home Assistant від подачі живлення – 40 секунд до появи веб-інтерфейсу, а далі залежить від ваших інтеграцій. У мене це 2:10, що цілком прийнятно.

Також важливо розуміти, що для відеоспостереження (того ж Frigate) ресурсів даного медіаплеєра може не вистачити.

Якщо щось, колись піде не так — завжди можна почати спочатку 🙂

Ну ось і все! УРА! Тепер у нас є ядро ​​розумного будинку за ціною ~ $ 20 з енергоспоживанням 2-5W.

 

 

Цікаві статті