init
This commit is contained in:
178
content/vergunning/algemeen/nextcloud/_index.nl.md
Normal file
178
content/vergunning/algemeen/nextcloud/_index.nl.md
Normal 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 >}}
|
||||
Reference in New Issue
Block a user