Roland Kamphuis Rotating Header Image

Posts Tagged ‘self hosted’

Self hosted: Immich

Volgens mij heeft iedereen wel een vorm van cloud opslag. Ik gebruik het voornamelijk om mijn foto’s van mijn mobiel te back-uppen en om makkelijk bij een aantal bestanden te komen die je dan net even op je mobiel nodig hebt. Zo ben ik lang geleden begonnen met een gratis account bij Dropbox. En als je een vriend, familie of kennis aanbracht kreeg je gratis 500mb erbij. Zo kon ik een leuk 4GB cloud opslag accountje samenstellen. Daarna heb ik het account kunnen verhogen naar enkele tientallen GB’s omdat je dat gratis bij aanschaf van een mobiel kreeg. Maar op een dag besloot Dropbox dat ik weer terug moest naar het standaard plan van 2GB, Weg referrers, Weg deals met telefoonfabrikanten…

Toen overgestapt naar Google Foto’s. Dat was helemaal gratis en werd gewoon netjes in je Google drive opgeslagen! Dus de hele mikmak overgezet. Google deed het net wat beter, want foto’s worden heel mooi online getoond in een aparte subsectie van drive. Helemaal fan was ik van het terugkijken van 1 of meerdere jaren. Gaf je een leuk beeld wat je een jaar, 2 jaar of langer geleden bezig hield op dezelfde dag. Hun functie om op GEO locatie te zoeken was ook heel handig. Maar aan het gratis kwam een eind. Google kondigde aan dat full resolution niet langer gratis zou zijn, maar de gecomprimeerde versie zou nog wel gratis zijn. Nouja het is niet dat ik raw foto’s maak op mijn mobiel, en hun compressie was totaal niet zichtbaar. Dusja lekker verder met compressie aan. Totdat het volgende bericht kwam dat die ook niet meer gratis zouden zijn. Vanaf dat moment ging opeens de foto’s van mijn 15GB opslag af. En binnen 2 jaar was ik door die opslag heen.

Ik stond op het punt om bijna een Google Drive abonnement aan te schaffen, maar toen dacht ik, dat moet ik (met een hosting bedrijf) beter kunnen. Zijn er geen alternatieve die je zelf kan draaien? Ik had al lange tijd Nextcloud draaien, maar dat werkte niet lekker met foto’s backuppen (simpelweg omdat die helft vergat om mijn fotos te backuppen, files delen werkt dan weer wel prima). Met wat zoeken kwam ik op Immich uit. Toen weliswaar nog in BETA maar zag er zeer belovend uit.

Ik pakte een Raspberry PI, installeerde daarop Raspbian met docker en voordat ik het wist was de Immich container gedeployed! Ook de Android app stond zo op mijn telefoon. En in no time had ik mijn nieuwe ‘Google fotos’ online! Nu had ik maar een 16GB SD kaart in de raspberry zitten, dat gaf niet bepaald meer opslag dan Google. Dus kocht ik de PI hat die een SSD ondersteund samen met een 1TB small factor SSD. Nu kan je eenvoudig in de PI de SSD toevoegen, maar ik wou van de SD kaart graag af. Een SD kaart is namelijk niet bepaald de snelste als je daar een OS op hebt draaien. Bovendien is de levensduur van een SD kaart beperkt door het aantal schrijfacties van een OS. Dus kopieerde ik alle data naar de SSD, moest ik even de firmware van de PI updaten om van de SSD te kunnen booten en voilla! 1TB effectieve cloud opslag!

Mijn volgend probleem was dat de installatie thuis stond achter mijn router. Dat werkt prima als ik met mijn telefoon op wifi zit, maar zodra ik buiten de deur ben kom je er niet bij. Op dat moment had ik nog geen VPN ingericht dus koos ik ervoor om met Nginx een reverse proxy ervoor te zetten die enkel op poort 443 luistert. Daarmee is dus een SSL verbinding verplicht. Deze heb ik via Lets-encrypt geïnstalleerd en vervolgens het 443 poortje naar internet open gezet. En zo heb ik de perfecte Cloud opslag! Kosten?

UnitPrijs
Raspberry PI 5 – 4gb85
1TB SSD NVME60 (nu 130)
Pi SSD HAT15
USB-C Voeding15
Totaal175

Als je er vanuit gaat dat de set 5 jaar mee gaat dan kom, dan kom je op een maandelijks kostenplaatje van 2.91 euro. Met het stroomverbruik van 5 watt van de pi komt er met 25 cent /kWh een maandelijkse prijs van 0.90 bij. Ofwel voor een prijs van 3.81 heb ik nu 1TB cloud opslag!

