Roland Kamphuis Rotating Header Image

Posts Tagged ‘server’

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.

IceHosting Server Assemblage

Wat is er nu leuker dan mij hard aan het werk zien? De onderstaande video heb ik gemaakt om inzicht te geven hoe we bij IceHosting onze eigen servers assembleren.

Mijn fotografiehobby is in 2014 flink uitgebreid door aanschaf van een nieuwe spiegelreflex camera en accessoires. Gezien de blog een twee jaar stil heeft gestaan is dat nog niet verteld. Samengevat heb ik een boel foto’s en filmpjes gemaakt. Zodoende heb ik ook deze video gemaakt. Het grappige van deze video is dat er 2 servers geassembleerd werden. Als je goed kijkt dan kan je de verschillen wel zien.

Kantoorservers naar datacenter

kantoorservers

Oude situatie kantoorservers

De servers voor ons kantoor stonden tot voor kort gewoon bij ons op kantoor. Met de komst van ons eigen datacenter hebben we eigenlijk nooit de moeite genomen om de servers te verplaatsen. We hadden wel de internelijn doorgetrokken en daarmee verviel de behoefte om de kantoorservers te verplaatsen. De kantoorservers hadden we heel netjes onder de trap opgesteld in een een net 19 inch rack. Omdat de locatie van de servers een beetje verscholen was wou ik geen foto’s publiceren. Nu in het datacenter zijn er voldoende sensoren, detectoren en camera’s die de veiligheid garanderen.

Waarom alsnog de servers verplaatsen?
Tijdens het bekijken van de jaarafrekening van de energieleverancier kwam ik erachter dat het 10 euro per maand aan stroomkosten bespaard als we de servers in het datacenter plaatsen. Die 10 euro is zelfs wat overblijft na aftrek van het extra stroom benodigd voor de koeling en ups.
Daarnaast hebben we in de zomer een probleem dat de servers op kantoor te warm worden doordat er geen airco aanwezig is.

Hoe kan de stroom nog geen 5 meter verderop goedkoper zijn?
In ons datacenter zijn we een grootverbruiker, en daarmee kan je een scherper tarief krijgen. Hoewel dit deels waar is, is dit prijsverschil nog te minimaal om de grote besparing te maken. De grote besparing zit hem namelijk in de energiebelasting die de overheid heft over de stroom. Als je namelijk > 10.000 kWh verbruikt zakt de belasting met de helft per kWh. Verbruik je meer dan 50.000 kWh/jaar, is de energiebelasting nog maar een tiende van het origineel.
Op kantoor is ons stroomverbruik minder dan <10.000kwh, terwijl in ons datacenter het stroomverbruik >50.000 kWh is. We besparen een 9 cent per kWh, dat is bijna de helft van de prijs die we op het kantoor betalen.

Het eindresultaat van de kantoorservers:

kantoorservers_interdc

Onze kantoorservers in InterDC

 

Van boven naar beneden:

  • HP 3400cl Switch
    (Gbit switch)
  • HP micro Proliant server
    (Storage)
  • Monitor
  • Supermicro Server
    (VPS server, Dual Quadcore 2,4 Ghz, 24GB ram, 2x1TB HDDs)
  • Chenbro Server
    (Windows server 2008, Share + Domain controller)
  • APC 1KvA UPS
    (Noodstroom)

Start onderzoek Cloudservers

Ik wil een nieuwe dienst toevoegen aan de portfolio van IceHosting: cloudservers. Dat is een VPS server welke in de cloud draait. Afstudeerder Bernd heeft de eer gekregen om zijn afstudeerproject hierop te mogen baseren. Uiteraard begeleid ik het hele onderzoek.

Stap 1 is beginnen met het bedenken van een storage oplossing. Gezien we nog niet alle onderdelen in huis hadden krijg je effecten zoals dit:

Ofwel 4 stapels hardeschijven van 4 hoog, voeding, moederbord, raidcontroller en een boel kabels. Al snel merkte we dat de de uitvalratio van de harde schrijven behoorlijk hoog was. Na het even aanraken van een van de schrijven was de reden ook duidelijk; die dingen werden veels te heet. Dus opzoek gegaan naar een behuizing.
Uiteindelijk is het een compleet systeem geworden, een Quadcore 2,6ghz s1366 cpu met daarbij 4 gig ram. De bedoeling is dat we later het geheugen nog upgraden. Dus de raidcontroller en schrijven overgezet en we konden verder met testen.

Naast de vele hardeschijven hebben we ook een quad gbit netwerkkaart ingehangen zodat we straks 6 x 1 gbit kunnen combineren naar 1 grote netwerkpoort van 6 gbit.

Op de storage server komen dan de vps servers te draaien. Op dit moment is hier het onderzoek gebleven. Wel hangt de hardware al klaar voor de cloudservers:

Supermicro ipmi

