Files
Homelab--Bratonein-Kontroll…/Kapitel 7/Tutorial.md

4.0 KiB
Raw Blame History

🛠️ Kapitel 7 Nextcloud (Nginx + PostgreSQL + Redis, NPM-Setup)

[!INFO] Dieses Kapitel ist eine vorbereitete Rohfassung. Es enthält bereits alle technischen Schritte in korrekter Reihenfolge. Die Blogtexte und Erklärungen folgen später.

Einleitung

[Platzhalter für Einstiegstext:
Was ist Nextcloud, warum ist es sinnvoll, was kann man damit tun.
Hinweis auf Unabhängigkeit von Google & Co., Einsatz als Streamer, für Teamsharing etc.]

📋 Voraussetzungen

[Platzhalter für grafische Checkliste oder Übersicht: z.B. Screenshot LXC-Übersicht]

  • Proxmox-Host mit 2 Platten (System + Daten)
  • LXC mit Ubuntu24.04, „Nesting“ aktiviert
  • Nginx Proxy Manager (NPM) läuft bereits
  • Domain zeigt korrekt auf den Proxy
  • Container-Ressourcen: 2 vCPU, 48GB RAM
  • Grundkenntnisse in Proxmox, SSH, Terminal

⚙️ LXC-Container anlegen

In der Proxmox-GUI:

  • CT-Name: nextcloud
  • Template: Ubuntu 24.04 LTS
  • CPU: 2+, RAM: 4096+ MB
  • „Nesting“ aktivieren (unter „Optionen“)

Zweite Festplatte direkt einbinden:

  • Mount Point: /mnt/hdd
  • Größe: z.B. 500 GB
  • Backup: deaktivieren

Nach dem Start:

ssh root@<IP-des-Containers>
ls -ld /mnt/hdd

→ Wenn ein gültiges Verzeichnis erscheint, ist alles korrekt gemountet.

📦 System vorbereiten

[Platzhalter: Warum update & Basis-Tools wichtig sind]

apt update && apt upgrade -y
apt install -y curl gnupg2 ca-certificates lsb-release apt-transport-https software-properties-common unzip nano sudo gnupg

🌐 Dienste installieren

[Platzhalter: Hinweis auf explizite PHP-Version, warum kein „php-*“ verwendet wird]

apt install -y nginx redis-server postgresql php8.3-fpm php8.3-pgsql php8.3-cli php8.3-common php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip php8.3-curl php8.3-bz2 php8.3-intl php8.3-gmp php8.3-imagick php8.3-redis

📁 Verzeichnisse anlegen

mkdir -p /srv/nextcloud/app
mkdir -p /mnt/hdd/nextcloud_data
chown -R www-data:www-data /mnt/hdd/nextcloud_data

⚙️ PHP konfigurieren

php.ini (globale Werte)

nano /etc/php/8.3/fpm/php.ini
upload_max_filesize = 10G
post_max_size = 10G
memory_limit = 1024M
max_execution_time = 3600
max_input_time = 3600
date.timezone = Europe/Berlin

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.interned_strings_buffer=16

www.conf (Pool-Konfiguration)

nano /etc/php/8.3/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 12
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 6

PHP-FPM neu laden:

systemctl reload php8.3-fpm

🐘 PostgreSQL initialisieren (für LXC)

pg_dropcluster 16 main --stop
pg_createcluster 16 main --start
systemctl enable postgresql
systemctl start postgresql

Zugang zur DB:

su - postgres

Datenbank anlegen:

psql
CREATE DATABASE nextcloud;
CREATE USER nextcloud WITH PASSWORD 'DEIN_SICHERES_PASSWORT';
GRANT ALL PRIVILEGES ON DATABASE nextcloud TO nextcloud;
\q

Dann wieder raus:

exit

🔄 Redis konfigurieren

[Platzhalter: Warum Redis wichtig ist (Caching, File Locking, keine APCu mehr).
Nur lokal via Socket, daher keine Authentifizierung nötig.]

Redis-Zugriffsrechte setzen

usermod -aG redis www-data

Note

Dadurch kann der Webserver-User (www-data) auf den Redis-Socket zugreifen.

Redis-Konfiguration prüfen

nano /etc/redis/redis.conf

Die folgenden Zeilen sollten gesetzt sein (oder geändert werden):

supervised systemd
unixsocket /var/run/redis/redis-server.sock
unixsocketperm 770

Tip

Weitere Einstellungen wie bind oder requirepass brauchst du nicht,
solange du Redis nur lokal über den Socket nutzt.

Redis neu starten:

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.