понедельник, 11 июня 2018 г.

Работа с BrowserSync в приложении JHipster, запущенном в виртуальной машине

По умолчанию приложение, сгенерированное с помощью JHipster, запускает BrowserSync только на localhost, что не позволяет работать в браузере host системы с приложением в guest системе.
Для исправления проблемы необходимо в файле package.json добавит опцию --host 0.0.0.0 в webpack:dev

"webpack:dev": "yarn run webpack-dev-server -- --config webpack/webpack.dev.js --progress --inline --hot --profile --host 0.0.0.0 --port=9060 --watch-content-base",

суббота, 26 мая 2018 г.

Переопределение параметров spring-boot из командной строки

Spring-boot позволяет определять параметры из командной строки

Полный список параметров есть тут: https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

Если запускаем через maven:


mvn spring-boot:run -Pfast -Drun.arguments="--logging.level.org.springframework=TRACE"

Если запускаем через JAR:


java -jar target/*.war --spring.profiles.active=prod --logging.level.org.springframework=TRACE

воскресенье, 11 февраля 2018 г.

Компоненты домашней медиа-сети. Медиацентр и NAS на Raspberry PI. Часть 2

Установка медиацентра

  • Скачиваем образ xbian для Raspberry
  • Для прошивки образа используем утилиту Win32 Disk Imager (https://sourceforge.net/projects/win32diskimager/). Подключаем flash карту, выбираем образ, прошиваем.
  • Подключаем диски к USB портам, TV к HDMI порту и включаем Raspberry
  • На данном этапе мы должны видеть интерфейс медиацентра на TV и возможность просматривать видео с подключенных дисков. Также к дискам есть доступ на запись по SMB протоколу.  

Автоматический скрипт развертывания доступен на GitHub

Установка torrent демона на устройство. 


  • Подключаемся по SSH к медиацентру. IP адрес можно посмотреть на TV в меню Система -> Сведения о системе -> Сеть. В моем случае IP адрес 192.168.1.72. Подключаемся через putty клиент в windows или ssh из консоли Linux. Логинимся под user - xbian, password - raspberry. Лучше сразу сменить пароль на свой с помощью команды passwd.
  • Ставим transmission. sudo apt-get install transmission-daemon
  • Останавливаем демон: sudo service transmission-daemon stop
  • Копируем настройки в домашний каталог: sudo cp -r /etc/transmission-daemon ~/.config/
  • Меняем владельца: sudo chown -R xbian ~/.config/transmission-daemon
  • Указываем каталог с настройками для нашего демона: sudo nano /etc/default/transmission-daemon Устанавливаем CONFIG_DIR="/home/xbian/.config/transmission-daemon" и USER=xbian
  • В каталоге /home/xbian/.config/transmission-daemon создаем файл settings.json с содержимым:
{
    "alt-speed-down": 0,
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 1260,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": true,
    "alt-speed-time-end": 420,
    "alt-speed-up": 0,
    "bind-address-ipv4": "0.0.0.0",
    "bind-address-ipv6": "::",
    "blocklist-enabled": false,
    "blocklist-url": "",
    "cache-size-mb": 4,
    "dht-enabled": true,
    "download-dir": "/media/WDRED4G/video/\u0414\u0435\u0442\u0441\u043a\u0438\u0435 \u0444\u0438\u043b\u044c\u043c\u044b",
    "download-limit": 100,
    "download-limit-enabled": 0,
    "download-queue-enabled": true,
    "download-queue-size": 5,
    "encryption": 0,
    "idle-seeding-limit": 30,
    "idle-seeding-limit-enabled": false,
    "incomplete-dir": "/home/xbian/incomplete",
    "incomplete-dir-enabled": false,
    "lpd-enabled": false,
    "max-peers-global": 200,
    "message-level": 2,
    "peer-congestion-algorithm": "",
    "peer-id-ttl-hours": 6,
    "peer-limit-global": 240,
    "peer-limit-per-torrent": 60,
    "peer-port": 51413,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,
    "peer-port-random-on-start": false,
    "peer-socket-tos": "default",
    "pex-enabled": true,
    "port-forwarding-enabled": false,
    "preallocation": 1,
    "prefetch-enabled": true,
    "queue-stalled-enabled": true,
    "queue-stalled-minutes": 30,
    "ratio-limit": 2,
    "ratio-limit-enabled": false,
    "rename-partial-files": true,
    "rpc-authentication-required": true,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-password": "{413dc45cb437f4d10503f1abbd1edf9298a60ec4Vyt8f8sD",
    "rpc-port": 9091,
    "rpc-url": "/transmission/",
    "rpc-username": "test",
    "rpc-whitelist": "127.0.0.1,192.168.*.*,10.0.*.*",
    "rpc-whitelist-enabled": false,
    "scrape-paused-torrents-enabled": true,
    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",
    "seed-queue-enabled": false,
    "seed-queue-size": 10,
    "speed-limit-down": 100,
    "speed-limit-down-enabled": false,
    "speed-limit-up": 100,
    "speed-limit-up-enabled": false,
    "start-added-torrents": true,
    "trash-original-torrent-files": false,
    "umask": 2,
    "upload-limit": 100,
    "upload-limit-enabled": 0,
    "upload-slots-per-torrent": 14,
    "utp-enabled": true,
    "watch-dir": "/home/xbian/torrents",
    "watch-dir-enabled": true
}


Установить свои значения в поля:
download-dir
rpc-username 
rpc-password - пароль пишем в открытом виде, потом демон его перепишет на закрытый

Важно: Значения необходимо устанавливать при остановленном демоне transmission-daemon. Если демон не остановить, то значения будут затерты демоном на прочитанные ранее.
  • sudo nano /etc/init.d/transmission-daemon Меняем пользователя запуска USER=xbian
  • Перезапускаем медиацентр и проверяем работу transmission. Открываем в браузере: http://192.168.1.72:9091/transmission/web/ 

Настройка бэкапирования

Критичные данные хранятся в двух каталогах photo и video/Видеосъемки. Все данные с диска WDRED4G будут зеркалироваться на диск WDGREEN1GB
  • Ставим rsync: sudo apt-get install rsync
  • Создаем каталог /home/xbian/backup_logs
  • Создаем каталог /home/xbian/backup_scripts
  • В /home/xbian/backup_scripts создаем файл backup_from_wdred4g_to_wdgreen1g.sh
#!/bin/bash
postfix=$(date '+%y-%m-%d')
echo ========photo sync start $(date)=========== >> /home/xbian/backup_logs/sync_$postfix.log
rsync --progress -r  -v -t --del /media/WDRED4G/photo/ /media/WDGREEN1GB/photo/ >> /home/xbian/backup_logs/sync_$postfix.log
echo ========photo sync stop $(date)============ >> /home/xbian/backup_logs/sync_$postfix.log

echo ========video sync start $(date)=========== >> /home/xbian/backup_logs/sync_$postfix.log
rsync --progress -r  -v -t --del /media/WDRED4G/video/Видеосъемки/ /media/WDGREEN1GB/video/Видеосъемки/ >> /home/xbian/backup_logs/sync_$postfix.log
echo ========video sync stop $(date)============ >> /home/xbian/backup_logs/sync_$postfix.log
  • Настраиваем ежедневный бэкап. Добавляем в крон ежедневный запуск в 10 часов 
  • crontab -e  и добавляем строку 0 10 * * * /home/xbian/backup_scripts/backup_from_wdred4g_to_wdgreen1g.sh

Настройка SAMBA

  • sudo nano /etc/samba/shares.conf
[sync-log]
    path = /home/xbian/backup_logs
    guest ok = yes
    read only = no
    force user = xbian
    browseable = yes

[media]
    path = /media/WDRED4G
    guest ok = yes
    read only = yes
    force user = xbian
    browseable = yes

По умолчанию все диски подключенные по USB автоматически монтируются и публикуются в SMB. Изменить параметры можно тут:

/etc/usbmount/usbmount.conf

there are three parameters
SHARESMB=yes
SHARERW=no
SHARELT=no

1 - shares enabled on hotplug disks
2 - rw access enabled (anonymous)
3 - rw limitations - expects xbian user ownership and asks password for xbian user (smbuser xbian)
Также в файле smb.conf можно изменить имя сервера. По умолчанию XBIAN

суббота, 10 февраля 2018 г.

Компоненты домашней медиа-сети. Медиацентр и NAS на Raspberry PI. Часть 1

Задача

Сделать домашний медиацентр с функциями:
  • Просмотр контента на TV 
  • Управление с TV пульта
  • NAS для домашней сети
  • Torrent клиент для закачки на HDD

Контент мы хотим смотреть FullHD. Также нам нужно обеспечить надежное хранение данных для семейного контента. Выход из строя HDD не должен приводить к потере фотографий и видеосъемок. 

Решение

Железо:
  • Raspberry PI 2 или Raspberry PI 3 ~ 3 т.р. 
  • HDD WG Red 4TB ~ 8 т.р. Диск куплен под медиацентр. Red серия специализирована для NAS. 
  • HDD WD Green 1TB ~ 3 т.р. Диск был в наличии от старой системы. 
  • Бокс для жесткого диска 2.5" ThermaltakeMuse 5G 2.5" USB3.0 External Hard Drive ~1,5 x 2 = 3 т.р.
Софт:

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

Преимущества

Решение очень гибкое. Наличие полноценного Linux со всеми вытекающими возможностями.
Можно обеспечить любой уровень надежности хранения данных без покупки очень дорогих аппаратных NAS. Бесшумность, малое энергопотребление. Все функции в одном устройстве. Медиацентр KODI постоянно развивается и "всеяден". Поддерживается управление с пульта телевизора при подключении через HDMI к LG и Samsung.

Ограничения

В Raspberry PI нет поддержки GB Ethernet, а это значит, что скорость заливки и получения контента с NAS ограничена ~ 5 мегабайт/сек.