Ongeveer een jaar geleden kwam Supermicro met Ipmi geïntegreerd op geselecteerde moederborden. In het afgelopen jaar hebben we ongeveer 20 servers verzameld met deze interface. Steeds en steeds meer gebruik ik Ipmi, zelf voor de installatie van de server.

Wie niet weet wat Ipmi is:
Ipmi is een extra module met netwerkkaart op het moederbord die ervoor zorgt dat je via een webinterface de server kan bedienen. De opties bestaan uit:
– Power beheer (aan en uitzetten van de server)
– Kvm over ip (via een java applet)
– Virtuele cd-rom (een iso mounten vanaf je computer)
– Server readings (zoals temperaturen, fan speed, etc)

Ipmi is niet het eerste device die dit kan. HP kwam als eerste met hun ILO (Integrated Lights Out) kaarten. Daarna kwam Dell met hun DRAC kaarten. Supermicro had in die tijd ook al een versie van Ipmi werkend, maar het installeren en beheren van deze versie was afschuwelijk (flashen van de bios, geen grafische schermen support, vervolgens is de kaart toch nog OS afhankelijk voor het inladen van het ip).

Kortom met de IPMI interface is het in Enschede beheren van servers in Amsterdam een stuk makkelijker geworden.

Hieronder een paar screenshots:

Datacenter bezoek

Afgelopen donderdag ben ik naar Amsterdam Globalswitch geweest voor wat onderhoud en 5 nieuwe servers te plaatsen. Nieuw was dat we de Foundry Fastiron hebben uitgefaseerd en mee moest naar het kantoor. De Fastiron is de coreswitch in ons netwerk en beschikt over 4 glaspoorten en 156 100mbit poorten. De switch heeft 4 voedingen van 500watt en weegt daarmee een goede 30-40 kg.

Ook zijn de HP proliants servers meegegaan naar kantoor. Dit waren de servers die alle resellerpakketten aan het hosten waren. Met een leeftijd van 5 jaar waren deze ook aan vervanging toe.

Met de vervanging van de HP’s en de Fastiron switch werd er behoorlijk wat stroom bespaard. Deze stroom kan dan weer gebruikt worden om extra servers te plaatsen.
Bij Globalswitch zitten we namelijk al enige tijd tegen ons stroomlimiet, en doordat we servers blijven vervangen kunnen we nog groeien. Maar het einde van oude servers is bijna in zicht en dan zullen we toch rackruimte en energie ergens anders vandaan moeten halen.

Krachtigste server

Het heeft wel een maand geduurd, maar eindelijk zijn alle onderdelen binnen om de krachtigste server samen te stellen voor IceHosting en die ik ooit heb gebouwd. Het gaat om een Dual Quadcore Xeon HT met 2x E5620 procesoren 6 x 4 (=24) GB ram en 2x1TB in raid1. De server zal gebruikt worden om virtualisatie mogelijk te maken op het kantoor. De vps’jes die erop komen te staan zijn voornamelijk benodigd voor het software ontwikkeling.
Voor virtualizatieplatform hebben we gebruik gemaakt van Xen.
Doordat virtualisatie tegenwoordig steeds populairder begint te worden zullen we binnenkort ook een 2e VPS server in Amsterdam ophangen om onze vps dienst uit te breiden.
Op onderstaande foto wordt de 2e cpu net geinstalleerd:

APC UPS ontvangen

Voor het serverhok op ons kantoor heb ik een UPS van het merk APC aangeschaft. Op die manier hebben straks de servers rustig de tijd bij een stroomstoring om af te sluiten.
Volgens de website van APC zou de APC voor 2 servers voldoende stroom moeten leveren zodat ze nog een 30 min online kunnen blijven.
De UPS werd op een pallet bezorgt, wat best bizar was gezien de omvang van het apparaat niet groter is dan een 2u server. Maar bij het optillen van de UPS werd al snel duidelijk waarom deze op een pallet stond. Het lieve beestje woog maar liefst 25kg. Dat zal dus vast komen door de grote batterijen die erin zitten.
Tot slot heb ik tevens een mini-ups van APC opgehangen in de meterkast. Die zal een twintig minuten stroom moeten geven voor de switch, router en modem. Op die manier zal internet ook nog even online blijven bij een stroomstoring.

Fileserver voor kantoor

De eerste weken hebben we zonder fileserver gewerkt. Vandaag kwam eindelijk alle onderdelen binnen voor de nieuwe fileserver. De spec’s van dit beestje zijn:

19 inch rackmountable (komt straks in een rack te hangen)
Intel core i5 650 Dualcore 3,2Ghz
2×2 GB ddr3 ram
4x 1,5TB hdds op Areca ARC1212 raidkaart (raid5)

Daarmee heeft de server beschikking over 4TB opslag. De Areca raidkaart is een behoorlijk duur kaartje geweest (400 euro) maar dat beest presteert 300-350 mb per sec aan lees en schrijfsnelheden.