Google foto’s heeft een pakket van 100GB voor 2 euro per maand, en dat is op zich ook niet gek als je aan 100GB voldoende hebt. Maar wil je vooral niet meer je foto’s met Google wil delen, of meer opslag nodig hebben en goedkoper willen hosten, dan kan ik de self hosted Immich variant zeker aanraden! En als je zelf graag ervaring wil opdoen met Linux, Pi en hosting dan zeker!

Self hosted: Jellyfin

In 2018 ben ik begonnen voor het eerst met een online streamingdienst abonnement. In dit geval met Netflix. Ik ben al lange tijd fan van streaming diensten, zo heb ik Spotify sinds het begin in 2011. En nu ook fijn om eindelijk je films en series te streamen. Een paar jaar later had ik daar ook Amazon Prime Video, HBO, NPO en Disney+ bij aangenomen. Dat was direct ook het moment dat er iets vreemds gebeurde. Voor het eerst zag je grootschalig content bij Netflix verdwijnen. Maar geen nood het kwam vaak op een andere dienst weer terug. En als je weer wat langer wacht kon het best zijn dat Netflix de aanbesteding van een bepaalde serie weer had gewonnen en het weer terug kwam op Netflix. Onhandig maar nog wel mee te werken.
Totdat de prijsverhogingen kwamen. Waar ik voor 2020 bij de meeste partijen een bedrag van 4-10 euro per maand betaalde is dat in 2026 bij merendeel verdubbeld. Ook begonnen de partijen het lenen van accounts aan te pakken. Waar Netflix in het begin dit bewust toeliet en het zelfs gebruikte in hun marketingcampagne! Waardoor voor veel mensen het best duur werd voor alle verschillende diensten maar iedere keer de hoofdprijs te moeten betalen. Laten we het dan ook niet hebben over de reclames die je tegenwoordig krijgt in je betaalde accounts.

En zo ben ik in Jellyfin gerold. Jellyfin maakt het mogelijk om je eigen streaming dienst te beginnen, helemaal zelf gehost op je eigen omgeving zonder invloed van derden. Een ideale manier om nog wat met je oude DVD iets te kunnen doen!

Met de komst van Jellyfin is mijn content weer stabiel (het is niet zomaar verdwenen), houd ik de prijs laag (eenmalige aanschaf), en bepaal ik ook welke versie film ik zie (Disney+ besluit namelijk zomaar bij Home alone 2 Donald Trump eruit te knippen, en oudere versies van Star Wars zijn ook niet te bekijken). Daarnaast heb ik nu zelfs content die op geen enkele streaming dienst staat. Denk aan bijv Thunderbirds, of mijn favo serie Chuck!

Wat heb je nodig om te beginnen?
Een boel tijd en geduld. Ik ben eerst begonnen mijn eigen DVD collectie in te scannen, en dat kost ongeveer 10-15 minuten per DVD. Met het programma MakeMKV kan je de inhoud van een DVD omzetten naar een .mkv bestand op de computer. Ook mijn enige 2 Blu-ray discs heb ik ingescand: Golden Eye en The Dictator! Nou dat was nog een avontuur. Ergens in een oude computer had ik ooit een blu ray speler ingebouwd. Dus die eruit getrokken en in mijn huidige pc gestopt. Dan kom je erachter dat blu-ray met licenties werkt en ik dus eerst opzoek moest gaan voor de licenties van de films die ik heb. Gelukkig staat er veel op internet, en zodoende kon ik met de licentie ook middels MakeMKV de scan maken. Die overigens 30 min per disc duurt, en voilla!


Mooi dacht ik, nu wordt het tijd om mijn lievelingsfilm: Star Wars toe te voegen. De DVD versie had ik al ingescand en de blu-ray 4k versie had ik snel bij bol.com gekocht. Was erg goedkoop (12 euro per film) want er ontbrak Nederlandse ondertitels. Nouja geen probleem. Maar dat was wel een probleem voor mijn Blu-ray speler, want blijkbaar kon die geen 4k content aan. En probeer anno 2026 maar eens een blu-ray speler voor de computer te kopen! En omdat ik dat certifcaten gebeuren ook wel een beetje zat was heb ik een tweede hands model gekocht bewust met een oude firmware. Deze firmware kan je vervangen door je eigen versie waarmee je wat ‘flexibeler’ met die certificaten over weg kan. En zo kwam de 4k films ook binnen. (Dus doe je onderzoek hierin als je van plan bent blu-rays in te scannen).
Met het programma MKVToolNix kon ik de subtitles uit de DVD release halen en in de MKV van de 4k blu-ray toevoegen.

