Kapitel 7/Tutorial.md aktualisiert
This commit is contained in:
@@ -184,3 +184,181 @@ systemctl restart redis-server
|
||||
|
||||
Fertig. Jetzt ist Redis bereit für Nextcloud – Caching und Locking funktionieren nach dem Setup automatisch,
|
||||
wenn wir die Einträge in der `config.php` ergänzen.
|
||||
|
||||
## ⬇️ Nextcloud herunterladen
|
||||
|
||||
[Platzhalter: Warum wir Nextcloud manuell installieren (Version kontrollieren, Updates nachvollziehbar, keine Snap/FPM-Probleme).]
|
||||
|
||||
### Download & Entpacken
|
||||
|
||||
```bash
|
||||
cd /srv/nextcloud/app
|
||||
curl -LO https://download.nextcloud.com/server/releases/nextcloud-29.0.1.zip
|
||||
unzip nextcloud-29.0.1.zip && rm nextcloud-29.0.1.zip
|
||||
chown -R www-data:www-data nextcloud
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> Aktuelle Version prüfen: https://nextcloud.com/changelog/
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ `config.php` vorbereiten
|
||||
|
||||
[Platzhalter: Warum wir die Datei *vorher* anlegen (Proxy-Erkennung, Redis, saubere Setup-Erfahrung).
|
||||
Wird beim ersten Aufruf automatisch ergänzt.]
|
||||
|
||||
### Datei erstellen
|
||||
|
||||
```bash
|
||||
nano /srv/nextcloud/app/nextcloud/config/config.php
|
||||
```
|
||||
|
||||
### Inhalt einfügen
|
||||
|
||||
```php
|
||||
<?php
|
||||
$CONFIG = array (
|
||||
'trusted_domains' => [
|
||||
'cloud.DEINE-DOMAIN.tld',
|
||||
],
|
||||
'overwrite.cli.url' => 'https://cloud.DEINE-DOMAIN.tld',
|
||||
'overwritehost' => 'cloud.DEINE-DOMAIN.tld',
|
||||
'overwriteprotocol' => 'https',
|
||||
'trusted_proxies' => ['IP.DEINES.NPM'],
|
||||
|
||||
'filelocking.enabled' => true,
|
||||
'memcache.local' => '\\OC\\Memcache\\Redis',
|
||||
'memcache.locking' => '\\OC\\Memcache\\Redis',
|
||||
'redis' => [
|
||||
'host' => '/var/run/redis/redis-server.sock',
|
||||
'port' => 0,
|
||||
'timeout' => 1.5,
|
||||
],
|
||||
);
|
||||
```
|
||||
|
||||
> [!TIP]
|
||||
> `trusted_proxies` kann z. B. `10.0.0.1` sein, wenn NPM im selben Netz läuft.
|
||||
> Mehrere Proxies können als Array ergänzt werden.
|
||||
|
||||
---
|
||||
|
||||
Damit ist Nextcloud bereit – gleich folgt der Abschnitt zur **Nginx-Konfiguration**.
|
||||
|
||||
## 🌐 Nginx konfigurieren (vHost intern)
|
||||
|
||||
[Platzhalter: Warum wir keinen HTTPS/SSL im Container brauchen (TLS wird von NPM übernommen).
|
||||
Nginx hier nur als lokaler Webserver für PHP-FPM + Nextcloud.]
|
||||
|
||||
### Neue Konfigurationsdatei anlegen
|
||||
|
||||
```bash
|
||||
nano /etc/nginx/sites-available/nextcloud.conf
|
||||
```
|
||||
|
||||
### Inhalt einfügen
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name cloud.DEINE-DOMAIN.tld;
|
||||
|
||||
root /srv/nextcloud/app/nextcloud;
|
||||
index index.php index.html;
|
||||
|
||||
client_max_body_size 10G;
|
||||
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 ~ ^/(?:\.htaccess|data|config|db_structure\\.xml|README) {
|
||||
deny all;
|
||||
}
|
||||
|
||||
location ~ \\.php(?:$|/) {
|
||||
include fastcgi_params;
|
||||
fastcgi_split_path_info ^(.+\\.php)(/.*)$;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
|
||||
fastcgi_intercept_errors on;
|
||||
fastcgi_request_buffering off;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Site aktivieren
|
||||
|
||||
```bash
|
||||
ln -s /etc/nginx/sites-available/nextcloud.conf /etc/nginx/sites-enabled/
|
||||
rm /etc/nginx/sites-enabled/default
|
||||
nginx -t && systemctl reload nginx
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> `nginx -t` prüft die Konfiguration. Nur wenn „syntax is ok“ erscheint, darfst du reloaden.
|
||||
|
||||
---
|
||||
|
||||
Sobald das erledigt ist, folgt der Abschnitt für **NPM‑Proxy + Domain-Setup**.
|
||||
Sag einfach, wann du soweit bist – oder wenn du auf ein Problem triffst.
|
||||
|
||||
## 🌍 NPM-Proxy konfigurieren
|
||||
|
||||
[Platzhalter: Warum wir Nginx Proxy Manager verwenden (TLS-Termination, zentraler Reverse Proxy, Let’s Encrypt, Portweiterleitung).
|
||||
Nextcloud selbst kennt nur HTTP und läuft im LXC ohne Zertifikat.]
|
||||
|
||||
### Im Nginx Proxy Manager (Web-GUI):
|
||||
|
||||
1. Gehe auf **Hosts → Proxy Hosts → Add Proxy Host**
|
||||
2. Trage ein:
|
||||
|
||||
| Feld | Wert |
|
||||
|-----------------------|---------------------------------|
|
||||
| **Domain Names** | `cloud.DEINE-DOMAIN.tld` |
|
||||
| **Forward Hostname/IP** | `<IP deines Nextcloud-LXC>` |
|
||||
| **Forward Port** | `80` |
|
||||
| **Access** | Websockets aktivieren ✅ |
|
||||
| **SSL** | → **Request a new SSL Certificate**
|
||||
| | → **Force SSL** aktivieren ✅
|
||||
| | → **HTTP/2 Support** aktivieren ✅
|
||||
|
||||
> [!TIP]
|
||||
> Trage bei „E-Mail“ eine gültige Adresse ein, sonst schlägt das Zertifikat fehl.
|
||||
> HSTS kannst du bei Bedarf aktivieren (empfohlen).
|
||||
|
||||
### (Optional) Für große Uploads:
|
||||
|
||||
Reiter „Advanced“:
|
||||
|
||||
```nginx
|
||||
client_max_body_size 10G;
|
||||
proxy_read_timeout 3600;
|
||||
proxy_send_timeout 3600;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Jetzt testen:**
|
||||
Öffne im Browser:
|
||||
|
||||
```
|
||||
https://cloud.DEINE-DOMAIN.tld
|
||||
```
|
||||
|
||||
Du solltest den **Nextcloud-Setup-Assistenten** sehen – ohne Fehlermeldung, ohne Mixed Content.
|
||||
Falls du eine Nginx-Standardseite siehst: Proxy nicht korrekt → prüfe Domain, IP und Port.
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user