Da jeg var træt af min (gamle) ReadyNAS stod i vores bryggers og brølede, samt risikoen for at selve NAS Casingen skulle forgå, måtte der ske noget.

Kravet var:

  • DLNA support i huset
  • SMB Support
  • Evt Google File Stream (Google Drive)
  • Billigt, KISS og stilhed
  • Måske Home Assistant on Docker senere


Så jeg skannede markedet og Facebook grupper for snedige løsninger, der var ikke så mange - ud over en anden NAS eller en hjemmeserver.

Af software til hjemmeserveren var Plex, UMS og et par andre - alle rimelige interessante. Men Plex kørte jeg allerede på min MacMini med NAS som mounted Volume(s), så det var oplagt.

At køre på den Mac man roder, programmerer og blogger på er bare upraktisk, den skal bootes, og den hænger eller bruger 100% CPU, så Plex og streamede film hakker. At det så er en Mac gør det ikke nemmere, da alle filer er placeret underlige iforhold til Linux.

Så valget blev et Rasberry Pi starter kit med Plex og Samba, men da vi havde en ASUS Laptop i overskud, blev det den der blev valget - med en 4T LaCie Disk på, leveret af El-Mutanten.


Installation af Ubuntu

Installation af Ubuntu 18.04 Server LTS (der var her lidt overvejelser om GUI ville være praktisk at have, men det blev fravalgt).

Undersøge hvor meget LORT der ikke behøver køre, selv i en server, det pisser mig lidt af at en Ubuntu server faktisk ikke er mere barebone idag (sad) Det er under overvejelse at skifte til andet Linux OS. Der er helt sikkert mere der kan fjernes...

Her kan kørende services ses (og stoppes):

root@robin:~# service --status-all
 [ - ]  acpid
 [ + ]  apparmor
 [ + ]  apport
 [ + ]  atd
 [ - ]  console-setup.sh
 [ + ]  cron
 [ - ]  cryptdisks
 [ - ]  cryptdisks-early
 [ + ]  dbus
 [ + ]  ebtables
 [ + ]  grub-common
 [ - ]  hwclock.sh
 [ + ]  irqbalance
 [ + ]  iscsid
 [ - ]  keyboard-setup.sh
 [ - ]  kmod
 [ - ]  lvm2
 [ + ]  lvm2-lvmetad
 [ + ]  lvm2-lvmpolld
 [ - ]  lxcfs
 [ - ]  lxd
 [ - ]  mdadm
 [ - ]  mdadm-waitidle
 [ - ]  open-iscsi
 [ - ]  open-vm-tools
 [ - ]  plymouth
 [ - ]  plymouth-log
 [ + ]  procps
 [ - ]  rsync
 [ + ]  rsyslog
 [ - ]  screen-cleanup
 [ + ]  ssh
 [ + ]  udev
 [ + ]  ufw
 [ + ]  unattended-upgrades
 [ + ]  uuidd

Cloudinit, lxcfs, ufw og apparmor behøver vi vist ikke - noget fjerner vi, noget disabler jeg bare:

apt-get remove cloudinit
apt-get remove lxcfs
sudo service ufw stop
sudo systemctl disable ufw
sudo service apparmor stop
sudo systemctl disable apparmor

Set tiden til Copenhagen (Det er default UTC):

rm /etc/localtime
ln -s /usr/share/zoneinfo/Europe/Copenhagen /etc/localtime

Der blev sat statisk IP adresse i min Eniig Router til 10.0.0.150 - og lavet DNS (GratisDNS).

host robin.mos-eisley.dk
robin.mos-eisley.dk has address 10.0.0.150

/etc/systemd/logind.conf blev der fixet, så den ikke slukker eller går i dvale når låget lukkes.

HandleLidSwitch=ignore

Mounting af extern USB LacieDisk

Så kom LaCie USB disken på, den blev desværre ikke auto-mountet, så der var lidt udfordinger med at finde devicen /dev/sdb2 og få den formateret med ext4.

Da Plex og Samba jo ser efter filerne samme sted altid når det er sat op, er det vigtigt at den altid mountes korrekt i /mnt/LaCie.

Derfor køres:

sudo blkid

giver:

/dev/sdb1: UUID="4672-9221" TYPE="vfat" PARTUUID="3f7f6ee9-e7e5-43ab-9cd1-6e8ce4a6cff4"
/dev/sdb2: UUID="e67f67e0-a300-11e8-8a8a-38d547ce65f9" TYPE="ext4" PARTUUID="22c64b77-021a-46a8-a540-d8336136b744"
/dev/sda1: LABEL="EFI" UUID="5F66-17ED" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="0e87c814-26a3-423e-b959-e326e2ece71f"
/dev/sda2: UUID="7ec6419f-0241-439c-aa6e-93a83f04b5e4" TYPE="ext4" PARTUUID="43ba69a0-38d3-e749-ab97-86931c7336c4"
/dev/loop0: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"

Dette giver et ID på USB Disken til /etc/fstab (EFI er laptoppens boot-device, derfor er /dev/sda i dette tilfælde den indbyggede disk):