Transcoden
Een ander handig programma is Handbrake. Daarmee kan je de videobestanden transcoderen en daarmee comprimeren. Bijv een DVD heeft mpeg4 encoding, dat kan een hul stuk beter om naar h.264 of h.265 te zetten, bespaard zo 70% aan capaciteit zonder kwaliteitsverlies! Ook Blu-rays kan je omzetten, zonder daar een concessie in te doen kan je daar 50% besparen. Ik heb veel omgezet naar h.265 omdat dat tegenwoordig overal ondersteund wordt en net betere manier van compressie heeft zonder kwaliteitsverlies dan h.264. En naarmate ik bezig was kan ik AV1 ook aanraden. Handbrake heeft de optie je videokaart transcoder te gebruiken waardoor de snelheid drastisch omhoog gaat ten opzichte van cpu transcoding.

Echter is transcoding niet nodig, Jellyfin heeft FFMpeg ingebouwd en kan on the fly films transcoderen als de client het ene formaat niet aan kan. Het voordeel om alles van te voren wel te transcoderen is voornamelijk opslag besparing en ontzorgen van transcoden van Jellyfin. Bijv een h.264 wordt overal wel ondersteund. En dan hoeft Jellyfin niet on the fly meer transcoden als de bron al is omgezet.
Ik draai Jellyfin op een Intel N355 met ingebouwde GPU. Die gpu kan net 3 x een 4k stream aan als het gaat om on the fly transcoden. Eerder gebruikte ik een N100, en die kon 0.97x een 4k stream aan. Ofwel hier moest ik 5 min de film pauzeren want in realtime redde hij het net niet. En AV1 gaf mij problemen met sommige players die zeiden dat ze 4k av1 aankonden, maar bij afspelen gingen die haperen. Gelukkig kan je dan Jellyfin naar een ander formaat transcoderen zodat je alsnog kan kijken.

En als je eenmaal door hebt hoe het gaat kan je dus alles gaan toevoegen. Nadat ik mijn eigen DVD’s had gedaan ben ik regelmatig langs de kringloop gegaan, rommelmakten bezocht en heel af en toe op marktplaatst opzoek gegaan naar DVD’s en Blu-Rays. Om de kosten van de hobby niet uit de hand te laten lopen had ik een limit van 1 euro voor een dvd en 3 euro voor een blu-ray voor mezelf ingesteld. Op die manier heb ik heel veel films kunnen verzamelen: 465 Dvd’s en 283 Blu-rays.

Jellyfin
Jellyfin is een stukje software die je zelf kan hosten waarmee je je eigen streaming dienst op zet. Het heeft een ingebouwde webserver en serveert een webpagina aan media bestanden. Deze kan je dan heel eenvoudig in je browser streamen of je kan natuurlijk de bijbehorende apps installeren.

Installeren van jellyfin is erg eenvoudig, volg de handleiding op hun site en voila! Ik heb een kale VM voor jellyfin aangemaakt zodat alles in een eigen omgeving draait. Middels een NFS share bied ik Jellyfin de DVD en Blu-rays aan. Ik vond het een enge gedachte dat Jellyfin direct access moest hebben tot mijn share, vandaar de read only rechten op de movie map.
De VM is een proxmox VM. Dus met een beetje moeite kon ik de GPU in pass trough mode zetten naar deze VM, zodat Jellyfin de GPU on the fly kan gebruiken voor transcoding. Doordat het de interne gpu van de cpu is, trekt deze maximaal een 6 Watt stroom op moment dat volledige transcoding nodig is.
Vervolgens Jellyfin je media map laten scannen en voilla!

Hier en daar zal jellyfin mogelijk niet alles kunnen vinden. Soms komt dat door een typefout in de naam van het bestand of doordat er meerdere films zijn met dezelfde naam. Gelukkig kan je dat snel verhelpen of handmatig de meta data aan te passen.

En als je de handleiding van Jellyfin volgt hoe de media map eruit ziet krijg je ook nog eens heel mooi de keuze welke versie film je wilt zien. Zoals in bovenstaande screenshot te zien valt kan je kiezen voor de 4k versie, de Blu-ray versie of de DVD versie.

Ik heb de server thuis draaien, en middels een VPN koppeling kan ik overal in de wereld mijn media streamen!
Je kan Jellyfin ook direct op het grote internet zetten, maar dan is mijn advies wel een SSL certificaat te gebruiken en de niet SSL versie uit te zetten.