Roland Kamphuis Rotating Header Image

Posts Tagged ‘SSL’

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!

WordPress uitbreiden met https SSL certificaat

Tegenwoordig is https wel een must om aan te hebben staan. Dat houd in dat de verbinding tussen de bezoekers en de website beveiligd wordt middels SSL encryptie. Zo kan niemand meer meekijken wat een bezoeker uitspookt op een website.
Browsers promoten dit gedrag door een groen slotje in de browserbalk, en sommige browsers gaan zelfs verder en zetten een rood kruis door het slot als je het niet hebt. Bedrijven zoals Google zijn ook SSL aan het promoten. Heb je SSL certificaat, dan prefereert Google jouw website boven een vergelijkbare site zonder SSL. Genoeg redenen om ook mijn weblog te voorzien van een SSL certificaat.

Gelukkig hoef je tegenwoordig geen SSL certificaat te kopen, en heb ik ook gekozen voor een gratis certificaat van Lets encrypt. Dat is voldoende voor een blog zoals die van mij. Er zijn ook betaalde certifcaten, het verschil bewaar ik voor een volgende blogpost.
Lets Encrypt controleert je website middels een bestand op de webpagina en geeft daarna het certificaat uit. Gelukkig hoeft dit niet veel werk te zijn en ondersteunen hosting bedrijven het installeren van een lets encypt certificaat met 1 druk op de knop. Zo ook mijn bedrijf IceHosting, waarbij je in directadmin met 1 druk op de knop een certificaat installeert.

Directadmin Letsencrypt activeren

Na installatie van het certificaat is het handig om de private_html map te koppelen aan de public_html. Dit voorkomt dat je 2 keer je site moet uploaden. In directadmin kan dit onder domain setup met 1 klik geactiveerd worden.

Dan denk je, ik ben er! Maar helaas is dat niet waar. Je moet ook wordpress vertellen dat je https:// wil gebruiken over http://. Dus in de wp-admin onder settings de url veranderd.

Wp-admin, general settings, url aanpassen met s bij http

Vervolgens werkt de site via https. Maar er staat nog een irritante uitroepteken in de URL balk (waardoor die niet groen is). Dat blijkt te komen dat sommige afbeeldingen linken naar http:// versie van de site. Dus feitelijk moet je alle blog artikelen langslopen en de afbeelding van url veranderen. Dit was mij te veel werk, dus ging ik naar phpmyadmin om middels een SQL query alles tegelijk updaten:

UPDATE wp_options SET option_value = replace(option_value, 'http://www.domein', 'https://www.domein') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET guid = replace(guid, 'http://www.domein','https://www.domein');

UPDATE wp_posts SET post_content = replace(post_content, 'http://www.domein', 'https://www.domein');

UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://www.domein','https://www.domein');

En voilla, de browserbalk is nu groen. Tot slot de .htaccess aangepast om verplicht iedere bezoeker naar https om te zetten:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Het gaat om regel 4 en 5, de rewritecond https !=on, met vervolgens de redirect naar de https versie. Let wel op dat ook eventuele subsites ook de redirect krijgen. Dus zorg ervoor dat die ook klaar zijn voor SSL, of sluit ze uit met de redirect naar https.