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 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
I /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.