This commit is contained in:
2025-12-05 09:15:15 +01:00
commit 8837c20d66
1752 changed files with 1123339 additions and 0 deletions

26
content/_index.en.md Normal file
View File

@@ -0,0 +1,26 @@
---
title: "StartIT - Knowledge Base"
# banner
banner :
title : "Public knowledge base"
subtitle : "This knowledge base contains information about all services provided by [StartIT](https://start-it.nl?source=knowledge-base). All content is licensed under [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/deed.en).<br><br><small>This knowledge base is written with <i class='fa-solid fa-heart'></i>.</small>"
image : "images/ctaMidPhone.svg"
banner_button :
enable : "false"
label : ""
link : ""
# call to action
call_to_action :
enable : false
title : "Didn't find your answer?"
image : "images/ctaMidPhone.svg"
content : "Didnt find the answer you were looking for? You can send us a message and well look into it. We usually respond within 3 working days."
button :
enable : "true"
label : "Send us a message"
link : "contact/"
---

26
content/_index.fr.md Normal file
View File

@@ -0,0 +1,26 @@
---
title: "StartIT - Base de connaissances"
# banner
banner :
title : "Base de connaissances publique"
subtitle : "Cette base de connaissances contient des informations sur tous les services fournis par [StartIT](https://start-it.nl?source=knowledge-base). Tout le contenu est sous licence [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/deed.fr).<br><br><small>Cette base de connaissances est écrite avec <i class='fa-solid fa-heart'></i>.</small>"
image : "images/ctaMidPhone.svg"
banner_button :
enable : "false"
label : ""
link : ""
# call to action
call_to_action :
enable : false
title : "Vous navez pas trouvé votre réponse ?"
image : "images/ctaMidPhone.svg"
content : "Vous navez pas trouvé la réponse que vous cherchiez ? Vous pouvez nous envoyer un message et nous examinerons votre demande. Nous répondons généralement sous 3 jours ouvrables."
button :
enable : "true"
label : "Envoyez-nous un message"
link : "contact/"
---

26
content/_index.nl.md Normal file
View File

@@ -0,0 +1,26 @@
---
title: "Mantelzorgwoning informatie"
# banner
banner :
title : "Alles over mantelzorgwoningen"
subtitle : "Overweegt u de aanschaf van een mantelzorgwoning? Dan komt er behoorlijk wat bij kijken, zoals wet & regelgeving, financiering en bouwtechniek. <br><br>De informatie op deze website kan u gebruiken om een goed beeld te krijgen van de mogelijkheden."
image : "images/home.webp"
banner_button :
enable : true
label : "Begin hier"
link : "overzicht/"
# call to action
call_to_action :
enable : true
title : "Antwoord niet gevonden?"
image : "images/home2.jpg"
content : "Heeft u het antwoord niet gevonden wat u zocht? Neem dan contact op en u krijgt een persoonlijk antwoord. <br><br>Indien van toepassing krijgt u ook een aanvullende toetsing van uw locatie, om te bepalen wat de maximale te bebouwen oppervlakte is of andere bouwtechnische eigenschappen."
button :
enable : "true"
label : "Stuur een bericht"
link : "contact/"
---

View File

@@ -0,0 +1,22 @@
---
title: "Zoek uw gemeente"
date: 2025-11-08
icon: "fas fa-location-dot"
description: "Bekijk onze database vol informatie over uw mogelijkheden in uw gemeente."
type : "docs"
weight: 2
---
Mantelzorgwoningen vallen in Nederland grotendeels onder landelijke regels, maar gemeenten kunnen hiervan afwijken of aanvullende voorwaarden stellen. Dat betekent dat u binnen de ene gemeente vergunningvrij kunt bouwen, terwijl elders juist beperkingen gelden door lokale beleidskeuzes, natuurzones, beschermde dorpsgezichten of bepalingen van het waterschap.
Wij hebben deze gegevens gebundeld per gemeente, zodat u snel een beeld kan krijgen over uw mogelijkheden.
{{< notice "info" "Praktische tip" >}}
Gebruik de zoekfunctie in het menu om direct naar uw plaatsnaam te zoeken.
{{< /notice >}}
{{< notice "warning" "Laat u altijd persoonlijk informeren" >}}
Hoewel wij alle data met de nodige zorg controleren voordat wij het publiceren, is het nog altijd voorbehouden op (type-)fouten. Laat uzelf altijd informeren door een betrouwbare partij, zoals onze commerciële partner {{< partner >}}.
{{< /notice >}}

View File

@@ -0,0 +1,79 @@
---
title: "Drenthe"
date: 2025-11-09
feedback: true
draft: false
# Content properties
flag: images/region/drenthe/flag-drenthe.svg
town: true
---
Hieronder is een lijst van alle gemeenten en de bijbehorende plaatsnamen binnen Drenthe. Per gemeente is er informatie beschikbaar over de voorwaarden omtrent het plaatsen van een mantelzorgwoning.
---
<div class="row border-bottom py-2">
<div class="col-sm-3 fw-bold"><a href="aa-en-hunze/">Aa en Hunze</a></div>
<div class="col-sm-9 font-small">Amen, Anderen, Anloo, Annen, Annerveenschekanaal, Balloërveld, Balloo, Deurze, Eext, Eexterveen, Eexterveenschekanaal, Eexterzandvoort, Ekehaar, Eldersloo, Eleveld, Gasselte, Gasselternijveen, Gasselternijveenschemond, Gasteren, Geelbroek, Gieten, Gieterveen, Grolloo, Marwijksoord, Nieuw Annerveen, Nieuwediep, Nijlande, Nooitgedacht, Oud Annerveen, Papenvoort, Rolde, Schipborg, Schoonloo, Spijkerboor, Vredenheim</div>
</div>
<div class="row border-bottom py-2">
<div class="col-sm-3 fw-bold"><a href="assen/">Assen</a></div>
<div class="col-sm-9 font-small">Assen, Loon, Rhee, Ter Aard, Ubbena, Zeijerveen, Zeijerveld</div>
</div>
<div class="row border-bottom py-2">
<div class="col-sm-3 fw-bold"><a href="borger-odoorn/">Borger-Odoorn</a></div>
<div class="col-sm-9 font-small">1e Exloërmond, 2e Exloërmond, 2e Valthermond, Borger, Bronneger, Bronnegerveen, Buinen, Buinerveen, Drouwen, Drouwenermond, Drouwenerveen, Ees, Eesergroen, Eeserveen, Ellertshaar, Exloo, Exloërveen, Klijndijk, Nieuw-Buinen, Odoorn, Odoornerveen, Valthe, Valthermond, Westdorp, Zandberg</div>
</div>
<div class="row border-bottom py-2">
<div class="col-sm-3 fw-bold"><a href="coevorden/">Coevorden</a></div>
<div class="col-sm-9 font-small">Aalden, Benneveld, Coevorden, Dalen, Dalerpeel, Dalerveen, De Kiel, Diphoorn, Erm, Gees, Geesbrug, Holsloot, Meppen, Nieuwlande Coevorden, Noord-Sleen, Oosterhesselen, Schoonoord, Sleen, Stieltjeskanaal, t Haantje, Wachtum, Wezup, Wezuperbrug, Zweeloo, Zwinderen</div>
</div>
<div class="row border-bottom py-2">
<div class="col-sm-3 fw-bold"><a href="de-wolden/">De Wolden</a></div>
<div class="col-sm-9 font-small">Alteveer, Ansen, Drogteropslagen, Echten, Eursinge, Kerkenveld, Koekange, Linde, Ruinen, Ruinerwold, Veeningen, Zuidwolde, De Wijk</div>
</div>
<div class="row border-bottom py-2">
<div class="col-sm-3 fw-bold"><a href="emmen/">Emmen</a></div>
<div class="col-sm-9 font-small">Barger-Compascuum, Emmen, Emmer-Compascuum, Erica, Klazienaveen, Klazienaveen-Noord, Nieuw-Amsterdam, Nieuw-Dordrecht, Nieuw-Schoonebeek, Nieuw-Weerdinge, Roswinkel, Schoonebeek, Veenoord, Weiteveen, Zandpol, Zwartemeer</div>
</div>
<div class="row border-bottom py-2">
<div class="col-sm-3 fw-bold"><a href="hoogeveen/">Hoogeveen</a></div>
<div class="col-sm-9 font-small">Alteveer, Elim, Fluitenberg, Hollandscheveld, Hoogeveen, Nieuweroord, Nieuwlande, Noordscheschut, Pesse, Stuifzand, Tiendeveen</div>
</div>
<div class="row border-bottom py-2">
<div class="col-sm-3 fw-bold"><a href="meppel/">Meppel</a></div>
<div class="col-sm-9 font-small">Broekhuizen, De Schiphorst, Meppel, Nijeveen, Rogat</div>
</div>
<div class="row border-bottom py-2">
<div class="col-sm-3 fw-bold"><a href="midden-drenthe/">Midden-Drenthe</a></div>
<div class="col-sm-9 font-small">Balinge, Beilen, Bovensmilde, Bruntinge, Drijber, Elp, Eursinge, Garminge, Hijken, Hoogersmilde, Hooghalen, Mantinge, Nieuw-Balinge, Nieuweroord, Oranje, Orvelte, Smilde, Spier, Stuifzand, Tiendeveen, Westerbork, Wijster, Witteveen, Zuidveld, Zwiggelte</div>
</div>
<div class="row border-bottom py-2">
<div class="col-sm-3 fw-bold"><a href="noordenveld/">Noordenveld</a></div>
<div class="col-sm-9 font-small">Alteveer, Een, Een-West, Foxwolde, Huis ter Heide, Langelo, Leutingewolde, Lieveren, Matsloot, Nietap, Nieuw-Roden, Norg, Peest, Peize, Roden, Roderesch, Roderwolde, Steenbergen, Veenhuizen, Westervelde, Zuidvelde</div>
</div>
<div class="row border-bottom py-2">
<div class="col-sm-3 fw-bold"><a href="tynaarlo/">Tynaarlo</a></div>
<div class="col-sm-9 font-small">Bunne, De Groeve, De Punt, Donderen, Eelde, Eelderwolde, Midlaren, Oudemolen, Paterswolde, Taarlo, Tynaarlo, Vries, Winde, Yde, Zeegse, Zeijen, Zuidlaarderveen, Zuidlaren</div>
</div>
<div class="row border-bottom py-2 mb-4">
<div class="col-sm-3 fw-bold"><a href="westerveld/">Westerveld</a></div>
<div class="col-sm-9 font-small">Ansen, Boschoord, Darp, Diever, Dieverbrug, Doldersum, Dwingeloo, Frederiksoord, Geeuwenbrug, Havelte, Havelterberg, Hoogersmilde, Nijensleek, Oude Willem, Pesse, Ruinen, Spier, Uffelte, Vledder, Vledderveen, Wapse, Wapserveen, Wateren, Wilhelminaoord, Wittelte, Zorgvlied</div>
</div>
{{< notice "info" "Op postcode zoeken?" >}}
Gebruik de zoekfunctie in het menu om direct naar uw postcode te zoeken.
{{< /notice >}}

View File

