Voor een tientje per jaar een https website

Code van een website

Het leven wordt duurder, en we proberen op alle mogelijke manieren dubbeltjes en kwartjes tot aan hele euro's te besparen. Ook in het digitale leven gaan de prijzen omhoog. Over een paar weken is het 1 januari, en misschien wordt 2023 wel een schrikjaar. Met de digitale gereedschappen die er op vandaag zijn, is het maken en publiceren van een website steeds eenvoudiger. Maar is het ook goedkoper? Dat valt te bezien.

Als je een website moet maken die als voornaamste doel heeft jezelf of je bedrijf te presenteren, dan is het niet nodig een uitgebreid Content Management Systeem (CMS) te gebruiken. Wel natuurlijk als je in de toekomst grotere plannen hebt met de website, zoals het presenteren van een winkel met producten en het toelaten van meerdere gebruikers die op je website in kunnen loggen en de inhoud moeten kunnen veranderen. Voor een massagepraktijk bijvoorbeeld, is het vooral van belang om je op het web te presenteren, je contactgegevens bekend te maken en eventueel de tarieven die je voor de diensten in rekening wil brengen. Met deze website als voorbeeld laat ik zien hoe het goedkoop en niet al te moeilijk kan.

Domein registreren.

Allereerst zul je een naam op internet moeten hanteren. Als je al een bedrijf hebt, hoef je hierover niet lang na te denken. Om die naam op internet te kunnen gebruiken moet je een zogenaamd domein registreren. In ons geval is dat “kantamassage”. Je kunt er “kantamassage.com” van maken of “kantamassage.nl”. De meeste mensen in Nederland zijn gewend aan het .nl suffix. Dus daar gaan we voor. Je kunt eventueel ook andere suffixen, of domeinnamen die heel erg op je bedrijfsnaam lijken, registreren. Dit om te voorkomen dat iemand anders zich die domeinen gaat toe-eigenen en zich gaat voordoen als jouw bedrijf. Er zijn veel bedrijven die je hiermee willen helpen, bijvoorbeeld namecheap, godaddy ,mijndomein, strato, hostinger, kies er een die je het meest bevalt, de prijzen zullen elkaar niet zo heel veel ontlopen. Muntstukken

Ping ping

Je hebt het domein gekocht, wat heb je dan? Alleen een domeinnaam? Je domeinprovider heeft ook een uniek nummer op internet voor jou gereserveerd: een ip-adres. Zo'n ip-adres is uiteindelijk het adres van een machine waar een browser gaat zoeken of daar iets te vinden is om je te tonen. Voor kantamassage is dat bijvoorbeeld 34.249.138.199. Maar is daar dan iets te vinden? Helaas niet, want we hebben alleen een domeinnaam gekocht, en geen ruimte op een computer dat te benaderen is op het internet, en waar je bestanden op kunt zetten die een browser dan zal tonen. Die ruimte kun je in de meeste gevallen wel bijkopen bij het bedrijf waar je de naam hebt geregistreerd. Dat betekent echter wel dat je tien keer zoveel te betalen hebt als voor je domeinregistratie. Voor dat geld heb je die websiteruimte met een versleutelde https verbinding (het slotje in de adresbalk). Maar we willen alles toch goedkoop houden? Ondanks dat we ook nog alles simpel willen houden, moeten we toch wat extra doen om gratis ruimte en een gratis https-slotje te scoren.

Github

Github logoEr zijn plekken waar je wel gratis je bestanden neer kunt zetten zodat ze via internet te benaderen zijn. Zoek eens op “free hosting” in een zoekmachine. Hostinger of 000webhost bieden bijvoorbeeld een gratis pakket aan. Je hebt daar zelfs uitgebreidere mogelijkheden met website-builders of met Wordpress. Er bestaat echter ook een speciale plek die oorspronkelijk is gebouwd om open-source software op te bewaren en om het mogelijk te maken met meerdere mensen aan hetzelfde programma te kunnen werken: Github. Die historie is voor ons niet zo belangrijk. Wat ik zelf wel belangrijk vind, is dat deze plek meer garantie biedt voor een goede en snelle werking van je website. Bij 000webhost bijvoorbeeld, is je gratis website erg traag, en op sommige tijden van de dag gewoon niet bereikbaar. Op Github zul je dat niet echt meemaken, is mijn verwachting.

Niets installeren

Maar hoe zet je website-bestanden op Github? Je maakt dan gebruik van Github Pages, dat speciaal voor webpagina's bedoeld is. Allereerst maak je een account aan op Github. Daarna maak je een zogenaamde repository aan waarvan de naam de volgende structuur heeft: accountnaam.github.io.
Create repository in Github
Dat is stap 1 op deze instructiepagina. Anders dan op deze pagina wordt voorgesteld, kun je het af zonder nieuwe git-software te installeren. Git is een versiebeheersysteem, en je zult dat een beetje moeten leren voor je er mee kunt werken. Gelukkig is dat niet nodig en hoef je de vervolgstappen op deze instructiepagina niet te volgen. Ik heb deze software niet op mijn computer gezet en toch heb ik de bestanden er neer kunnen zetten. Dat kun je namelijk eenvoudig doen door te navigeren naar je repository die je net hebt aangemaakt, en gewoon op de knop Add file te klikken en daarna op Upload files. Geef een omschrijving bij het uploaden (git is per slot een versiebeheer systeem en houdt alle veranderingen bij), en bevestig je keuze.
Add file in github
De bestanden staan nu op je Github-page, en zijn benaderbaar door in de browser accountnaam.github.io te typen! In ons geval is dat kantamassage.github.io.