UUID=e67f67e0-a300-11e8-8a8a-38d547ce65f9 / ext4 defaults 0 0
UUID=4672-9221 /boot/efi vfat defaults 0 0
/swap.img	none	swap	sw	0	0
UUID=7ec6419f-0241-439c-aa6e-93a83f04b5e4 /mnt/LaCie ext4 defaults 0 0

En lille underlighed her er at forsøger man at starte laptoppen unden USB disken, bruger den 1 min 30 sec på at forsøge at mounte den, hvorefter den stopper og vil gå i recovery mode.

Der må være nogle options der kan forhindre det sidste....

Derefter fik jeg mounted den gamle NAS og kopieret alle filer til /mnt/LaCie/nas.

mkdir /mnt/nas/
mount -t cifs //10.0.0.100/nas /mnt/nas/ -o vers=1.0
cp -Rv /mnt/nas/* /mnt/LaCie/nas

Dette tog lang tid, men alternativet som "scp" taget meget længere. Bemærk vers=1.0 - dette er SMB version 1, åbentbart understøtter min NAS ikke version 2 eller 3.

Kopiering bør foretages over kabel, ellers vil det tage meget, meget længere tid.

Installation af Plex

Den hentes fra https://www.plex.tv/media-server-downloads/ og installereres enten traditionelt:

dpkg -i plexmediaserver_1.13.5.5332-21ab172de_amd64.deb

eller via docker - resten af artiklen dækker Plex i docker (se mere på https://hub.docker.com/r/plexinc/pms-docker/):

apt-get install docker.io
docker run \
-d \
--name plex \
--network=host \
--restart always \
-e TZ="Europe/Copenhagen" \
-e PLEX_CLAIM="claim-_xxxxxxxxx" \
-e PLEX_UID="1000" \
-e PLEX_GID="1000" \
-v /opt/plex/config:/config \
-v /opt/plex/temp:/transcode \
-v /opt/plex/data:/data \
plexinc/pms-docker

PLEX_UID og PLEX_GUI er for min egen bruger "bnp" der er eneste bruger på laptoppen. Det kan findes i /etc/passwd

PLEX_CLAIM findes ved at logge ind på https://www.plex.tv/claim og få et token

og for at sætte data dir:

cd /opt/plex
rmdir data
ln -s /mnt/LaCie/nas/ data

Så ser Plex ned på LaCie Disken

Derefter Port Forward i min Eniig Router til serveren port 32400

Så var Plex kørende:

      


Opgradering af Plex

docker stop plex
docker rm plex
sudo docker pull plexinc/pms-docker:latest
docker run \
-d \
--name plex \
--network=host \
--restart always \
-e TZ="Europe/Copenhagen" \
-e PLEX_CLAIM="claim-_xxxxxxxxx" \
-e PLEX_UID="1000" \
-e PLEX_GID="1000" \
-v /opt/plex/config:/config \
-v /opt/plex/temp:/transcode \
-v /opt/plex/data:/data \
plexinc/pms-docker

Så er plex opgraderet

Installation af Samba

apt-get install samba

Redigering af /etc/samba/smb.conf (se mere på How to Create a Network Share Via Samba Via CLI (Command-line interface/Linux Terminal):

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = MOS-EISLEY


[media]
    comment = Media files
    path = /mnt/LaCie/nas/media
    read only = yes
    browsable = yes
    guest ok = yes

[public]
    comment = Public Files
    path = /mnt/LaCie/nas/public
    read only = no
    browsable = yes
    guest ok = yes

Update 19-05-2019. Efter at have "leget" lidt med SMB, er jeg kommer frem til denne config pr. share, hvor jeg laver en bruger/gruppe pr. share og søger for at den kan styre dir + alle filer.

useradd media
chown -R media:media /mnt/LaCie/nas/media

Brugerne skal så meldes i gruppen via /etc/group.

[media]
	comment = Media files
	path = /mnt/LaCie/nas/media
    read only = no
    browsable = yes
    guest ok = yes
    writeable = yes
    valid users = @media
    force user = media
    create mask = 0644
    directory mask = 0755


Reload config:

smbcontrol all reload-config

Sæt samba brugers passwords:

sudo smbpasswd -a bnp

Brugere kan altid ses med:

sudo pdbedit -L

Derefter er der i store træk en KISS server kørende der kan bruges af alle devices og TV, enten via DLNA (kun inhouse på vores LAN, understøttes af TV og PS4) eller Plex (World wide) og filer kan hentes via SMB.

Skulle laptoppen dø, der er ikke mange timer i at sætte en Rasberry Pi eller andet op, og køre ovenstående, største issue er egentlig Plex konfigurationen, den kan med fordel backes up.

I store træk er SMB bare readonly, vi i familien deler de fleste ting via Google Drev, Google Keep og Google Photos osv. Det vil sikkert blive udviddet lidt, så min egen bruger for rettighed til at smide film, musik- og billedfiler op på Plex via SMB. Dette kræver dog lidt konfiguration af samba omkring brugere og grupper.

På iOS er Infuse et glimrende alternativ til Plex klienten.

På Apple TV4 bruger jeg også MrMC (en KODI / XBMC variant) til at afspille filer over SMB.

Plex Pass overvejes p.t.

NAS bliver nok sat i et datacenter til backup af film, musik og billeder (via rsync). Det skete så ikke, da den er død.