@@ -0,0 +1,93 @@
---
title: "Aa en Hunze"
date: 2025-11-09
feedback: true
draft: false
build:
list:
town: true
region: false
general: false
town_options:
region: "Drenthe"
flag: "images/region/drenthe/towns/flag-aa-en-hunze.svg"
map_img: "images/region/drenthe/towns/map-aa-en-hunze.png"
map_url: "https://voorbeeldkaart.nl/aa-en-hunze"
mantelzorgwoning_status: "positive" # positive | neutral | negative
premantelzorgwoning_status: "neutral" # positive | neutral | negative
generatiewoning_status: "neutral" # positive | neutral | negative
vrijebouw_status: "neutral" # positive | neutral | negative
soil_types:
- "zand"
- "veen"
natura_links:
- "https://www.natura2000.nl/gebieden/drenthe/drentsche-aa-gebied/drentsche-aa-gebied-kaart"
monumenten_count: 103
monumenten_links:
- "https://monumentenregister.cultureelerfgoed.nl/monumentenregister?f%5B0%5D=gemeente%3AAa%20en%20Hunze"
soil_composition: "zand / veen"
info_town_hall_address: "Spiekersteeg 1, 9461 BH, Gieten"
info_town_hall_phone: "+31592267777"
info_residents_total: "26089"
info_residents_density: "94 inw./km²"
info_town_surface_total: "278,87 km²"
info_town_surface_soil: "276,09 km²"
info_town_surface_water: "2,78 km²"
info_town_website: "https://www.aaenhunze.nl"
info_town_omgevingsloket: "https://omgevingswet.overheid.nl/regels-op-de-kaart/documenten/_akn_nl_act_gm1680_2020_omgevingsplan/overzicht"
info_town_wiki: "https://nl.wikipedia.org/wiki/Aa_en_Hunze"
info_town_train_bool: false
info_town_bus_array:
- "[300](https://moovitapp.com/index/nl/openbaar_vervoer-line-300-Netherlands-101-9732-663374-0)"
- "[310](https://moovitapp.com/index/nl/openbaar_vervoer-line-310-Netherlands-101-9732-14134894-0)"
- "[312](https://moovitapp.com/index/nl/openbaar_vervoer-line-312-Netherlands-101-9732-231511-0)"
---
Pagina content hier
---
<!-- Nav tabs -->
<ul class="nav nav-tabs nav-fill nav-pills-custom" id="townTab" role="tablist">
<li class="nav-item list-unstyled" role="presentation">
<button class="nav-link active" id="monumenten-tab" data-bs-toggle="tab" data-bs-target="#monumenten" type="button" role="tab" aria-controls="monumenten" aria-selected="true">Monumenten
<span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger">
103
</span></button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="waterschap-tab" data-bs-toggle="tab" data-bs-target="#waterschap" type="button" role="tab" aria-controls="waterschap" aria-selected="false">Waterschap</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="messages-tab" data-bs-toggle="tab" data-bs-target="#messages" type="button" role="tab" aria-controls="messages" aria-selected="false">Messages</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="settings-tab" data-bs-toggle="tab" data-bs-target="#settings" type="button" role="tab" aria-controls="settings" aria-selected="false">Settings</button>
</li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div class="tab-pane active" id="monumenten" role="tabpanel" aria-labelledby="monumenten-tab">
Er zijn **103 geregistreerde monumenten** in de gemeente AA en Hunze. Indien u een mantelzorgwoning wilt bouwen in de nabijheid (meestal binnen 500 meter) van een monument, kunnen er aanvullende regels gelden voor het straatbeeld en aanzicht. Deze kunnen bestaan uit materiaal en kleur bepalingen, afschermen van straatbeeld middels beplanting, maximale bouwhoogte en soortgelijke kaders.
Een volledig overzicht staat op het [Monumentenregister](https://monumentenregister.cultureelerfgoed.nl/monumentenregister?f%5B0%5D=gemeente%3AAa%20en%20Hunze).
</div>
<div class="tab-pane" id="waterschap" role="tabpanel" aria-labelledby="waterschap-tab">
</div>
<div class="tab-pane" id="messages" role="tabpanel" aria-labelledby="messages-tab">...</div>
<div class="tab-pane" id="settings" role="tabpanel" aria-labelledby="settings-tab">...</div>
</div>

View File

@@ -0,0 +1,99 @@
---
title: "Assen"
date: 2025-11-09
feedback: true
draft: false
build:
list:
# Content properties
town: true
region: false
general: false
town_options:
flag: images/region/drenthe/towns/flag-aa-en-hunze.svg
map:
---
<div class="row">
<div class="col-12 p-2">
<i class="pe-2 fas fa-2x fa-house-medical-circle-check color-positive"></i>
<b>Vergunningvrij te plaatsen</b>
</div>
<div class="col-12 p-2">
<i class="pe-2 fas fa-2x fa-scale-unbalanced color-positive"></i>
De gemeente hanteert de <a href="https://wetten.overheid.nl/BWBR0037885/2025-07-01">Omgevingswet</a> zonder afwijking
</div>
<div class="col-12 p-2">
<i class="pe-2 fas fa-2x fa-leaf color-warning"></i>
Er zijn natuurgebieden in de gemeente: <a href="https://www.natura2000.nl/gebieden/drenthe/drentsche-aa-gebied">Drentsche Aa-gebied</a>
</div>
<div class="col-12 p-2">
<i class="pe-2 fas fa-2x fa-landmark color-warning"></i>
Er zijn <a href="https://www.cultureelerfgoed.nl/onderwerpen/b/bronnen-en-kaarten/overzicht/kaart-van-beschermde-stads--en-dorpsgezichten">beschermde dorpsaanzichten</a> aanwezig. In totaal zijn er <b>103</b> monumentale panden in de gemeente.
</div>
<div class="col-12 p-2">
<i class="pe-2 fas fa-2x fa-ruler-combined color-positive"></i>
Bouw tot <b>100m<sup>2</sup></b> mogelijk
</div>
</div>
In het Omgevingsplan artikel 22.25[^1] staat dat *huisvesting in verband met mantelzorg* wordt gezien als **functioneel verbonden met het hoofdgebouw**. Dit sluit aan op de landelijke systematiek waarbij een mantelzorgwoning als bijbehorend bouwwerk wordt behandeld.
Praktisch betekent dit: als u voldoet aan de landelijke regels voor een vergunningvrije mantelzorgwoning (mantelzorgrelatie, gekoppeld aan een bestaande woning, binnen de landelijke maatvoering), dan sluit Aa en Hunze hierbij aan. Het omgevingsplan voegt geen extra beperking of verruiming toe, maar legt alleen vast dat de mantelzorgwoning planologisch “bij” de hoofdwoning hoort.
* **Generatiewoning / familiewoning**
Ook begrippen als **“generatiewoning”** of “familiewoning” worden niet apart benoemd in het omgevingsplan.
→ Deze vormen van samenwonen worden juridisch gezien als gewone woonfuncties. Een tweede (of gesplitste) woning op een perceel wordt getoetst aan de normale woon- en bouwregels en is niet automatisch vergunningvrij.
**Conclusie voor jouw wiki-tekst over Aa en Hunze:**
* **Mantelzorgwoning:** gemeente volgt de landelijke lijn; mantelzorgwoning wordt planologisch als bijbehorend bouwwerk gezien, waardoor vergunningvrij bouwen mogelijk kan zijn als u aan de landelijke voorwaarden voldoet.
* **Pré-mantelzorgwoning:** geen aparte lokale regeling; valt onder de gewone regels voor extra bebouwing/extra woning, dus meestal vergunningplichtig.
* **Generatiewoning/familiewoning:** niet apart geregeld; wordt behandeld als reguliere (extra) woning of woningsplitsing, afhankelijk van de situatie.
Het Omgevingsloket[^2] als plek waar u concreet kunt toetsen of een plan vergunningvrij is of dat toch een omgevingsvergunning nodig is.
[^1]: [Omgevingsplan artikel 22.25](https://lokaleregelgeving.overheid.nl/CVDR696477/1?#chp_22__subchp_22.5)
[^2]: [Omgevingsloket Aa en Hunze](https://omgevingswet.overheid.nl/regels-op-de-kaart/documenten/_akn_nl_act_gm1680_2020_omgevingsplan?datum=2024-01-01)
---
<!-- Nav tabs -->
<ul class="nav nav-tabs nav-fill nav-pills-custom" style="list-style:none;" id="myTab" role="tablist">
<li class="nav-item list-unstyled" style="list-style:none;" role="presentation">
<button class="nav-link active" id="monumenten-tab" data-bs-toggle="tab" data-bs-target="#monumenten" type="button" role="tab" aria-controls="monumenten" aria-selected="true">Monumenten
<span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger">
103
<span class="visually-hidden">unread messages</span>
</span></button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="waterschap-tab" data-bs-toggle="tab" data-bs-target="#waterschap" type="button" role="tab" aria-controls="waterschap" aria-selected="false">Waterschap</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="messages-tab" data-bs-toggle="tab" data-bs-target="#messages" type="button" role="tab" aria-controls="messages" aria-selected="false">Messages</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="settings-tab" data-bs-toggle="tab" data-bs-target="#settings" type="button" role="tab" aria-controls="settings" aria-selected="false">Settings</button>
</li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div class="tab-pane active" id="monumenten" role="tabpanel" aria-labelledby="monumenten-tab">
Er zijn **103 geregistreerde monumenten** in de gemeente AA en Hunze. Indien u een mantelzorgwoning wilt bouwen in de nabijheid (meestal binnen 500 meter) van een monument, kunnen er aanvullende regels gelden voor het straatbeeld en aanzicht. Deze kunnen bestaan uit materiaal en kleur bepalingen, afschermen van straatbeeld middels beplanting, maximale bouwhoogte en soortgelijke kaders.
Een volledig overzicht staat op het [Monumentenregister](https://monumentenregister.cultureelerfgoed.nl/monumentenregister?f%5B0%5D=gemeente%3AAa%20en%20Hunze).
</div>
<div class="tab-pane" id="waterschap" role="tabpanel" aria-labelledby="waterschap-tab">
</div>
<div class="tab-pane" id="messages" role="tabpanel" aria-labelledby="messages-tab">...</div>
<div class="tab-pane" id="settings" role="tabpanel" aria-labelledby="settings-tab">...</div>
</div>

View File

@@ -0,0 +1,14 @@
---
title: "Flevoland"
date: 2025-11-09
feedback: true
draft: false
# Content properties
flag: images/region/flevoland/flag-flevoland.svg
town: true
---
Hieronder is een lijst van alle gemeenten en de bijbehorende plaatsnamen binnen Flevoland. Per gemeente is er informatie beschikbaar over de voorwaarden omtrent het plaatsen van een mantelzorgwoning.
---

View File

@@ -0,0 +1,7 @@
---
title: "Friesland"
date: 2025-11-09
feedback: true
draft: false
---

View File

@@ -0,0 +1,6 @@
---
title: "Gelderland"
date: 2025-11-09
feedback: true
draft: false
---

View File

@@ -0,0 +1,7 @@
---
title: "Groningen"
date: 2025-11-09
feedback: true
draft: false
---

View File

@@ -0,0 +1,7 @@
---
title: "Limburg"
date: 2025-11-09
feedback: true
draft: false
---

View File

@@ -0,0 +1,7 @@
---
title: "Noord-Brabant"
date: 2025-11-09
feedback: true
draft: false
---

View File

@@ -0,0 +1,7 @@
---
title: "Noord-Holland"
date: 2025-11-09
feedback: true
draft: false
---

View File

@@ -0,0 +1,7 @@
---
title: "Overijssel"
date: 2025-11-09
feedback: true
draft: false
---

View File

@@ -0,0 +1,7 @@
---
title: "Utrecht"
date: 2025-11-09
feedback: true
draft: false
---

View File

@@ -0,0 +1,7 @@
---
title: "Zuid-Holland"
date: 2025-11-09
feedback: true
draft: false
---

View File

@@ -0,0 +1,9 @@
---
title: "Voor bewoners"
date: 2025-11-08
icon: "fas fa-person-cane"
description: "Aanvullend advies voor u als de (toekomstig) bewoner bent van een mantelzorgwoning."
type : "docs"
weight: 5
---

View File

@@ -0,0 +1,122 @@
---
title: "Apache"
date: 2025-11-08
weight: 3
feedback: true
draft: false
---
{{< notice "info" "Informatie">}}
De instructies in dit artikel zijn uitsluitend voor de webserver, niet de site generator.
{{< /notice >}}
## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren.
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je begint met installeren.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Gebruik het `apt` commando om het systeem te updaten.
```bash
sudo apt update && sudo apt upgrade
```
## Apache
### Installatie
Installeer Apache met het `apt` commando.
```bash
sudo apt install apache2
```
### Configuratie
{{< notice "info" "Informatie" >}}
Verander in de code **voorbeeld** naar jouw domeinnaam, zonder `https://` of `www` tenzij letterlijk aangegeven zoals **voorbeeld.nl**
{{< /notice >}}
1. Zorg dat Apache altijd start met de server.
```bash
sudo systemctl enable --now apache2
```
2. Maak een nieuwe site configuratie op basis van de standaard instellingen.
```bash
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/voorbeeld.nl.conf
```
3. Pas de inhoud met het programma `nano`.
```bash
sudo nano /etc/apache2/sites-available/voorbeeld.nl.conf
```
```apache
<VirtualHost *:80>
ServerName voorbeeld.nl
ServerAlias www.voorbeeld.nl
DocumentRoot /var/www/voorbeeld.nl/public
<Directory /var/www/voorbeeld.nl/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/voorbeeld.nl-error.log
CustomLog ${APACHE_LOG_DIR}/voorbeeld.nl-access.log combined
</VirtualHost>
```
{{< notice "info" "Tip" >}}
Je kan plakken in de terminal met CTRL + SHIFT + V
{{< /notice >}}
4. Activeer de configuratie met het `a2ensite` commando.
```bash
sudo a2ensite voorbeeld.nl.conf
```
5. Controleer werking en herlaad Apache.
```bash
sudo apache2ctl configtest
sudo systemctl reload apache2
```
## CertBot
### Installatie
Installeer CertBot met het `apt` commando.
```bash
sudo apt install certbot python3-certbot-apache
```
### Configuratie
Genereer en implementeer een geldig certificaat met het volgende commando.
```bash
sudo certbot --apache
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres, selectie welke sites certificering moeten krijgen en of je HTTP automatisch naar HTTPS wilt laten doorsturen.
{{< notice "info" "Tip" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```bash
sudo certbot --apache --dry-run
```
{{< /notice >}}
## Website activeren
1. Maak een index.html bestand. En geef deze een vorm van vulling, zoals voorbeeld hieronder.
```bash
sudo mkdir -p /var/www/voorbeeld.nl/public
sudo nano /var/www/voorbeeld.nl/public/index.html
```
```html
<html>
<body>
<h1>Hallo wereld</h1>
</body>
</html>
```
2. Wijs de omgeving toe aan de `www-data` gebruiker en groep, stel schrijfrechten in.
```bash
sudo chown www-data:www-data /var/www/voorbeeld.nl -R
sudo chmod -R g+rwX /var/www/voorbeeld.nl
```
3. Open de browser en ga naar je website toe, je zou nu de inhoud van de index.html moeten kunnen zien via HTTPS, met een geldig letsencrypt certificaat.

View File

@@ -0,0 +1,178 @@
---
title: "NextCloud (Apache)"
date: 2025-11-10
weight: 3
feedback: true
draft: false
---
NextCloud is een open source platform voor bestandssynchronisatie en samenwerking, vergelijkbaar met diensten als Dropbox of OneDrive. In deze handleiding installeren we NextCloud _zonder_ Docker, rechtstreeks op een Debian server met Apache als webserver.
{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een Debian server met een basis Apache installatie zoals beschreven in het bovenliggende artikel **Apache**.
{{< /notice >}}
## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Een werkende webserver (Apache) die verzoeken voor jouw domein kan verwerken
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je NextCloud installeert.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Werk de pakketbron en geïnstalleerde pakketten bij.
```bash
sudo apt update && sudo apt upgrade
```
## PHP en database installeren
NextCloud heeft PHP en een database nodig. In dit voorbeeld gebruiken we MariaDB als database.
1. Installeer Apache, PHP, de benodigde modules en MariaDB.
```bash
sudo apt install apache2 php libapache2-mod-php php-mysql php-xml php-gd php-curl php-mbstring php-zip php-intl php-bcmath php-gmp mariadb-server unzip
```
2. Beveilig de MariaDB installatie
```bash
sudo mysql_secure_installation
```
3. Maak een database en gebruiker voor NextCloud.
```bash
sudo mysql
```
Voer daarna in de MariaDB prompt de volgende opdrachten uit, pas wachtwoord en namen aan:
```sql
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'sterk-db-wachtwoord';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```
## NextCloud bestanden downloaden
We plaatsen NextCloud in `/var/www/nextcloud`.
1. Download en pak NextCloud uit.
```bash
cd /tmp
curl -LO https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
```
2. Maak de doelmap aan en kopieer de bestanden.
```bash
sudo mkdir -p /var/www/nextcloud
sudo rsync -av nextcloud/ /var/www/nextcloud/
```
3. Stel de juiste eigenaar en rechten in.
```bash
sudo chown -R www-data:www-data /var/www/nextcloud
sudo find /var/www/nextcloud -type d -exec chmod 750 {} \;
sudo find /var/www/nextcloud -type f -exec chmod 640 {} \;
```
## Apache configureren voor NextCloud
We maken een aparte site-configuratie aan voor `cloud.voorbeeld.nl`.
1. Maak een nieuw configuratiebestand.
```bash
sudo nano /etc/apache2/sites-available/cloud.voorbeeld.nl.conf
```
2. Plaats de volgende configuratie in het bestand:
```apache
<VirtualHost *:80>
ServerName cloud.voorbeeld.nl
ServerAlias www.cloud.voorbeeld.nl
DocumentRoot /var/www/nextcloud
<Directory /var/www/nextcloud>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
# Verhoog maximale uploadgrootte
LimitRequestBody 536870912
# Aanbevolen security headers
Header always set Referrer-Policy "no-referrer"
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-XSS-Protection "1; mode=block"
ErrorLog ${APACHE_LOG_DIR}/cloud.voorbeeld.nl-error.log
CustomLog ${APACHE_LOG_DIR}/cloud.voorbeeld.nl-access.log combined
</VirtualHost>
```
3. Zorg dat de benodigde modules voor NextCloud actief zijn.
```bash
sudo a2enmod rewrite headers env dir mime
sudo systemctl reload apache2
```
4. Activeer de site en controleer Apache.
```bash
sudo a2ensite cloud.voorbeeld.nl.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
```
## CertBot voor HTTPS
Zorg voor een geldig TLS-certificaat met CertBot.
1. Installeer CertBot met de Apache plugin.
```bash
sudo apt install certbot python3-certbot-apache
```
2. Vraag een certificaat aan voor jouw domein.
```bash
sudo certbot --apache
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres en de keuze om HTTP automatisch naar HTTPS om te leiden.
{{< notice "info" "Informatie" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```bash
sudo certbot --apache --dry-run
```
{{< /notice >}}
## NextCloud installatie afronden
1. Open een browser en ga naar:
```text
http://cloud.voorbeeld.nl
```
of, na het instellen van HTTPS:
```text
https://cloud.voorbeeld.nl
```
2. Volg de stappen van de NextCloud installatie:
- Stel een beheerdersgebruikersnaam en wachtwoord in
- Vul de databasegegevens in:
- Databasegebruiker: `nc_user`
- Databasewachtwoord: `sterk-db-wachtwoord`
- Database: `nextcloud`
- Host: `localhost`
{{< notice "info" "Informatie" >}}
Na afronden keert NextCloud terug naar de login-pagina en kun je inloggen met het beheerdersaccount.
{{< /notice >}}

View File

@@ -0,0 +1,192 @@
---
title: "WordPress"
date: 2025-11-09
weight: 3
feedback: true
draft: false
---
WordPress is een veelgebruikte applicatie voor het bouwen van websites en blogs. In deze handleiding installeren we WordPress op een Debian server, uitgaand van het feit dat er al een werkende webserver aanwezig is met Apache.
{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een Debian server met een basis Apache installatie zoals beschreven in het bovenliggende artikel **Apache**.
{{< /notice >}}
## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Een werkende webserver (Apache) die verzoeken voor jouw domein verwerkt
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je begint met installeren.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Gebruik het `apt` commando om het systeem te updaten.
```bash
sudo apt update && sudo apt upgrade
```
## PHP en database installeren
WordPress heeft PHP en een database nodig. In dit voorbeeld gebruiken we MariaDB als database.
1. Installeer PHP en de benodigde modules.
```bash
sudo apt install php libapache2-mod-php php-mysql php-xml php-gd php-curl php-mbstring php-zip
```
2. Installeer MariaDB server.
```bash
sudo apt install mariadb-server
```
3. Beveilig de MariaDB installatie (optioneel, maar aanbevolen).
```bash
sudo mysql_secure_installation
```
4. Maak een database en gebruiker voor WordPress.
```bash
sudo mysql
```
Voer daarna in de MariaDB prompt de volgende opdrachten uit (pas wachtwoord en namen aan):
```sql
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'sterk-wachtwoord';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```
## WordPress bestanden voorbereiden
We plaatsen WordPress in `/var/www/voorbeeld.nl/public`, zodat dit overeenkomt met de standaard webroot uit andere artikelen.
1. Download en pak WordPress uit.
```bash
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
```
2. Maak de doelmap aan en kopieer de bestanden.
```bash
sudo mkdir -p /var/www/voorbeeld.nl/public
sudo cp -r /tmp/wordpress/* /var/www/voorbeeld.nl/public/
```
3. Maak een kopie van het configuratiebestand.
```bash
cd /var/www/voorbeeld.nl/public
sudo cp wp-config-sample.php wp-config.php
```
4. Pas de database-instellingen aan in `wp-config.php`.
```bash
sudo nano /var/www/voorbeeld.nl/public/wp-config.php
```
Vul bij de databasegegevens:
```php
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wp_user' );
define( 'DB_PASSWORD', 'sterk-wachtwoord' );
define( 'DB_HOST', 'localhost' );
```
{{< notice "info" "Tip" >}}
Genereer de unieke beveiligingssleutels via de officiële WordPress salt generator en plak deze in `wp-config.php` in plaats van de standaard waardes.
{{< /notice >}}
5. Stel de juiste eigenaar en rechten in.
```bash
sudo chown -R www-data:www-data /var/www/voorbeeld.nl
sudo find /var/www/voorbeeld.nl -type d -exec chmod 750 {} \;
sudo find /var/www/voorbeeld.nl -type f -exec chmod 640 {} \;
```
### Apache configuratie
{{< notice "info" "Informatie" >}}
Verander in de code **voorbeeld** naar jouw domeinnaam, zonder `https://` of `www` tenzij letterlijk aangegeven zoals **voorbeeld.nl**.
{{< /notice >}}
1. Open de bestaande site-configuratie voor jouw domein.
```bash
sudo nano /etc/apache2/sites-available/voorbeeld.nl.conf
```
2. Zorg ervoor dat de configuratie er ongeveer als volgt uitziet:
```apache
<VirtualHost *:80>
ServerName voorbeeld.nl
ServerAlias www.voorbeeld.nl
DocumentRoot /var/www/voorbeeld.nl/public
<Directory /var/www/voorbeeld.nl/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/voorbeeld.nl-error.log
CustomLog ${APACHE_LOG_DIR}/voorbeeld.nl-access.log combined
</VirtualHost>
```
3. Zorg dat de benodigde modules voor WordPress actief zijn.
```bash
sudo a2enmod rewrite
sudo systemctl reload apache2
```
4. Controleer de Apache configuratie en herlaad de service.
```bash
sudo apache2ctl configtest
sudo systemctl reload apache2
```
### CertBot voor Apache
Installeer CertBot met de Apache plugin (als dit nog niet eerder gedaan is).
```bash
sudo apt install certbot python3-certbot-apache
```
Vraag een certificaat aan voor jouw domein.
```bash
sudo certbot --apache
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres, de selectie welke sites certificering moeten krijgen en of je HTTP automatisch naar HTTPS wilt laten doorsturen.
{{< notice "info" "Tip" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```bash
sudo certbot --apache --dry-run
```
{{< /notice >}}
## WordPress installatie afronden
1. Open de browser en ga naar jouw domein, bijvoorbeeld:
- `http://voorbeeld.nl` of
- `https://voorbeeld.nl` (na het instellen van letsencrypt)
2. Volg de stappen van de WordPress installatie:
- Kies de taal
- Vul de sitetitel in
- Maak een beheerdersaccount aan
- Bevestig en log in op het WordPress dashboard
Je WordPress site is nu actief en bereikbaar via het door jou ingestelde domein als je Apache als webserver gebruikt.

View File

@@ -0,0 +1,92 @@
---
title: "Docker"
date: 2025-11-10
weight: 2
feedback: true
draft: false
---
Docker is een platform om applicaties geïsoleerd te draaien in containers. In deze handleiding installeren we Docker op een Debian server via de command line en controleren we of de installatie correct werkt.
{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een schone Debian installatie met internettoegang. De stappen zijn getest op recente Debian-versies (zoals Debian 12).
{{< /notice >}}
## Benodigdheden
- Een server met een ondersteunde Debian Linux installatie
- Toegang tot de command line (bijvoorbeeld via SSH)
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren
- Werkende internetverbinding
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je Docker installeert.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Werk de pakketbron en geïnstalleerde pakketten bij.
```bash
sudo apt update && sudo apt upgrade
```
## Docker repository toevoegen
We installeren Docker vanaf de officiële Docker repository in plaats van de standaard Debian-pakketten.
1. Installeer vereiste hulppakketten.
```bash
sudo apt install ca-certificates curl gnupg
```
2. Maak de map aan voor de Docker GPG-sleutel.
```bash
sudo install -m 0755 -d /etc/apt/keyrings
```
3. Download en installeer de Docker GPG-sleutel.
```bash
curl -fsSL https://download.docker.com/linux/debian/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
```
4. Stel de juiste rechten in op de sleutel.
```bash
sudo chmod a+r /etc/apt/keyrings/docker.gpg
```
5. Voeg de Docker repository toe.
```bash
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```
6. Werk de pakketlijst bij.
```bash
sudo apt update
```
## Docker installeren
Installeer nu Docker Engine en de bijbehorende componenten.
```bash
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
Controleer of de Docker service actief is.
```bash
sudo systemctl status docker
```
Als Docker niet actief is, start de service en zorg dat deze automatisch start na een reboot.
```bash
sudo systemctl enable --now docker
```
## Docker installatie testen
Voer de officiële testcontainer uit om te controleren of Docker goed werkt.
```bash
sudo docker run hello-world
```
Je zou een bericht moeten zien dat bevestigt dat Docker correct is geïnstalleerd en een testcontainer heeft uitgevoerd.

View File

@@ -0,0 +1,154 @@
---
title: "NextCloud (Docker)"
date: 2025-11-10
weight: 3
feedback: true
draft: false
---
NextCloud is een open source platform voor bestandssynchronisatie en samenwerking, vergelijkbaar met diensten als Dropbox of OneDrive. In deze handleiding installeren we NextCloud op een Debian server met behulp van Docker en Docker Compose.
{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een Debian server waarop Docker en de Docker Compose plugin al zijn geïnstalleerd, zoals beschreven in het bovenliggende artikel **Docker**.
{{< /notice >}}
## Benodigdheden
- Een server met een ondersteunde Debian Linux installatie
- Docker en Docker Compose plugin geïnstalleerd
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je begint.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Werk de pakketbron en geïnstalleerde pakketten bij.
```bash
sudo apt update && sudo apt upgrade
```
3. Controleer of Docker en Docker Compose beschikbaar zijn.
```bash
docker --version
docker compose version
```
## Mapstructuur aanmaken
We plaatsen de Docker Compose configuratie en data in `/opt/nextcloud`.
1. Maak de basisstructuur aan.
```bash
sudo mkdir -p /opt/nextcloud/{db,nextcloud}
```
2. Geef de huidige gebruiker toegang (optioneel, handig voor beheer).
```bash
sudo chown -R $USER:$USER /opt/nextcloud
```
3. Ga naar de NextCloud map.
```bash
cd /opt/nextcloud
```
## Docker Compose bestand maken
We gebruiken een `docker-compose.yml` met NextCloud en MariaDB als database.
1. Maak het bestand `docker-compose.yml`.
```bash
nano docker-compose.yml
```
2. Plaats de volgende configuratie in het bestand:
```yaml
version: "3.9"
services:
db:
image: mariadb:11
container_name: nextcloud_db
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
environment:
- MYSQL_ROOT_PASSWORD=sterk-root-wachtwoord
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=sterk-db-wachtwoord
volumes:
- ./db:/var/lib/mysql
app:
image: nextcloud:stable
container_name: nextcloud_app
restart: unless-stopped
ports:
- "8080:80"
depends_on:
- db
environment:
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=sterk-db-wachtwoord
- MYSQL_HOST=db
volumes:
- ./nextcloud:/var/www/html
```
{{< notice "info" "Informatie" >}}
Vervang `sterk-root-wachtwoord` en `sterk-db-wachtwoord` door sterke, unieke wachtwoorden. Bewaar deze veilig.
{{< /notice >}}
## NextCloud containers starten
1. Download de benodigde images en start de containers in de achtergrond.
```bash
docker compose up -d
```
2. Controleer of de containers draaien.
```bash
docker ps
```
Je zou nu containers moeten zien met namen zoals `nextcloud_app` en `nextcloud_db`.
## NextCloud installatie afronden
1. Open een browser en ga naar:
```text
http://server-ip:8080
```
of, indien je een domeinnaam en reverse proxy gebruikt:
```text
https://voorbeeld.nl
```
2. Volg de stappen van de NextCloud installatie:
- Stel een beheerdersgebruikersnaam en wachtwoord in
- Controleer dat de database-instellingen overeenkomen met de waarden uit `docker-compose.yml`
{{< notice "info" "Informatie" >}}
Na afronden keert NextCloud terug naar de login-pagina en kun je inloggen met het beheerdersaccount.
{{< /notice >}}
## Data en back-ups
Alle gegevens worden opgeslagen in:
- Database: `/opt/nextcloud/db`
- NextCloud bestanden en configuratie: `/opt/nextcloud/nextcloud`
{{< notice "warning" "Waarschuwing" >}}
Maak regelmatig back-ups van deze mappen, bij voorkeur met de containers eerst in een consistente staat (bijvoorbeeld tijdelijk stoppen)
{{< /notice >}}
Voer het volgende uit om een back-up te maken.
```bash
cd /opt/nextcloud
docker compose down
tar czf nextcloud-backup-$(date +%F).tar.gz db nextcloud
docker compose up -d
```

View File

@@ -0,0 +1,121 @@
---
title: "NGINX"
date: 2025-11-08
weight: 1
feedback: true
draft: false
---
{{< notice "info" "Informatie">}}
De instructies in dit artikel zijn uitsluitend voor de webserver NGINX, niet de software die hierop geïnstalleerd gaat worden.
{{< /notice >}}
## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren.
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je begint met installeren.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Gebruik het `apt` commando om het systeem te updaten.
```bash
sudo apt update && sudo apt upgrade
```
## NGINX
### Installatie
Installeer NGINX met het `apt` commando.
```bash
sudo apt install nginx
```
### Configuratie
{{< notice "info" "Informatie" >}}
Verander in de code **voorbeeld** naar jouw domeinnaam, zonder `https://` of `www` tenzij letterlijk aangegeven zoals **voorbeeld.nl**
{{< /notice >}}
1. Zorg dat NGINX altijd start met de server.
```bash
sudo systemctl enable --now nginx
```
2. Kopieer de standaard site configuratie.
```bash
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/voorbeeld.nl
```
3. Pas de inhoud met het programma `nano`.
```bash
sudo nano /etc/nginx/sites-available/voorbeeld.nl
```
```nginx
server {
server_name voorbeeld.nl www.voorbeeld.nl;
root /var/www/voorbeeld.nl/public/;
index index.html;
location / {
try_files $uri $uri/ =404;
}
listen 80;
listen [::]:80;
}
```
{{< notice "info" "Tip" >}}
Je kan plakken in de terminal met CTRL + SHIFT + V
{{< /notice >}}
4. Activeer de configuratie door een link te maken met het `ln` commando.
```bash
sudo ln -s /etc/nginx/sites-available/voorbeeld.nl \
/etc/nginx/sites-enabled/voorbeeld.nl
```
5. Controleer werking en herlaad NGINX.
```bash
sudo nginx -t
sudo systemctl reload nginx
```
## CertBot
### Installatie
Installeer CertBot met het `apt` commando.
```bash
sudo apt install certbot python3-certbot-nginx
```
### Configuratie
Genereer en implementeer een geldig certificaat met het volgende commando.
```bash
sudo certbot --nginx
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres en selectie welke sites certificering moeten krijgen.
{{< notice "info" "Tip" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```
sudo certbot --nginx --dry-run
```
{{< /notice >}}
## Website activeren
1. Maak een index.html bestand. En geef deze een vorm van vulling, zoals voorbeeld hieronder.
```bash
sudo mkdir -p /var/www/voorbeeld.nl/public
sudo nano /var/www/voorbeeld.nl/public/index.html
```
```html
<html>
<body>
<h1>Hallo wereld</h1>
</body>
</html>
```
2. Wijs de omgeving toe aan de `www-data` gebruiker en groep, stel schrijfrechten in.
```bash
sudo chown www-data:www-data /var/www/voorbeeld.nl -R
sudo chmod -R g+rwX /var/www/voorbeeld.nl
```
3. Open de browser en ga naar je website toe, je zou nu de inhoud van de index.html moeten kunnen zien.

View File

@@ -0,0 +1,204 @@
---
title: "NextCloud (NGINX)"
date: 2025-11-10
weight: 3
feedback: true
draft: false
---
NextCloud is een open source platform voor bestandssynchronisatie en samenwerking, vergelijkbaar met diensten als Dropbox of OneDrive. In deze handleiding installeren we NextCloud rechtstreeks op een Debian server met NGINX als webserver.
{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een Debian server met een basis NGINX installatie zoals beschreven in het bovenliggende artikel **NGINX**.
{{< /notice >}}
## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam, bijvoorbeeld `cloud.voorbeeld.nl`
- DNS ingesteld naar het IP-adres van de server
- Een werkende webserver (NGINX) die verzoeken voor jouw domein kan verwerken
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je NextCloud installeert.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Werk de pakketbron en geïnstalleerde pakketten bij.
```bash
sudo apt update && sudo apt upgrade
```
## PHP en database installeren
NextCloud heeft PHP en een database nodig. In dit voorbeeld gebruiken we MariaDB als database.
1. Installeer PHP, de benodigde modules en MariaDB.
```bash
sudo apt install php-fpm php-mysql php-xml php-gd php-curl php-mbstring php-zip php-intl php-bcmath php-gmp mariadb-server unzip
```
2. Beveilig de MariaDB installatie
```bash
sudo mysql_secure_installation
```
3. Maak een database en gebruiker voor NextCloud.
```bash
sudo mysql
```
Voer daarna in de MariaDB prompt de volgende opdrachten uit, pas wachtwoord en namen aan:
```sql
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'sterk-db-wachtwoord';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```
## NextCloud bestanden downloaden
We plaatsen NextCloud in `/var/www/nextcloud`.
1. Download en pak NextCloud uit.
```bash
cd /tmp
curl -LO https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
```
2. Maak de doelmap aan en kopieer de bestanden.
```bash
sudo mkdir -p /var/www/nextcloud
sudo rsync -av nextcloud/ /var/www/nextcloud/
```
3. Stel de juiste eigenaar en rechten in.
```bash
sudo chown -R www-data:www-data /var/www/nextcloud
sudo find /var/www/nextcloud -type d -exec chmod 750 {} \;
sudo find /var/www/nextcloud -type f -exec chmod 640 {} \;
```
## NGINX configureren voor NextCloud
We maken een aparte server-configuratie aan voor `cloud.voorbeeld.nl`.
1. Maak een nieuw configuratiebestand.
```bash
sudo nano /etc/nginx/sites-available/cloud.voorbeeld.nl
```
2. Plaats de volgende configuratie in het bestand:
```nginx
server {
server_name cloud.voorbeeld.nl;
root /var/www/nextcloud;
index index.php index.html;
client_max_body_size 512M;
fastcgi_buffers 64 4K;
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
location = /robots.txt { allow all; log_not_found off; access_log off; }
location = /.well-known/carddav { return 301 $scheme://$host/remote.php/dav; }
location = /.well-known/caldav { return 301 $scheme://$host/remote.php/dav; }
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location / {
rewrite ^ /index.php$request_uri;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ \.(?:css|js|woff2?|svg|gif|map)$ {
try_files $uri /index.php$request_uri;
access_log off;
expires 6M;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$request_uri;
access_log off;
expires 6M;
}
listen 80;
listen [::]:80;
}
```
{{< notice "info" "Informatie" >}}
Controleer of het pad naar de PHP-FPM socket klopt. Op sommige Debian-versies kan dit bijvoorbeeld `/run/php/php8.2-fpm.sock` zijn. Gebruik `ls /run/php/` om het juiste bestand te vinden en pas `fastcgi_pass` zo nodig aan.
{{< /notice >}}
3. Activeer de configuratie en controleer NGINX.
```bash
sudo ln -s /etc/nginx/sites-available/cloud.voorbeeld.nl /etc/nginx/sites-enabled/cloud.voorbeeld.nl
sudo nginx -t
sudo systemctl reload nginx
```
## CertBot voor HTTPS
Zorg voor een geldig TLS-certificaat met CertBot.
1. Installeer CertBot met de NGINX plugin.
```bash
sudo apt install certbot python3-certbot-nginx
```
2. Vraag een certificaat aan voor jouw domein.
```bash
sudo certbot --nginx
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres en de keuze om HTTP automatisch naar HTTPS om te leiden.
{{< notice "info" "Informatie" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```bash
sudo certbot --nginx --dry-run
```
{{< /notice >}}
## NextCloud installatie afronden
1. Open een browser en ga naar:
```text
http://cloud.voorbeeld.nl
```
of, na het instellen van HTTPS:
```text
https://cloud.voorbeeld.nl
```
2. Volg de stappen van de NextCloud installatie:
- Stel een beheerdersgebruikersnaam en wachtwoord in
- Vul de databasegegevens in:
- Databasegebruiker: `nc_user`
- Databasewachtwoord: `sterk-db-wachtwoord`
- Database: `nextcloud`
- Host: `localhost`
{{< notice "info" "Informatie" >}}
Na afronden keert NextCloud terug naar de login-pagina en kun je inloggen met het beheerdersaccount.
{{< /notice >}}

View File

@@ -0,0 +1,9 @@
---
title: "Bouwen"
date: 2025-11-08
icon: "fas fa-hammer"
description: "Alles over de diverse bouwmethoden van mantelzorgwoningen."
type : "docs"
weight: 4
---

View File

@@ -0,0 +1,7 @@
---
title: "Got Any Questions"
description: "this is meta description"
layout: "contact"
draft: false
ignoreSearch: true
---

View File

@@ -0,0 +1,7 @@
---
title: "Vous avez des questions"
description: "this is meta description"
layout: "contact"
draft: false
ignoreSearch: true
---

View File

@@ -0,0 +1,7 @@
---
title: "Heeft u nog vragen?"
description: "Neem vrijblijvend contact op voor mantelzorgwoning advies."
layout: "contact"
draft: false
ignoreSearch: true
---

36
content/faq/index.en.md Normal file
View File

@@ -0,0 +1,36 @@
---
title: "Frequently Asked Questions"
description: "this is meta description"
draft: false
layout: "faq"
ignoreSearch: true
build:
render: never
list: never
---
{{< faq "Am I allowed to copy the data?" >}}
For personal use you may copy this knowledge base to your own systems. For commercial use you may consult it by visiting this website.
Use the following command on Linux to download the entire site as a local copy:
`wget -np -r https://kennisbank.start-it.nl`
{{</ faq >}}
{{< faq "What rights does StartIT have over the software?" >}}
None at all. All mentioned software is owned by their respective creators, according to their licenses.
{{</ faq >}}
{{< faq "Why is the knowledge base publicly available?" >}}
Our customers can choose to sign a service agreement, but this is not required. For those who prefer to handle maintenance themselves, or even want to perform a full deployment on their own, this information is available publicly.
Another reason is that we are convinced of the value for companies to keep their IT under their own control, something that is not always possible with various SaaS solutions, such as Office 365. The information on this site enables those companies to try a first step themselves without having to make a large upfront investment.
{{</ faq >}}
{{< faq "What does StartIT actually do?" >}}
We build websites, cloud environments, administrative systems and custom solutions for businesses. By using only open source software we can be transparent about how the systems work and what they do.
Many of our installations include customizations, which we hand over to the client as source code upon delivery.
Want to know more? See our [Homepage](https://start-it.nl?source=kennisbank-en)
{{</ faq >}}

36
content/faq/index.fr.md Normal file
View File

@@ -0,0 +1,36 @@
---
title: "Foire aux questions"
description: "this is meta description"
draft: false
layout: "faq"
ignoreSearch: true
build:
render: never
list: never
---
{{< faq "Puis-je copier les données?" >}}
Pour un usage personnel, vous pouvez copier cette base de connaissances vers vos propres systèmes. Pour un usage commercial, vous pouvez la consulter en visitant ce site web.
Utilisez la commande suivante sous Linux pour télécharger lensemble du site en copie locale :
`wget -np -r https://kennisbank.start-it.nl`
{{</ faq >}}
{{< faq "Quels droits StartIT possède-t-elle sur les logiciels?" >}}
Aucun. Tous les logiciels mentionnés appartiennent à leurs créateurs respectifs, conformément à leurs licences.
{{</ faq >}}
{{< faq "Pourquoi la base de connaissances est-elle publique?" >}}
Nos clients peuvent choisir de conclure un contrat de service, mais ce nest pas obligatoire. Pour ceux qui préfèrent assurer eux-mêmes la maintenance, ou qui souhaitent même effectuer le déploiement complet par leurs propres moyens, ces informations sont disponibles publiquement.
Nous sommes également convaincus quil est précieux pour les entreprises de garder leur informatique sous leur propre contrôle, ce qui nest pas toujours possible avec certaines solutions SaaS, comme Office 365. Les informations disponibles sur ce site permettent à ces entreprises de faire un premier essai par elles-mêmes, sans devoir réaliser immédiatement un investissement important.
{{</ faq >}}
{{< faq "Que fait StartIT concrètement?" >}}
Nous créons des sites web, des environnements cloud, des systèmes de gestion administrative et des solutions sur mesure pour les entreprises. En utilisant uniquement des logiciels open source, nous pouvons être transparents sur le fonctionnement et le rôle de nos systèmes.
Bon nombre de nos installations contiennent des personnalisations que nous remettons au client sous forme de code source lors de la livraison.
Vous voulez en savoir plus ? Consultez notre [page daccueil](https://start-it.nl?source=kennisbank-fr)
{{</ faq >}}

30
content/faq/index.nl.md Normal file
View File

@@ -0,0 +1,30 @@
---
title: "Veelgestelde vragen"
description: "De meest gestelde vragen omtrent mantelzorgwoningen."
draft: false
layout: "faq"
ignoreSearch: true
build:
render: never
list: never
---
{{< faq "Wat is een mantelzorgwoning?" >}}
Het is een speciaal aangepaste of maatwerk woning voor mensen die een vorm van zorg krijgen van hun naasten. Dit kan gaan over audio-/visuele aanpassingen, alles gelijkvloers en drempelvrij maken en plaatsing van (medische) apparatuur.
<a class="btn btn-outline-primary" href="overzicht/">Meer informatie</a>
{{</ faq >}}
{{< faq "Kan ik aanvullend advies krijgen?" >}}
Het doel van deze website is om een groot publiek zo goed mogelijk te informeren over mantelzorgwoningen. Als u aanvullend advies wilt verkrijgen kan dit vrijblijvend met onze commerciële partner {{< partner >}}.
Deze partij kan u aanvullend informeren, begeleiden in het traject en uiteraard ook de mantelzorgwoning plaatsen.
{{< partner-btn >}}
{{</ faq >}}
{{< faq "Wie is de eigenaar van deze website?" >}}
Deze website is gemaakt door en is in beheer van [StartIT](https://start-it.nl?source=mantelzorgwoning.info), een IT dienstverlener in Barneveld. Deze website is een passieproject gebaseerd op werkervaring in de mantelzorg sector, waar wij nog altijd een warm hart voor hebben.
U kan vrijuit alle informatie op deze website bekijken, downloaden en gebruiken voor eigen doeleinden waar u geschikt ziet. Voor bedrijven zie [deze licentie (CC BY-NC 4.0)](https://creativecommons.org/licenses/by-nc/4.0/deed.nl) voor de limieten van gebruik.
{{</ faq >}}

15
content/log/index.en.md Normal file
View File

@@ -0,0 +1,15 @@
---
title: "Changelog"
description: "Important changes in our way of working are documented here, such as switching to a different package manager, database system, etc.
{{< notice \"info\" \"Information\">}}Articles that change significantly in content or are removed will be moved to the [legacy]() category.{{< /notice >}}"
layout: "changelog"
draft: false
---
### Oct 9, 2025
{{< changelog "added" >}}
- This site went live.
{{</ changelog >}}
<hr>

79
content/log/index.fr.md Normal file
View File

@@ -0,0 +1,79 @@
---
title: "Changelog"
description: "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt dolore magna aliquyam erat, sed diam voluptua. At vero eos et ustoLorem ipsum dolor sit amet, consetetur."
layout: "changelog"
draft: false
---
### February Updates
**Feb 6, 2019**
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt dolore magna aliquyam erat, sed diam voluptua. At vero eos et ustoLorem ipsum dolor sit amet, consetetur."
{{< changelog "changed" >}}
* Better support for using applying additional filters to posts_tax_query for categories for custom WordPress syncs
* Reporting fine-tuning for speed improvements (up to 60% improvement in latency)
* Replaced login / registration pre-app screens with a cleaner design
{{</ changelog >}}
{{< changelog "removed" >}}
* Removed an issue with the sync autolinker only interlinking selectively.
* Removed up an issue with prematurely logging out users
{{</ changelog >}}
<hr>
### March Updates
**Mar 6, 2019**
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor <br> invidunt dolore magna aliquyam erat, sed diam voluptua. At vero eos et ustoLorem ipsum dolor sit amet, consetetur."
{{< changelog "added" >}}
* Some scheduled changelogs, tweets, and slack messages queued up this weekend and were not published on time. We fixed the issue and all delayed publications should be out.
* We now prioritize keywords over title and body so customers can more effectively influence search results
* Support form in the Assistant is now protected with reCaptcha to reduce spam reinitializeOnUrlChange added to the JavaScript API to improve support for pages with turbolinks
{{</ changelog >}}
{{< changelog "fixed" >}}
* Fixed an issue with the sync autolinker only interlinking selectively.
* Fixed up an issue with prematurely logging out users
{{</ changelog >}}
<hr>
### Changelog label
{{< changelog "Added" >}}
This is the start of dummy description text. You can change it whenever you want. It is used to test the responsiveness of the site. It is not used in the actual site.
{{</ changelog >}}
{{< changelog "Changed" >}}
This is the start of dummy description text. You can change it whenever you want. It is used to test the responsiveness of the site. It is not used in the actual site.
{{</ changelog >}}
{{< changelog "Depricated" >}}
This is the start of dummy description text. You can change it whenever you want. It is used to test the responsiveness of the site. It is not used in the actual site.
{{</ changelog >}}
{{< changelog "Removed" >}}
This is the start of dummy description text. You can change it whenever you want. It is used to test the responsiveness of the site. It is not used in the actual site.
{{</ changelog >}}
{{< changelog "Fixed" >}}
This is the start of dummy description text. You can change it whenever you want. It is used to test the responsiveness of the site. It is not used in the actual site.
{{</ changelog >}}
{{< changelog "Security" >}}
This is the start of dummy description text. You can change it whenever you want. It is used to test the responsiveness of the site. It is not used in the actual site.
{{</ changelog >}}
{{< changelog "Unreleased" >}}
This is the start of dummy description text. You can change it whenever you want. It is used to test the responsiveness of the site. It is not used in the actual site.
{{</ changelog >}}

15
content/log/index.nl.md Normal file
View File

@@ -0,0 +1,15 @@
---
title: "Logboek"
description: "Belangrijke veranderingen in onze werkwijze staan hier beschreven, zoals het gebruik maken van een andere pakketbeheerder, database systeem et cetera.
{{< notice \"info\" \"Informatie\">}}Artikelen die inhoudelijk drastisch wijzigen of verwijderd worden, komen in de [legacy]() categorie.{{< /notice >}}"
layout: "changelog"
draft: false
---
### 9 okt, 2025
{{< changelog "added" >}}
- Deze site ging live.
{{</ changelog >}}
<hr>

View File

@@ -0,0 +1,9 @@
---
title: "Voor mantelzorgers"
date: 2025-11-08
icon: "fas fa-hospital-user"
description: "Aanvullend advies voor u als de mantelzorger van de bewoner."
type : "docs"
weight: 6
---

View File

@@ -0,0 +1,122 @@
---
title: "Apache"
date: 2025-11-08
weight: 3
feedback: true
draft: false
---
{{< notice "info" "Informatie">}}
De instructies in dit artikel zijn uitsluitend voor de webserver, niet de site generator.
{{< /notice >}}
## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren.
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je begint met installeren.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Gebruik het `apt` commando om het systeem te updaten.
```bash
sudo apt update && sudo apt upgrade
```
## Apache
### Installatie
Installeer Apache met het `apt` commando.
```bash
sudo apt install apache2
```
### Configuratie
{{< notice "info" "Informatie" >}}
Verander in de code **voorbeeld** naar jouw domeinnaam, zonder `https://` of `www` tenzij letterlijk aangegeven zoals **voorbeeld.nl**
{{< /notice >}}
1. Zorg dat Apache altijd start met de server.
```bash
sudo systemctl enable --now apache2
```
2. Maak een nieuwe site configuratie op basis van de standaard instellingen.
```bash
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/voorbeeld.nl.conf
```
3. Pas de inhoud met het programma `nano`.
```bash
sudo nano /etc/apache2/sites-available/voorbeeld.nl.conf
```
```apache
<VirtualHost *:80>
ServerName voorbeeld.nl
ServerAlias www.voorbeeld.nl
DocumentRoot /var/www/voorbeeld.nl/public
<Directory /var/www/voorbeeld.nl/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/voorbeeld.nl-error.log
CustomLog ${APACHE_LOG_DIR}/voorbeeld.nl-access.log combined
</VirtualHost>
```
{{< notice "info" "Tip" >}}
Je kan plakken in de terminal met CTRL + SHIFT + V
{{< /notice >}}
4. Activeer de configuratie met het `a2ensite` commando.
```bash
sudo a2ensite voorbeeld.nl.conf
```
5. Controleer werking en herlaad Apache.
```bash
sudo apache2ctl configtest
sudo systemctl reload apache2
```
## CertBot
### Installatie
Installeer CertBot met het `apt` commando.
```bash
sudo apt install certbot python3-certbot-apache
```
### Configuratie
Genereer en implementeer een geldig certificaat met het volgende commando.
```bash
sudo certbot --apache
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres, selectie welke sites certificering moeten krijgen en of je HTTP automatisch naar HTTPS wilt laten doorsturen.
{{< notice "info" "Tip" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```bash
sudo certbot --apache --dry-run
```
{{< /notice >}}
## Website activeren
1. Maak een index.html bestand. En geef deze een vorm van vulling, zoals voorbeeld hieronder.
```bash
sudo mkdir -p /var/www/voorbeeld.nl/public
sudo nano /var/www/voorbeeld.nl/public/index.html
```
```html
<html>
<body>
<h1>Hallo wereld</h1>
</body>
</html>
```
2. Wijs de omgeving toe aan de `www-data` gebruiker en groep, stel schrijfrechten in.
```bash
sudo chown www-data:www-data /var/www/voorbeeld.nl -R
sudo chmod -R g+rwX /var/www/voorbeeld.nl
```
3. Open de browser en ga naar je website toe, je zou nu de inhoud van de index.html moeten kunnen zien via HTTPS, met een geldig letsencrypt certificaat.

View File

@@ -0,0 +1,178 @@
---
title: "NextCloud (Apache)"
date: 2025-11-10
weight: 3
feedback: true
draft: false
---
NextCloud is een open source platform voor bestandssynchronisatie en samenwerking, vergelijkbaar met diensten als Dropbox of OneDrive. In deze handleiding installeren we NextCloud _zonder_ Docker, rechtstreeks op een Debian server met Apache als webserver.
{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een Debian server met een basis Apache installatie zoals beschreven in het bovenliggende artikel **Apache**.
{{< /notice >}}
## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Een werkende webserver (Apache) die verzoeken voor jouw domein kan verwerken
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je NextCloud installeert.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Werk de pakketbron en geïnstalleerde pakketten bij.
```bash
sudo apt update && sudo apt upgrade
```
## PHP en database installeren
NextCloud heeft PHP en een database nodig. In dit voorbeeld gebruiken we MariaDB als database.
1. Installeer Apache, PHP, de benodigde modules en MariaDB.
```bash
sudo apt install apache2 php libapache2-mod-php php-mysql php-xml php-gd php-curl php-mbstring php-zip php-intl php-bcmath php-gmp mariadb-server unzip
```
2. Beveilig de MariaDB installatie
```bash
sudo mysql_secure_installation
```
3. Maak een database en gebruiker voor NextCloud.
```bash
sudo mysql
```
Voer daarna in de MariaDB prompt de volgende opdrachten uit, pas wachtwoord en namen aan:
```sql
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'sterk-db-wachtwoord';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```
## NextCloud bestanden downloaden
We plaatsen NextCloud in `/var/www/nextcloud`.
1. Download en pak NextCloud uit.
```bash
cd /tmp
curl -LO https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
```
2. Maak de doelmap aan en kopieer de bestanden.
```bash
sudo mkdir -p /var/www/nextcloud
sudo rsync -av nextcloud/ /var/www/nextcloud/
```
3. Stel de juiste eigenaar en rechten in.
```bash
sudo chown -R www-data:www-data /var/www/nextcloud
sudo find /var/www/nextcloud -type d -exec chmod 750 {} \;
sudo find /var/www/nextcloud -type f -exec chmod 640 {} \;
```
## Apache configureren voor NextCloud
We maken een aparte site-configuratie aan voor `cloud.voorbeeld.nl`.
1. Maak een nieuw configuratiebestand.
```bash
sudo nano /etc/apache2/sites-available/cloud.voorbeeld.nl.conf
```
2. Plaats de volgende configuratie in het bestand:
```apache
<VirtualHost *:80>
ServerName cloud.voorbeeld.nl
ServerAlias www.cloud.voorbeeld.nl
DocumentRoot /var/www/nextcloud
<Directory /var/www/nextcloud>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
# Verhoog maximale uploadgrootte
LimitRequestBody 536870912
# Aanbevolen security headers
Header always set Referrer-Policy "no-referrer"
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-XSS-Protection "1; mode=block"
ErrorLog ${APACHE_LOG_DIR}/cloud.voorbeeld.nl-error.log
CustomLog ${APACHE_LOG_DIR}/cloud.voorbeeld.nl-access.log combined
</VirtualHost>
```
3. Zorg dat de benodigde modules voor NextCloud actief zijn.
```bash
sudo a2enmod rewrite headers env dir mime
sudo systemctl reload apache2
```
4. Activeer de site en controleer Apache.
```bash
sudo a2ensite cloud.voorbeeld.nl.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
```
## CertBot voor HTTPS
Zorg voor een geldig TLS-certificaat met CertBot.
1. Installeer CertBot met de Apache plugin.
```bash
sudo apt install certbot python3-certbot-apache
```
2. Vraag een certificaat aan voor jouw domein.
```bash
sudo certbot --apache
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres en de keuze om HTTP automatisch naar HTTPS om te leiden.
{{< notice "info" "Informatie" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```bash
sudo certbot --apache --dry-run
```
{{< /notice >}}
## NextCloud installatie afronden
1. Open een browser en ga naar:
```text
http://cloud.voorbeeld.nl
```
of, na het instellen van HTTPS:
```text
https://cloud.voorbeeld.nl
```
2. Volg de stappen van de NextCloud installatie:
- Stel een beheerdersgebruikersnaam en wachtwoord in
- Vul de databasegegevens in:
- Databasegebruiker: `nc_user`
- Databasewachtwoord: `sterk-db-wachtwoord`
- Database: `nextcloud`
- Host: `localhost`
{{< notice "info" "Informatie" >}}
Na afronden keert NextCloud terug naar de login-pagina en kun je inloggen met het beheerdersaccount.
{{< /notice >}}

View File

@@ -0,0 +1,192 @@
---
title: "WordPress"
date: 2025-11-09
weight: 3
feedback: true
draft: false
---
WordPress is een veelgebruikte applicatie voor het bouwen van websites en blogs. In deze handleiding installeren we WordPress op een Debian server, uitgaand van het feit dat er al een werkende webserver aanwezig is met Apache.
{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een Debian server met een basis Apache installatie zoals beschreven in het bovenliggende artikel **Apache**.
{{< /notice >}}
## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Een werkende webserver (Apache) die verzoeken voor jouw domein verwerkt
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je begint met installeren.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Gebruik het `apt` commando om het systeem te updaten.
```bash
sudo apt update && sudo apt upgrade
```
## PHP en database installeren
WordPress heeft PHP en een database nodig. In dit voorbeeld gebruiken we MariaDB als database.
1. Installeer PHP en de benodigde modules.
```bash
sudo apt install php libapache2-mod-php php-mysql php-xml php-gd php-curl php-mbstring php-zip
```
2. Installeer MariaDB server.
```bash
sudo apt install mariadb-server
```
3. Beveilig de MariaDB installatie (optioneel, maar aanbevolen).
```bash
sudo mysql_secure_installation
```
4. Maak een database en gebruiker voor WordPress.
```bash
sudo mysql
```
Voer daarna in de MariaDB prompt de volgende opdrachten uit (pas wachtwoord en namen aan):
```sql
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'sterk-wachtwoord';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```
## WordPress bestanden voorbereiden
We plaatsen WordPress in `/var/www/voorbeeld.nl/public`, zodat dit overeenkomt met de standaard webroot uit andere artikelen.
1. Download en pak WordPress uit.
```bash
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
```
2. Maak de doelmap aan en kopieer de bestanden.
```bash
sudo mkdir -p /var/www/voorbeeld.nl/public
sudo cp -r /tmp/wordpress/* /var/www/voorbeeld.nl/public/
```
3. Maak een kopie van het configuratiebestand.
```bash
cd /var/www/voorbeeld.nl/public
sudo cp wp-config-sample.php wp-config.php
```
4. Pas de database-instellingen aan in `wp-config.php`.
```bash
sudo nano /var/www/voorbeeld.nl/public/wp-config.php
```
Vul bij de databasegegevens:
```php
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wp_user' );
define( 'DB_PASSWORD', 'sterk-wachtwoord' );
define( 'DB_HOST', 'localhost' );
```
{{< notice "info" "Tip" >}}
Genereer de unieke beveiligingssleutels via de officiële WordPress salt generator en plak deze in `wp-config.php` in plaats van de standaard waardes.
{{< /notice >}}
5. Stel de juiste eigenaar en rechten in.
```bash
sudo chown -R www-data:www-data /var/www/voorbeeld.nl
sudo find /var/www/voorbeeld.nl -type d -exec chmod 750 {} \;
sudo find /var/www/voorbeeld.nl -type f -exec chmod 640 {} \;
```
### Apache configuratie
{{< notice "info" "Informatie" >}}
Verander in de code **voorbeeld** naar jouw domeinnaam, zonder `https://` of `www` tenzij letterlijk aangegeven zoals **voorbeeld.nl**.
{{< /notice >}}
1. Open de bestaande site-configuratie voor jouw domein.
```bash
sudo nano /etc/apache2/sites-available/voorbeeld.nl.conf
```
2. Zorg ervoor dat de configuratie er ongeveer als volgt uitziet:
```apache
<VirtualHost *:80>
ServerName voorbeeld.nl
ServerAlias www.voorbeeld.nl
DocumentRoot /var/www/voorbeeld.nl/public
<Directory /var/www/voorbeeld.nl/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/voorbeeld.nl-error.log
CustomLog ${APACHE_LOG_DIR}/voorbeeld.nl-access.log combined
</VirtualHost>
```
3. Zorg dat de benodigde modules voor WordPress actief zijn.
```bash
sudo a2enmod rewrite
sudo systemctl reload apache2
```
4. Controleer de Apache configuratie en herlaad de service.
```bash
sudo apache2ctl configtest
sudo systemctl reload apache2
```
### CertBot voor Apache
Installeer CertBot met de Apache plugin (als dit nog niet eerder gedaan is).
```bash
sudo apt install certbot python3-certbot-apache
```
Vraag een certificaat aan voor jouw domein.
```bash
sudo certbot --apache
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres, de selectie welke sites certificering moeten krijgen en of je HTTP automatisch naar HTTPS wilt laten doorsturen.
{{< notice "info" "Tip" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```bash
sudo certbot --apache --dry-run
```
{{< /notice >}}
## WordPress installatie afronden
1. Open de browser en ga naar jouw domein, bijvoorbeeld:
- `http://voorbeeld.nl` of
- `https://voorbeeld.nl` (na het instellen van letsencrypt)
2. Volg de stappen van de WordPress installatie:
- Kies de taal
- Vul de sitetitel in
- Maak een beheerdersaccount aan
- Bevestig en log in op het WordPress dashboard
Je WordPress site is nu actief en bereikbaar via het door jou ingestelde domein als je Apache als webserver gebruikt.

View File

@@ -0,0 +1,92 @@
---
title: "Docker"
date: 2025-11-10
weight: 2
feedback: true
draft: false
---
Docker is een platform om applicaties geïsoleerd te draaien in containers. In deze handleiding installeren we Docker op een Debian server via de command line en controleren we of de installatie correct werkt.
{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een schone Debian installatie met internettoegang. De stappen zijn getest op recente Debian-versies (zoals Debian 12).
{{< /notice >}}
## Benodigdheden
- Een server met een ondersteunde Debian Linux installatie
- Toegang tot de command line (bijvoorbeeld via SSH)
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren
- Werkende internetverbinding
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je Docker installeert.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Werk de pakketbron en geïnstalleerde pakketten bij.
```bash
sudo apt update && sudo apt upgrade
```
## Docker repository toevoegen
We installeren Docker vanaf de officiële Docker repository in plaats van de standaard Debian-pakketten.
1. Installeer vereiste hulppakketten.
```bash
sudo apt install ca-certificates curl gnupg
```
2. Maak de map aan voor de Docker GPG-sleutel.
```bash
sudo install -m 0755 -d /etc/apt/keyrings
```
3. Download en installeer de Docker GPG-sleutel.
```bash
curl -fsSL https://download.docker.com/linux/debian/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
```
4. Stel de juiste rechten in op de sleutel.
```bash
sudo chmod a+r /etc/apt/keyrings/docker.gpg
```
5. Voeg de Docker repository toe.
```bash
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```
6. Werk de pakketlijst bij.
```bash
sudo apt update
```
## Docker installeren
Installeer nu Docker Engine en de bijbehorende componenten.
```bash
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
Controleer of de Docker service actief is.
```bash
sudo systemctl status docker
```
Als Docker niet actief is, start de service en zorg dat deze automatisch start na een reboot.
```bash
sudo systemctl enable --now docker
```
## Docker installatie testen
Voer de officiële testcontainer uit om te controleren of Docker goed werkt.
```bash
sudo docker run hello-world
```
Je zou een bericht moeten zien dat bevestigt dat Docker correct is geïnstalleerd en een testcontainer heeft uitgevoerd.

View File

@@ -0,0 +1,154 @@
---
title: "NextCloud (Docker)"
date: 2025-11-10
weight: 3
feedback: true
draft: false
---
NextCloud is een open source platform voor bestandssynchronisatie en samenwerking, vergelijkbaar met diensten als Dropbox of OneDrive. In deze handleiding installeren we NextCloud op een Debian server met behulp van Docker en Docker Compose.
{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een Debian server waarop Docker en de Docker Compose plugin al zijn geïnstalleerd, zoals beschreven in het bovenliggende artikel **Docker**.
{{< /notice >}}
## Benodigdheden
- Een server met een ondersteunde Debian Linux installatie
- Docker en Docker Compose plugin geïnstalleerd
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je begint.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Werk de pakketbron en geïnstalleerde pakketten bij.
```bash
sudo apt update && sudo apt upgrade
```
3. Controleer of Docker en Docker Compose beschikbaar zijn.
```bash
docker --version
docker compose version
```
## Mapstructuur aanmaken
We plaatsen de Docker Compose configuratie en data in `/opt/nextcloud`.
1. Maak de basisstructuur aan.
```bash
sudo mkdir -p /opt/nextcloud/{db,nextcloud}
```
2. Geef de huidige gebruiker toegang (optioneel, handig voor beheer).
```bash
sudo chown -R $USER:$USER /opt/nextcloud
```
3. Ga naar de NextCloud map.
```bash
cd /opt/nextcloud
```
## Docker Compose bestand maken
We gebruiken een `docker-compose.yml` met NextCloud en MariaDB als database.
1. Maak het bestand `docker-compose.yml`.
```bash
nano docker-compose.yml
```
2. Plaats de volgende configuratie in het bestand:
```yaml
version: "3.9"
services:
db:
image: mariadb:11
container_name: nextcloud_db
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
environment:
- MYSQL_ROOT_PASSWORD=sterk-root-wachtwoord
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=sterk-db-wachtwoord
volumes:
- ./db:/var/lib/mysql
app:
image: nextcloud:stable
container_name: nextcloud_app
restart: unless-stopped
ports:
- "8080:80"
depends_on:
- db
environment:
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=sterk-db-wachtwoord
- MYSQL_HOST=db
volumes:
- ./nextcloud:/var/www/html
```
{{< notice "info" "Informatie" >}}
Vervang `sterk-root-wachtwoord` en `sterk-db-wachtwoord` door sterke, unieke wachtwoorden. Bewaar deze veilig.
{{< /notice >}}
## NextCloud containers starten
1. Download de benodigde images en start de containers in de achtergrond.
```bash
docker compose up -d
```
2. Controleer of de containers draaien.
```bash
docker ps
```
Je zou nu containers moeten zien met namen zoals `nextcloud_app` en `nextcloud_db`.
## NextCloud installatie afronden
1. Open een browser en ga naar:
```text
http://server-ip:8080
```
of, indien je een domeinnaam en reverse proxy gebruikt:
```text
https://voorbeeld.nl
```
2. Volg de stappen van de NextCloud installatie:
- Stel een beheerdersgebruikersnaam en wachtwoord in
- Controleer dat de database-instellingen overeenkomen met de waarden uit `docker-compose.yml`
{{< notice "info" "Informatie" >}}
Na afronden keert NextCloud terug naar de login-pagina en kun je inloggen met het beheerdersaccount.
{{< /notice >}}
## Data en back-ups
Alle gegevens worden opgeslagen in:
- Database: `/opt/nextcloud/db`
- NextCloud bestanden en configuratie: `/opt/nextcloud/nextcloud`
{{< notice "warning" "Waarschuwing" >}}
Maak regelmatig back-ups van deze mappen, bij voorkeur met de containers eerst in een consistente staat (bijvoorbeeld tijdelijk stoppen)
{{< /notice >}}
Voer het volgende uit om een back-up te maken.
```bash
cd /opt/nextcloud
docker compose down
tar czf nextcloud-backup-$(date +%F).tar.gz db nextcloud
docker compose up -d
```

View File

@@ -0,0 +1,121 @@
---
title: "NGINX"
date: 2025-11-08
weight: 1
feedback: true
draft: false
---
{{< notice "info" "Informatie">}}
De instructies in dit artikel zijn uitsluitend voor de webserver NGINX, niet de software die hierop geïnstalleerd gaat worden.
{{< /notice >}}
## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren.
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je begint met installeren.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Gebruik het `apt` commando om het systeem te updaten.
```bash
sudo apt update && sudo apt upgrade
```
## NGINX
### Installatie
Installeer NGINX met het `apt` commando.
```bash
sudo apt install nginx
```
### Configuratie
{{< notice "info" "Informatie" >}}
Verander in de code **voorbeeld** naar jouw domeinnaam, zonder `https://` of `www` tenzij letterlijk aangegeven zoals **voorbeeld.nl**
{{< /notice >}}
1. Zorg dat NGINX altijd start met de server.
```bash
sudo systemctl enable --now nginx
```
2. Kopieer de standaard site configuratie.
```bash
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/voorbeeld.nl
```
3. Pas de inhoud met het programma `nano`.
```bash
sudo nano /etc/nginx/sites-available/voorbeeld.nl
```
```nginx
server {
server_name voorbeeld.nl www.voorbeeld.nl;
root /var/www/voorbeeld.nl/public/;
index index.html;
location / {
try_files $uri $uri/ =404;
}
listen 80;
listen [::]:80;
}
```
{{< notice "info" "Tip" >}}
Je kan plakken in de terminal met CTRL + SHIFT + V
{{< /notice >}}
4. Activeer de configuratie door een link te maken met het `ln` commando.
```bash
sudo ln -s /etc/nginx/sites-available/voorbeeld.nl \
/etc/nginx/sites-enabled/voorbeeld.nl
```
5. Controleer werking en herlaad NGINX.
```bash
sudo nginx -t
sudo systemctl reload nginx
```
## CertBot
### Installatie
Installeer CertBot met het `apt` commando.
```bash
sudo apt install certbot python3-certbot-nginx
```
### Configuratie
Genereer en implementeer een geldig certificaat met het volgende commando.
```bash
sudo certbot --nginx
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres en selectie welke sites certificering moeten krijgen.
{{< notice "info" "Tip" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```
sudo certbot --nginx --dry-run
```
{{< /notice >}}
## Website activeren
1. Maak een index.html bestand. En geef deze een vorm van vulling, zoals voorbeeld hieronder.
```bash
sudo mkdir -p /var/www/voorbeeld.nl/public
sudo nano /var/www/voorbeeld.nl/public/index.html
```
```html
<html>
<body>
<h1>Hallo wereld</h1>
</body>
</html>
```
2. Wijs de omgeving toe aan de `www-data` gebruiker en groep, stel schrijfrechten in.
```bash
sudo chown www-data:www-data /var/www/voorbeeld.nl -R
sudo chmod -R g+rwX /var/www/voorbeeld.nl
```
3. Open de browser en ga naar je website toe, je zou nu de inhoud van de index.html moeten kunnen zien.

View File

@@ -0,0 +1,204 @@
---
title: "NextCloud (NGINX)"
date: 2025-11-10
weight: 3
feedback: true
draft: false
---
NextCloud is een open source platform voor bestandssynchronisatie en samenwerking, vergelijkbaar met diensten als Dropbox of OneDrive. In deze handleiding installeren we NextCloud rechtstreeks op een Debian server met NGINX als webserver.
{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een Debian server met een basis NGINX installatie zoals beschreven in het bovenliggende artikel **NGINX**.
{{< /notice >}}
## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam, bijvoorbeeld `cloud.voorbeeld.nl`
- DNS ingesteld naar het IP-adres van de server
- Een werkende webserver (NGINX) die verzoeken voor jouw domein kan verwerken
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je NextCloud installeert.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Werk de pakketbron en geïnstalleerde pakketten bij.
```bash
sudo apt update && sudo apt upgrade
```
## PHP en database installeren
NextCloud heeft PHP en een database nodig. In dit voorbeeld gebruiken we MariaDB als database.
1. Installeer PHP, de benodigde modules en MariaDB.
```bash
sudo apt install php-fpm php-mysql php-xml php-gd php-curl php-mbstring php-zip php-intl php-bcmath php-gmp mariadb-server unzip
```
2. Beveilig de MariaDB installatie
```bash
sudo mysql_secure_installation
```
3. Maak een database en gebruiker voor NextCloud.
```bash
sudo mysql
```
Voer daarna in de MariaDB prompt de volgende opdrachten uit, pas wachtwoord en namen aan:
```sql
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'sterk-db-wachtwoord';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```
## NextCloud bestanden downloaden
We plaatsen NextCloud in `/var/www/nextcloud`.
1. Download en pak NextCloud uit.
```bash
cd /tmp
curl -LO https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
```
2. Maak de doelmap aan en kopieer de bestanden.
```bash
sudo mkdir -p /var/www/nextcloud
sudo rsync -av nextcloud/ /var/www/nextcloud/
```
3. Stel de juiste eigenaar en rechten in.
```bash
sudo chown -R www-data:www-data /var/www/nextcloud
sudo find /var/www/nextcloud -type d -exec chmod 750 {} \;
sudo find /var/www/nextcloud -type f -exec chmod 640 {} \;
```
## NGINX configureren voor NextCloud
We maken een aparte server-configuratie aan voor `cloud.voorbeeld.nl`.
1. Maak een nieuw configuratiebestand.
```bash
sudo nano /etc/nginx/sites-available/cloud.voorbeeld.nl
```
2. Plaats de volgende configuratie in het bestand:
```nginx
server {
server_name cloud.voorbeeld.nl;
root /var/www/nextcloud;
index index.php index.html;
client_max_body_size 512M;
fastcgi_buffers 64 4K;
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
location = /robots.txt { allow all; log_not_found off; access_log off; }
location = /.well-known/carddav { return 301 $scheme://$host/remote.php/dav; }
location = /.well-known/caldav { return 301 $scheme://$host/remote.php/dav; }
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location / {
rewrite ^ /index.php$request_uri;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ \.(?:css|js|woff2?|svg|gif|map)$ {
try_files $uri /index.php$request_uri;
access_log off;
expires 6M;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$request_uri;
access_log off;
expires 6M;
}
listen 80;
listen [::]:80;
}
```
{{< notice "info" "Informatie" >}}
Controleer of het pad naar de PHP-FPM socket klopt. Op sommige Debian-versies kan dit bijvoorbeeld `/run/php/php8.2-fpm.sock` zijn. Gebruik `ls /run/php/` om het juiste bestand te vinden en pas `fastcgi_pass` zo nodig aan.
{{< /notice >}}
3. Activeer de configuratie en controleer NGINX.
```bash
sudo ln -s /etc/nginx/sites-available/cloud.voorbeeld.nl /etc/nginx/sites-enabled/cloud.voorbeeld.nl
sudo nginx -t
sudo systemctl reload nginx
```
## CertBot voor HTTPS
Zorg voor een geldig TLS-certificaat met CertBot.
1. Installeer CertBot met de NGINX plugin.
```bash
sudo apt install certbot python3-certbot-nginx
```
2. Vraag een certificaat aan voor jouw domein.
```bash
sudo certbot --nginx
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres en de keuze om HTTP automatisch naar HTTPS om te leiden.
{{< notice "info" "Informatie" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```bash
sudo certbot --nginx --dry-run
```
{{< /notice >}}
## NextCloud installatie afronden
1. Open een browser en ga naar:
```text
http://cloud.voorbeeld.nl
```
of, na het instellen van HTTPS:
```text
https://cloud.voorbeeld.nl
```
2. Volg de stappen van de NextCloud installatie:
- Stel een beheerdersgebruikersnaam en wachtwoord in
- Vul de databasegegevens in:
- Databasegebruiker: `nc_user`
- Databasewachtwoord: `sterk-db-wachtwoord`
- Database: `nextcloud`
- Host: `localhost`
{{< notice "info" "Informatie" >}}
Na afronden keert NextCloud terug naar de login-pagina en kun je inloggen met het beheerdersaccount.
{{< /notice >}}

View File

@@ -0,0 +1,31 @@
---
title: "Snel overzicht"
date: 2025-11-08
icon: "fas fa-book"
description: "Aanbevolen startpunt met de meest voorkomende vragen en situaties."
type : "docs"
weight: 1
---
## Wat is een mantelzorgwoning
Een mantelzorgwoning is een zelfstandige woonruimte op of bij het perceel van een hoofdwoning. U bewoont deze woning wanneer intensieve mantelzorg nodig is en nabijheid noodzakelijk wordt. De woning staat altijd in direct verband met een actuele zorgsituatie.
### Doel en gebruik
Een mantelzorgwoning biedt u een veilige en toegankelijke plek dicht bij uw mantelzorger. De woning functioneert als tijdelijke voorziening zolang de zorgrelatie bestaat.
### Eigenschappen
Mantelzorgwoningen hebben een eigen toegang en sanitaire voorzieningen. Vaak word ervoor gekozen om ook een keuken te plaatsen in de woning. Een mantelzorgwoning heeft aanpassingen die niet standaard zijn in een reguliere woning of chalet. Bestaande uit:
- Drempelvrije doorgangen waaronder de hoofdingang
- Bredere deuropeningen
- Hulp attributen zoals handgrepen, noodknoppen en automatische verlichting
![Sfeerafbeelding](images/article-001.webp)
### Bouwwijze
De meeste mantelzorgwoningen worden prefab geleverd. U krijgt daardoor een snelle plaatsing en een beperkte bouwtijd op locatie. Bij diverse aanbieders van mantelzorgwoningen kan u de woning geheel op maat laten maken.
### Vergunning
Voor een mantelzorgwoning hebt u vaak geen omgevingsvergunning nodig omdat veel situaties onder de regels voor vergunningvrij bouwen vallen. De gemeente beoordeelt uw zorgsituatie en toetst of de plaatsing binnen de ruimtelijke regels past.
### Duur en verwijdering
De woning blijft staan zolang de zorgsituatie bestaat. Na het einde van de zorgrelatie moet de woning worden verwijderd of aangepast tot een reguliere bijbouw die aan alle regels voldoet. Veel mantelzorgwoning makers bieden ook de optie aan om tweedehands door te verkopen.

View File

@@ -0,0 +1,50 @@
---
title: "Komt u in aanmerking?"
date: 2025-11-10
weight: 1
feedback: true
draft: false
---
Deze checklist helpt u bepalen of u in aanmerking komt voor een mantelzorgwoning. De exacte voorwaarden verschillen per gemeente. Sommige gemeenten bieden aanvullende opties zoals het plaatsen van een pre-mantelzorgwoning of een generatiewoning.
### Checklist algemene voorwaarden
**1. Mantelzorgsituatie**
- U hebt een aantoonbare zorgbehoefte waarvoor dagelijkse nabijheid nodig is.
- Een mantelzorger is betrokken bij uw dagelijkse ondersteuning, zoals het algemeen huishouden, lichamelijke verzorging, bedienen van (medische) apparatuur of andere vormen van persoonlijke hulpverlening.
**2. Medische bevestiging**
- Een onafhankelijke huisarts of zorgverlener bevestigt schriftelijk dat sprake is van mantelzorgbehoefte.
**3. Zorgrelatie is actueel**
- De noodzaak bestaat op het moment van aanvraag of van sprake is door te verwachten optredende zorgbehoefte, zoals een progressieve aandoening of geplande medische ingreep met dergelijke impact.
- De zorgsituatie heeft geen tijdelijk karakter dat zonder aanpassing kan worden opgevangen.
**4. Locatie-eisen**
- De woning wordt geplaatst op hetzelfde perceel als de hoofdwoning.
- De plaatsing past binnen de regels voor bijbehorende bouwwerken.
**5. Ruimtelijke regels**
- De maatvoering, hoogte en afstand tot perceelgrenzen voldoen aan de landelijke regels voor vergunningvrij bouwen of vallen binnen het gemeentelijke bestemmingsplan.
- De woning blijft vergunningsvrij zolang deze aan alle voorwaarden voldoet.
**6. Tijdelijkheid**
- De woning blijft alleen toegestaan zolang de zorgsituatie bestaat.
- Na beëindiging van de zorgrelatie moet de woning worden verwijderd of aangepast.
**7. Zelfstandigheid van de woning**
- De woning bevat eigen voorzieningen zoals sanitair, slaapruimte en toegang.
- De woning is bedoeld voor bewoning door één huishouden binnen de zorgrelatie.
### Afwijkingen per gemeente
- Sommige gemeenten hanteren aanvullende eisen of juist ruimere mogelijkheden.
- Er bestaan gemeenten met beleid voor **pre-mantelzorgwoningen**, bedoeld voor situaties waarin zorgbehoefte binnen afzienbare tijd wordt verwacht.
- In enkele gemeenten vallen ruimere woonvormen zoals **generatiewoningen** of **familiewoningen** onder maatwerkregels of specifieke bestemmingsplannen.
{{< notice "info" "Zoek uw gemeente">}}
Bekijk direct wat uw opties in uw woonplaats zijn in ons overzicht. U kan uiteraard ook de zoekbalk gebruiken om uw gemeente te vinden.
<a class="btn btn-white" href="">Bekijk lijst</a>
{{< /notice >}}

View File

@@ -0,0 +1,77 @@
---
title: "Wat kost een mantelzorgwoning?"
date: 2025-11-10
weight: 1
feedback: true
draft: false
---
De kosten van een mantelzorgwoning lopen sterk uiteen. De prijs hangt vooral af van de grootte, het afwerkingsniveau en de vraag of u alles inclusief fundering, transport en aansluitingen laat uitvoeren.
### Aanschafprijs van de woning
- Voor compacte prefab mantelzorgwoningen ziet u prijzen vanaf ongeveer €30.000 tot €50.000, vaak nog zonder fundering, transport en aansluitingen
- Veel complete prefab mantelzorgwoningen vallen in een bandbreedte van ongeveer €50.000 tot €150.000
- Hoogwaardige of volledig maatwerk woningen komen bij sommige aanbieders uit tussen ongeveer €150.000 en €250.000
Gemiddeld kunt u rekenen met een richtprijs van ongeveer €2.000 tot €4.500 per m², afhankelijk van leverancier, isolatie en afwerking. Voor een woning van circa 50 m² betekent dat al snel een totale investering van minstens €100.000, vaak meer inclusief bijkomende kosten.
### Wat zit meestal in de basisprijs
In de basisprijs van een mantelzorgwoning vallen meestal:
- De casco constructie met wanden, dak, vloer en isolatie
- Een standaard afwerking van binnenwanden en vloeren
- Basisinstallaties voor elektra en verwarming
- Een eenvoudige keuken en badkamer, soms als aparte meerprijs
Let u altijd op of prijzen inclusief of exclusief btw, keuken, badkamer en installaties zijn. De ene aanbieder geeft een lage vanafprijs voor alleen de unit, de andere rekent een sleutelklare prijs.
### Bijkomende kosten op locatie
Naast de unit zelf krijgt u bijna altijd te maken met kosten op de locatie.
**Fundering en onderbouw**
Afhankelijk van bodem en gekozen systeem (schroefpalen, betonpoeren, betonplaat) liggen de kosten vaak tussen ongeveer €3.500 en €15.000.
**Aansluiting op nutsvoorzieningen**
Voor water, elektra en riolering wordt vaak een bandbreedte genoemd van circa €3.000 tot €7.000, afhankelijk van de afstand tot de bestaande aansluitingen en de bereikbaarheid van het perceel.
**Transport en kraanwerk**
Voor vervoer met dieplader en het hijsen van de woning met een kraan kunt u grofweg rekenen op bedragen tussen ongeveer €3.000 en €7.000. Bij grotere afstanden of lastige locaties loopt dit verder op.
**Plaatsing en montage**
Sommige aanbieders splitsen plaatsing uit als aparte post. Voor kleinere units worden bedragen genoemd rond €3.900, voor grotere woningen eerder richting €5.900 of hoger. Soms is dit in het transportpakket opgenomen.
Bij enkele leveranciers vindt u totaalprijzen inclusief transport, plaatsing en aansluitingen. Dan wordt voor een complete mantelzorgwoning vaak een bandbreedte van ongeveer €80.000 tot €130.000 genoemd, afhankelijk van uitvoering en formaat.
### Advies, ontwerp en consultkosten
Naast de bouwkosten zijn er vaak advies- en consultkosten:
- Tekeningen en constructieberekening voor de omgevingsvergunning
- Leges van de gemeente voor de behandeling van een vergunningsaanvraag
- Eventueel bouwkundig, juridisch of fiscaal advies over erfpacht, financiering en eigendom
- Soms een intake of locatiebezoek door leverancier of adviseur
Voor dit pakket aan diensten zijn vaste pakketprijzen gebruikelijk, of een uurtarief. In veel gevallen loopt dit op tot enkele honderden tot enkele duizenden euros, afhankelijk van de complexiteit en of u maatwerk wilt.
### Inrichting en zorgaanpassingen
Ook na de oplevering komen er kosten bij:
- Inrichting (vloerafwerking, verlichting, meubels)
- Zorgspecifieke aanpassingen zoals een aangepaste badkamer, bredere deuren, drempelvrije vloeren, domotica en alarmering
Bij intensieve zorgsituaties wordt vaak genoemd dat extra aanpassingen zich gemakkelijk in een bandbreedte van €5.000 tot €20.000 bewegen, afhankelijk van de mate van zorg en de gekozen apparatuur.
### Verschillen per aanbieder en per gemeente
De genoemde bedragen zijn gemiddelden uit de markt en geen vaste tarieven. Per aanbieder en per gemeente kunnen de totale kosten afwijken door:
- Lokale regels en eventuele vergunningsplicht
- Vereisten rond fundering of brandveiligheid
- Bereikbaarheid van uw perceel
- Wel of geen maatwerk, duurzame installaties en extra opties
Voor een realistische begroting is het verstandig meerdere offertes op te vragen én vooraf met uw gemeente te overleggen.

View File

@@ -0,0 +1,9 @@
---
title: "Vergunning & wetgeving"
date: 2025-11-08
icon: "fas fa-scale-balanced"
description: "Een overzicht aan welke voorwaarden u dient te voldoen om een vergunning te krijgen."
type : "docs"
weight: 3
---

View File

@@ -0,0 +1,122 @@
---
title: "Apache"
date: 2025-11-08
weight: 3
feedback: true
draft: false
---
{{< notice "info" "Informatie">}}
De instructies in dit artikel zijn uitsluitend voor de webserver, niet de site generator.
{{< /notice >}}
## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren.
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je begint met installeren.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Gebruik het `apt` commando om het systeem te updaten.
```bash
sudo apt update && sudo apt upgrade
```
## Apache
### Installatie
Installeer Apache met het `apt` commando.
```bash
sudo apt install apache2
```
### Configuratie
{{< notice "info" "Informatie" >}}
Verander in de code **voorbeeld** naar jouw domeinnaam, zonder `https://` of `www` tenzij letterlijk aangegeven zoals **voorbeeld.nl**
{{< /notice >}}
1. Zorg dat Apache altijd start met de server.
```bash
sudo systemctl enable --now apache2
```
2. Maak een nieuwe site configuratie op basis van de standaard instellingen.
```bash
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/voorbeeld.nl.conf
```
3. Pas de inhoud met het programma `nano`.
```bash
sudo nano /etc/apache2/sites-available/voorbeeld.nl.conf
```
```apache
<VirtualHost *:80>
ServerName voorbeeld.nl
ServerAlias www.voorbeeld.nl
DocumentRoot /var/www/voorbeeld.nl/public
<Directory /var/www/voorbeeld.nl/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/voorbeeld.nl-error.log
CustomLog ${APACHE_LOG_DIR}/voorbeeld.nl-access.log combined
</VirtualHost>
```
{{< notice "info" "Tip" >}}
Je kan plakken in de terminal met CTRL + SHIFT + V
{{< /notice >}}
4. Activeer de configuratie met het `a2ensite` commando.
```bash
sudo a2ensite voorbeeld.nl.conf
```
5. Controleer werking en herlaad Apache.
```bash
sudo apache2ctl configtest
sudo systemctl reload apache2
```
## CertBot
### Installatie
Installeer CertBot met het `apt` commando.
```bash
sudo apt install certbot python3-certbot-apache
```
### Configuratie
Genereer en implementeer een geldig certificaat met het volgende commando.
```bash
sudo certbot --apache
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres, selectie welke sites certificering moeten krijgen en of je HTTP automatisch naar HTTPS wilt laten doorsturen.
{{< notice "info" "Tip" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```bash
sudo certbot --apache --dry-run
```
{{< /notice >}}
## Website activeren
1. Maak een index.html bestand. En geef deze een vorm van vulling, zoals voorbeeld hieronder.
```bash
sudo mkdir -p /var/www/voorbeeld.nl/public
sudo nano /var/www/voorbeeld.nl/public/index.html
```
```html
<html>
<body>
<h1>Hallo wereld</h1>
</body>
</html>
```
2. Wijs de omgeving toe aan de `www-data` gebruiker en groep, stel schrijfrechten in.
```bash
sudo chown www-data:www-data /var/www/voorbeeld.nl -R
sudo chmod -R g+rwX /var/www/voorbeeld.nl
```
3. Open de browser en ga naar je website toe, je zou nu de inhoud van de index.html moeten kunnen zien via HTTPS, met een geldig letsencrypt certificaat.

View File

@@ -0,0 +1,178 @@
---
title: "NextCloud (Apache)"
date: 2025-11-10
weight: 3
feedback: true
draft: false
---
NextCloud is een open source platform voor bestandssynchronisatie en samenwerking, vergelijkbaar met diensten als Dropbox of OneDrive. In deze handleiding installeren we NextCloud _zonder_ Docker, rechtstreeks op een Debian server met Apache als webserver.
{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een Debian server met een basis Apache installatie zoals beschreven in het bovenliggende artikel **Apache**.
{{< /notice >}}
## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Een werkende webserver (Apache) die verzoeken voor jouw domein kan verwerken
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je NextCloud installeert.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Werk de pakketbron en geïnstalleerde pakketten bij.
```bash
sudo apt update && sudo apt upgrade
```
## PHP en database installeren
NextCloud heeft PHP en een database nodig. In dit voorbeeld gebruiken we MariaDB als database.
1. Installeer Apache, PHP, de benodigde modules en MariaDB.
```bash
sudo apt install apache2 php libapache2-mod-php php-mysql php-xml php-gd php-curl php-mbstring php-zip php-intl php-bcmath php-gmp mariadb-server unzip
```
2. Beveilig de MariaDB installatie
```bash
sudo mysql_secure_installation
```
3. Maak een database en gebruiker voor NextCloud.
```bash
sudo mysql
```
Voer daarna in de MariaDB prompt de volgende opdrachten uit, pas wachtwoord en namen aan:
```sql
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'sterk-db-wachtwoord';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```
## NextCloud bestanden downloaden
We plaatsen NextCloud in `/var/www/nextcloud`.
1. Download en pak NextCloud uit.
```bash
cd /tmp
curl -LO https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
```
2. Maak de doelmap aan en kopieer de bestanden.
```bash
sudo mkdir -p /var/www/nextcloud
sudo rsync -av nextcloud/ /var/www/nextcloud/
```
3. Stel de juiste eigenaar en rechten in.
```bash
sudo chown -R www-data:www-data /var/www/nextcloud
sudo find /var/www/nextcloud -type d -exec chmod 750 {} \;
sudo find /var/www/nextcloud -type f -exec chmod 640 {} \;
```
## Apache configureren voor NextCloud
We maken een aparte site-configuratie aan voor `cloud.voorbeeld.nl`.
1. Maak een nieuw configuratiebestand.
```bash
sudo nano /etc/apache2/sites-available/cloud.voorbeeld.nl.conf
```
2. Plaats de volgende configuratie in het bestand:
```apache
<VirtualHost *:80>
ServerName cloud.voorbeeld.nl
ServerAlias www.cloud.voorbeeld.nl
DocumentRoot /var/www/nextcloud
<Directory /var/www/nextcloud>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
# Verhoog maximale uploadgrootte
LimitRequestBody 536870912
# Aanbevolen security headers
Header always set Referrer-Policy "no-referrer"
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-XSS-Protection "1; mode=block"
ErrorLog ${APACHE_LOG_DIR}/cloud.voorbeeld.nl-error.log
CustomLog ${APACHE_LOG_DIR}/cloud.voorbeeld.nl-access.log combined
</VirtualHost>
```
3. Zorg dat de benodigde modules voor NextCloud actief zijn.
```bash
sudo a2enmod rewrite headers env dir mime
sudo systemctl reload apache2
```
4. Activeer de site en controleer Apache.
```bash
sudo a2ensite cloud.voorbeeld.nl.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
```
## CertBot voor HTTPS
Zorg voor een geldig TLS-certificaat met CertBot.
1. Installeer CertBot met de Apache plugin.
```bash
sudo apt install certbot python3-certbot-apache
```
2. Vraag een certificaat aan voor jouw domein.
```bash
sudo certbot --apache
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres en de keuze om HTTP automatisch naar HTTPS om te leiden.
{{< notice "info" "Informatie" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```bash
sudo certbot --apache --dry-run
```
{{< /notice >}}
## NextCloud installatie afronden
1. Open een browser en ga naar:
```text
http://cloud.voorbeeld.nl
```
of, na het instellen van HTTPS:
```text
https://cloud.voorbeeld.nl
```
2. Volg de stappen van de NextCloud installatie:
- Stel een beheerdersgebruikersnaam en wachtwoord in
- Vul de databasegegevens in:
- Databasegebruiker: `nc_user`
- Databasewachtwoord: `sterk-db-wachtwoord`
- Database: `nextcloud`
- Host: `localhost`
{{< notice "info" "Informatie" >}}
Na afronden keert NextCloud terug naar de login-pagina en kun je inloggen met het beheerdersaccount.
{{< /notice >}}

View File

@@ -0,0 +1,192 @@
---
title: "WordPress"
date: 2025-11-09
weight: 3
feedback: true
draft: false
---
WordPress is een veelgebruikte applicatie voor het bouwen van websites en blogs. In deze handleiding installeren we WordPress op een Debian server, uitgaand van het feit dat er al een werkende webserver aanwezig is met Apache.
{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een Debian server met een basis Apache installatie zoals beschreven in het bovenliggende artikel **Apache**.
{{< /notice >}}
## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Een werkende webserver (Apache) die verzoeken voor jouw domein verwerkt
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je begint met installeren.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Gebruik het `apt` commando om het systeem te updaten.
```bash
sudo apt update && sudo apt upgrade
```
## PHP en database installeren
WordPress heeft PHP en een database nodig. In dit voorbeeld gebruiken we MariaDB als database.
1. Installeer PHP en de benodigde modules.
```bash
sudo apt install php libapache2-mod-php php-mysql php-xml php-gd php-curl php-mbstring php-zip
```
2. Installeer MariaDB server.
```bash
sudo apt install mariadb-server
```
3. Beveilig de MariaDB installatie (optioneel, maar aanbevolen).
```bash
sudo mysql_secure_installation
```
4. Maak een database en gebruiker voor WordPress.
```bash
sudo mysql
```
Voer daarna in de MariaDB prompt de volgende opdrachten uit (pas wachtwoord en namen aan):
```sql
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'sterk-wachtwoord';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```
## WordPress bestanden voorbereiden
We plaatsen WordPress in `/var/www/voorbeeld.nl/public`, zodat dit overeenkomt met de standaard webroot uit andere artikelen.
1. Download en pak WordPress uit.
```bash
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
```
2. Maak de doelmap aan en kopieer de bestanden.
```bash
sudo mkdir -p /var/www/voorbeeld.nl/public
sudo cp -r /tmp/wordpress/* /var/www/voorbeeld.nl/public/
```
3. Maak een kopie van het configuratiebestand.
```bash
cd /var/www/voorbeeld.nl/public
sudo cp wp-config-sample.php wp-config.php
```
4. Pas de database-instellingen aan in `wp-config.php`.
```bash
sudo nano /var/www/voorbeeld.nl/public/wp-config.php
```
Vul bij de databasegegevens:
```php
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wp_user' );
define( 'DB_PASSWORD', 'sterk-wachtwoord' );
define( 'DB_HOST', 'localhost' );
```
{{< notice "info" "Tip" >}}
Genereer de unieke beveiligingssleutels via de officiële WordPress salt generator en plak deze in `wp-config.php` in plaats van de standaard waardes.
{{< /notice >}}
5. Stel de juiste eigenaar en rechten in.
```bash
sudo chown -R www-data:www-data /var/www/voorbeeld.nl
sudo find /var/www/voorbeeld.nl -type d -exec chmod 750 {} \;
sudo find /var/www/voorbeeld.nl -type f -exec chmod 640 {} \;
```
### Apache configuratie
{{< notice "info" "Informatie" >}}
Verander in de code **voorbeeld** naar jouw domeinnaam, zonder `https://` of `www` tenzij letterlijk aangegeven zoals **voorbeeld.nl**.
{{< /notice >}}
1. Open de bestaande site-configuratie voor jouw domein.
```bash
sudo nano /etc/apache2/sites-available/voorbeeld.nl.conf
```
2. Zorg ervoor dat de configuratie er ongeveer als volgt uitziet:
```apache
<VirtualHost *:80>
ServerName voorbeeld.nl
ServerAlias www.voorbeeld.nl
DocumentRoot /var/www/voorbeeld.nl/public
<Directory /var/www/voorbeeld.nl/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/voorbeeld.nl-error.log
CustomLog ${APACHE_LOG_DIR}/voorbeeld.nl-access.log combined
</VirtualHost>
```
3. Zorg dat de benodigde modules voor WordPress actief zijn.
```bash
sudo a2enmod rewrite
sudo systemctl reload apache2
```
4. Controleer de Apache configuratie en herlaad de service.
```bash
sudo apache2ctl configtest
sudo systemctl reload apache2
```
### CertBot voor Apache
Installeer CertBot met de Apache plugin (als dit nog niet eerder gedaan is).
```bash
sudo apt install certbot python3-certbot-apache
```
Vraag een certificaat aan voor jouw domein.
```bash
sudo certbot --apache
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres, de selectie welke sites certificering moeten krijgen en of je HTTP automatisch naar HTTPS wilt laten doorsturen.
{{< notice "info" "Tip" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```bash
sudo certbot --apache --dry-run
```
{{< /notice >}}
## WordPress installatie afronden
1. Open de browser en ga naar jouw domein, bijvoorbeeld:
- `http://voorbeeld.nl` of
- `https://voorbeeld.nl` (na het instellen van letsencrypt)
2. Volg de stappen van de WordPress installatie:
- Kies de taal
- Vul de sitetitel in
- Maak een beheerdersaccount aan
- Bevestig en log in op het WordPress dashboard
Je WordPress site is nu actief en bereikbaar via het door jou ingestelde domein als je Apache als webserver gebruikt.

View File

@@ -0,0 +1,92 @@
---
title: "Docker"
date: 2025-11-10
weight: 2
feedback: true
draft: false
---
Docker is een platform om applicaties geïsoleerd te draaien in containers. In deze handleiding installeren we Docker op een Debian server via de command line en controleren we of de installatie correct werkt.
{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een schone Debian installatie met internettoegang. De stappen zijn getest op recente Debian-versies (zoals Debian 12).
{{< /notice >}}
## Benodigdheden
- Een server met een ondersteunde Debian Linux installatie
- Toegang tot de command line (bijvoorbeeld via SSH)
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren
- Werkende internetverbinding
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je Docker installeert.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Werk de pakketbron en geïnstalleerde pakketten bij.
```bash
sudo apt update && sudo apt upgrade
```
## Docker repository toevoegen
We installeren Docker vanaf de officiële Docker repository in plaats van de standaard Debian-pakketten.
1. Installeer vereiste hulppakketten.
```bash
sudo apt install ca-certificates curl gnupg
```
2. Maak de map aan voor de Docker GPG-sleutel.
```bash
sudo install -m 0755 -d /etc/apt/keyrings
```
3. Download en installeer de Docker GPG-sleutel.
```bash
curl -fsSL https://download.docker.com/linux/debian/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
```
4. Stel de juiste rechten in op de sleutel.
```bash
sudo chmod a+r /etc/apt/keyrings/docker.gpg
```
5. Voeg de Docker repository toe.
```bash
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```
6. Werk de pakketlijst bij.
```bash
sudo apt update
```
## Docker installeren
Installeer nu Docker Engine en de bijbehorende componenten.
```bash
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
Controleer of de Docker service actief is.
```bash
sudo systemctl status docker
```
Als Docker niet actief is, start de service en zorg dat deze automatisch start na een reboot.
```bash
sudo systemctl enable --now docker
```
## Docker installatie testen
Voer de officiële testcontainer uit om te controleren of Docker goed werkt.
```bash
sudo docker run hello-world
```
Je zou een bericht moeten zien dat bevestigt dat Docker correct is geïnstalleerd en een testcontainer heeft uitgevoerd.

View File

@@ -0,0 +1,154 @@
---
title: "NextCloud (Docker)"
date: 2025-11-10
weight: 3
feedback: true
draft: false
---
NextCloud is een open source platform voor bestandssynchronisatie en samenwerking, vergelijkbaar met diensten als Dropbox of OneDrive. In deze handleiding installeren we NextCloud op een Debian server met behulp van Docker en Docker Compose.
{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een Debian server waarop Docker en de Docker Compose plugin al zijn geïnstalleerd, zoals beschreven in het bovenliggende artikel **Docker**.
{{< /notice >}}
## Benodigdheden
- Een server met een ondersteunde Debian Linux installatie
- Docker en Docker Compose plugin geïnstalleerd
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je begint.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Werk de pakketbron en geïnstalleerde pakketten bij.
```bash
sudo apt update && sudo apt upgrade
```
3. Controleer of Docker en Docker Compose beschikbaar zijn.
```bash
docker --version
docker compose version
```
## Mapstructuur aanmaken
We plaatsen de Docker Compose configuratie en data in `/opt/nextcloud`.
1. Maak de basisstructuur aan.
```bash
sudo mkdir -p /opt/nextcloud/{db,nextcloud}
```
2. Geef de huidige gebruiker toegang (optioneel, handig voor beheer).
```bash
sudo chown -R $USER:$USER /opt/nextcloud
```
3. Ga naar de NextCloud map.
```bash
cd /opt/nextcloud
```
## Docker Compose bestand maken
We gebruiken een `docker-compose.yml` met NextCloud en MariaDB als database.
1. Maak het bestand `docker-compose.yml`.
```bash
nano docker-compose.yml
```
2. Plaats de volgende configuratie in het bestand:
```yaml
version: "3.9"
services:
db:
image: mariadb:11
container_name: nextcloud_db
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
environment:
- MYSQL_ROOT_PASSWORD=sterk-root-wachtwoord
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=sterk-db-wachtwoord
volumes:
- ./db:/var/lib/mysql
app:
image: nextcloud:stable
container_name: nextcloud_app
restart: unless-stopped
ports:
- "8080:80"
depends_on:
- db
environment:
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=sterk-db-wachtwoord
- MYSQL_HOST=db
volumes:
- ./nextcloud:/var/www/html
```
{{< notice "info" "Informatie" >}}
Vervang `sterk-root-wachtwoord` en `sterk-db-wachtwoord` door sterke, unieke wachtwoorden. Bewaar deze veilig.
{{< /notice >}}
## NextCloud containers starten
1. Download de benodigde images en start de containers in de achtergrond.
```bash
docker compose up -d
```
2. Controleer of de containers draaien.
```bash
docker ps
```
Je zou nu containers moeten zien met namen zoals `nextcloud_app` en `nextcloud_db`.
## NextCloud installatie afronden
1. Open een browser en ga naar:
```text
http://server-ip:8080
```
of, indien je een domeinnaam en reverse proxy gebruikt:
```text
https://voorbeeld.nl
```
2. Volg de stappen van de NextCloud installatie:
- Stel een beheerdersgebruikersnaam en wachtwoord in
- Controleer dat de database-instellingen overeenkomen met de waarden uit `docker-compose.yml`
{{< notice "info" "Informatie" >}}
Na afronden keert NextCloud terug naar de login-pagina en kun je inloggen met het beheerdersaccount.
{{< /notice >}}
## Data en back-ups
Alle gegevens worden opgeslagen in:
- Database: `/opt/nextcloud/db`
- NextCloud bestanden en configuratie: `/opt/nextcloud/nextcloud`
{{< notice "warning" "Waarschuwing" >}}
Maak regelmatig back-ups van deze mappen, bij voorkeur met de containers eerst in een consistente staat (bijvoorbeeld tijdelijk stoppen)
{{< /notice >}}
Voer het volgende uit om een back-up te maken.
```bash
cd /opt/nextcloud
docker compose down
tar czf nextcloud-backup-$(date +%F).tar.gz db nextcloud
docker compose up -d
```

View File

@@ -0,0 +1,121 @@
---
title: "NGINX"
date: 2025-11-08
weight: 1
feedback: true
draft: false
---
{{< notice "info" "Informatie">}}
De instructies in dit artikel zijn uitsluitend voor de webserver NGINX, niet de software die hierop geïnstalleerd gaat worden.
{{< /notice >}}
## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren.
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je begint met installeren.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Gebruik het `apt` commando om het systeem te updaten.
```bash
sudo apt update && sudo apt upgrade
```
## NGINX
### Installatie
Installeer NGINX met het `apt` commando.
```bash
sudo apt install nginx
```
### Configuratie
{{< notice "info" "Informatie" >}}
Verander in de code **voorbeeld** naar jouw domeinnaam, zonder `https://` of `www` tenzij letterlijk aangegeven zoals **voorbeeld.nl**
{{< /notice >}}
1. Zorg dat NGINX altijd start met de server.
```bash
sudo systemctl enable --now nginx
```
2. Kopieer de standaard site configuratie.
```bash
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/voorbeeld.nl
```
3. Pas de inhoud met het programma `nano`.
```bash
sudo nano /etc/nginx/sites-available/voorbeeld.nl
```
```nginx
server {
server_name voorbeeld.nl www.voorbeeld.nl;
root /var/www/voorbeeld.nl/public/;
index index.html;
location / {
try_files $uri $uri/ =404;
}
listen 80;
listen [::]:80;
}
```
{{< notice "info" "Tip" >}}
Je kan plakken in de terminal met CTRL + SHIFT + V
{{< /notice >}}
4. Activeer de configuratie door een link te maken met het `ln` commando.
```bash
sudo ln -s /etc/nginx/sites-available/voorbeeld.nl \
/etc/nginx/sites-enabled/voorbeeld.nl
```
5. Controleer werking en herlaad NGINX.
```bash
sudo nginx -t
sudo systemctl reload nginx
```
## CertBot
### Installatie
Installeer CertBot met het `apt` commando.
```bash
sudo apt install certbot python3-certbot-nginx
```
### Configuratie
Genereer en implementeer een geldig certificaat met het volgende commando.
```bash
sudo certbot --nginx
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres en selectie welke sites certificering moeten krijgen.
{{< notice "info" "Tip" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```
sudo certbot --nginx --dry-run
```
{{< /notice >}}
## Website activeren
1. Maak een index.html bestand. En geef deze een vorm van vulling, zoals voorbeeld hieronder.
```bash
sudo mkdir -p /var/www/voorbeeld.nl/public
sudo nano /var/www/voorbeeld.nl/public/index.html
```
```html
<html>
<body>
<h1>Hallo wereld</h1>
</body>
</html>
```
2. Wijs de omgeving toe aan de `www-data` gebruiker en groep, stel schrijfrechten in.
```bash
sudo chown www-data:www-data /var/www/voorbeeld.nl -R
sudo chmod -R g+rwX /var/www/voorbeeld.nl
```
3. Open de browser en ga naar je website toe, je zou nu de inhoud van de index.html moeten kunnen zien.

View File

@@ -0,0 +1,204 @@
---
title: "NextCloud (NGINX)"
date: 2025-11-10
weight: 3
feedback: true
draft: false
---
NextCloud is een open source platform voor bestandssynchronisatie en samenwerking, vergelijkbaar met diensten als Dropbox of OneDrive. In deze handleiding installeren we NextCloud rechtstreeks op een Debian server met NGINX als webserver.
{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een Debian server met een basis NGINX installatie zoals beschreven in het bovenliggende artikel **NGINX**.
{{< /notice >}}
## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam, bijvoorbeeld `cloud.voorbeeld.nl`
- DNS ingesteld naar het IP-adres van de server
- Een werkende webserver (NGINX) die verzoeken voor jouw domein kan verwerken
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren
## Voorbereiding
Zorg dat het systeem up-to-date is voordat je NextCloud installeert.
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Werk de pakketbron en geïnstalleerde pakketten bij.
```bash
sudo apt update && sudo apt upgrade
```
## PHP en database installeren
NextCloud heeft PHP en een database nodig. In dit voorbeeld gebruiken we MariaDB als database.
1. Installeer PHP, de benodigde modules en MariaDB.
```bash
sudo apt install php-fpm php-mysql php-xml php-gd php-curl php-mbstring php-zip php-intl php-bcmath php-gmp mariadb-server unzip
```
2. Beveilig de MariaDB installatie
```bash
sudo mysql_secure_installation
```
3. Maak een database en gebruiker voor NextCloud.
```bash
sudo mysql
```
Voer daarna in de MariaDB prompt de volgende opdrachten uit, pas wachtwoord en namen aan:
```sql
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'sterk-db-wachtwoord';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```
## NextCloud bestanden downloaden
We plaatsen NextCloud in `/var/www/nextcloud`.
1. Download en pak NextCloud uit.
```bash
cd /tmp
curl -LO https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
```
2. Maak de doelmap aan en kopieer de bestanden.
```bash
sudo mkdir -p /var/www/nextcloud
sudo rsync -av nextcloud/ /var/www/nextcloud/
```
3. Stel de juiste eigenaar en rechten in.
```bash
sudo chown -R www-data:www-data /var/www/nextcloud
sudo find /var/www/nextcloud -type d -exec chmod 750 {} \;
sudo find /var/www/nextcloud -type f -exec chmod 640 {} \;
```
## NGINX configureren voor NextCloud
We maken een aparte server-configuratie aan voor `cloud.voorbeeld.nl`.
1. Maak een nieuw configuratiebestand.
```bash
sudo nano /etc/nginx/sites-available/cloud.voorbeeld.nl
```
2. Plaats de volgende configuratie in het bestand:
```nginx
server {
server_name cloud.voorbeeld.nl;
root /var/www/nextcloud;
index index.php index.html;
client_max_body_size 512M;
fastcgi_buffers 64 4K;
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
location = /robots.txt { allow all; log_not_found off; access_log off; }
location = /.well-known/carddav { return 301 $scheme://$host/remote.php/dav; }
location = /.well-known/caldav { return 301 $scheme://$host/remote.php/dav; }
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location / {
rewrite ^ /index.php$request_uri;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ \.(?:css|js|woff2?|svg|gif|map)$ {
try_files $uri /index.php$request_uri;
access_log off;
expires 6M;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$request_uri;
access_log off;
expires 6M;
}
listen 80;
listen [::]:80;
}
```
{{< notice "info" "Informatie" >}}
Controleer of het pad naar de PHP-FPM socket klopt. Op sommige Debian-versies kan dit bijvoorbeeld `/run/php/php8.2-fpm.sock` zijn. Gebruik `ls /run/php/` om het juiste bestand te vinden en pas `fastcgi_pass` zo nodig aan.
{{< /notice >}}
3. Activeer de configuratie en controleer NGINX.
```bash
sudo ln -s /etc/nginx/sites-available/cloud.voorbeeld.nl /etc/nginx/sites-enabled/cloud.voorbeeld.nl
sudo nginx -t
sudo systemctl reload nginx
```
## CertBot voor HTTPS
Zorg voor een geldig TLS-certificaat met CertBot.
1. Installeer CertBot met de NGINX plugin.
```bash
sudo apt install certbot python3-certbot-nginx
```
2. Vraag een certificaat aan voor jouw domein.
```bash
sudo certbot --nginx
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres en de keuze om HTTP automatisch naar HTTPS om te leiden.
{{< notice "info" "Informatie" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```bash
sudo certbot --nginx --dry-run
```
{{< /notice >}}
## NextCloud installatie afronden
1. Open een browser en ga naar:
```text
http://cloud.voorbeeld.nl
```
of, na het instellen van HTTPS:
```text
https://cloud.voorbeeld.nl
```
2. Volg de stappen van de NextCloud installatie:
- Stel een beheerdersgebruikersnaam en wachtwoord in
- Vul de databasegegevens in:
- Databasegebruiker: `nc_user`
- Databasewachtwoord: `sterk-db-wachtwoord`
- Database: `nextcloud`
- Host: `localhost`
{{< notice "info" "Informatie" >}}
Na afronden keert NextCloud terug naar de login-pagina en kun je inloggen met het beheerdersaccount.
{{< /notice >}}