De website maken

Hoe heb ik die bestanden dan aangemaakt die ik op Github gezet heb? De website heb ik vrij snel gemaakt met behulp van het parallax template op w3schools. Eigenlijk is het al genoeg om de broncode van dit template te kopiëren en op je computer als index.html te bewaren. Daarna kun je zelf de tekst, kleuren en foto's aanpassen. Maar je kunt het natuurlijk ook op de w3schools-manier doen.

Https

We hebben dus een website op Github en we hebben een domeinnaam. Nu moeten we ervoor zorgen dat als je "https://kantamassage.nl" in je browser typt, je ook terecht komt op Github. Dat kan met een ander bedrijf: Cloudflare. Dat is een bedrijf dat veel diensten aanbiedt die te maken hebben met websites en het beheer ervan. De meeste diensten gaan over het sneller en veiliger maken van je website. Ook hier maak je een account aan. Daarna kun je meteen een website toevoegen.
Add site in Cloudflare
Kies dan op de volgende pagina voor het gratis abonnement. Vervolgens worden alle gegevens over je domein ingelezen. Die kun je vergelijken met de gegevens die bij je provider van je domeinnaam (registrar) vindt. Dit gaat over de zogenaamde DNS-instellingen. In wezen is het de inhoud van een databaserecord waarin staat naar welk ip-adres de browser moet kijken als je een domeinnaam intypt. Een soort woordenboek, of beter nog een telefoonboek van namen en nummers. Daarna komt een belangrijke stap. Die gaat dan niet automatisch, want je moet bij je registrar iets veranderen: de computers die deze dns-database bijhouden: de nameservers. Daar moeten in plaats van de nameservers van de registrar die er nu staan, de namen van de nameservers van Cloudflare komen te staan. In ons geval is dat arnold.ns.cloudflare.com en demi.nl.cloudflare.com. Als je dat gedaan hebt kun je bevestigen dat je dat gedaan hebt door op de knop "Done, check nameservers" te klikken. Bij de paar stappen die daarna volgen kun je je gewoon bij de standaard waarden houden. En daarna is het wachten tot Cloudflare vindt dat het goed is.

Ping

Ondertussen kunnen we nog eens kijken naar de Github-pages. Want wat we later gaan doen, is vertellen tegen die nameservers van Cloudflare dat hij voor het domein niet meer naar het oorspronkelijk ip-adres (dat was in ons voorbeeld 34.249.138.199) moet wijzen, maar naar het ip-adres van de Github-pages. Maar wat is dat ip-adres van Github dan? En Github heeft veel pages, hoe weet Github welk van de pages getoond moet worden als Cloudflare de browser volgens onze opdracht naar Githubs ip-adres stuurt? Eerst maar eens het ip-adres opzoeken. In deze documentatie vind je zelfs een viertal nummers.

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153

Dan toch maar eens pingen naar kantamassage.github.io.
Pingen naar je github site
Kennelijk is het ip adres dan
185.199.110.153

Cname

Onze tweede vraag was: hoe weet Github dat de vraag van de browser voor kantamassage.nl naar kantamassage.github.io moet wijzen en niet naar bijvoorbeeld blabla.github.io? Daarvoor is het nodig dat je nog wat informatie toevoegt aan Github Pages, namelijk de naam van het binnenkomende domein: kantamassage.nl. Onder menu-tem Settings->Pages vind je het kopje Custom Domain.

Custom domain instellen in Github Pages
Als je hier de naam invult, wordt een bestandje met de naam CNAME aangemaakt in de root van je repository. De inhoud van het bestandje bevat de naam die je hebt ingevuld: “kantamassage.nl”. Zo wordt kantamassage.nl niet alleen aan het ip adres van github.io (185.199.110.153) gekoppeld, maar ook aan het subdomein kantamassage op github.io (kantamassage.github.io).

Nu weer terug naar Cloudflare. Als de nameservers goed staan, en in Cloudflare krijg je de melding dat het ok is, dan kun je eindelijk de verwijzing naar Github in de dns zetten:
dns bij cloudflare

De ipnummers voor de AAAA-records (ipv6) kun je ook met ping vinden, maar dan met ping -6 domeinnaam. Probeer het eens uit en verbaas je erover dat je een https-website hebt voor weinig geld!

“Verwijsbrief”

Je hebt nu voor ongeveer 10 euro per jaar ( de prijs van de domeinregistratie) een https-website online. Als je meer domeinen hebt geregistreerd, bijvoorbeeld kantamassage.com dan kun je die laten doorverwijzen naar kantamassage.nl bij je registrar, door het aanmaken van een 301 redirect. Dat is meestal een kwestie van een paar klikken en de domeinnaam in vullen.
Doorverwijzen bij je registrar

Nieuw

Voor mij was het allemaal betrekkelijk nieuw, deze manier van website-beheer, en ik heb ook wel zitten stoeien met die ip-adressen van Github. Daarom heb ik het ook allemaal nog eens goed opgeschreven en kan ik het hier delen. Maar het kan zijn dat sommige dingen ook wel beter kunnen. Ik zag bijvoorbeeld een soort van “Pages”-mogelijkheid bij Cloudflare. Dat is waarschijnlijk nog makkelijker, ik weet alleen niet of dat ook gratis is. Ik heb er in ieder geval wel van geleerd, en laat het me gerust weten wanneer het nog beter of makkelijker kan.

#website #internet #domein #https #gratis

Discuss...