Zum Inhalt springen

Gespräch:Installation NextCloud

aus AufEinWort, der freien Forschung

Über diese Seite Gespräch


Hilf mir bei der Installation

Sophos:


Gerne, welche Installation möchtest du ausführen?

Nikolaos:

Wir wollen zusammen NextCloud installieren und einrichten

Nachfolgend die Informationen von dir für dich aus dem vorangegangenen Chat, mittels dem wir zuletzt WireGuard installiert konfiguriert und zum Laufen gebracht haben:

Wichtige Infos zum M1-Server & Setup für Nextcloud

1️⃣ Betriebssystem & Architektur:

• macOS (M1, ARM-Architektur)

• Homebrew als Paketmanager

2️⃣ Aktuelle Server-Dienste & Abhängigkeiten:

• WireGuard (läuft & ist stabil)

• dnsmasq als interner DNS-Resolver

• Apache (httpd über Homebrew) mit PHP 8.2

• MySQL oder MariaDB (PHPMyAdmin läuft)

• Let’s Encrypt für SSL-Zertifikate

3️⃣ Netzwerkeinstellungen & Ports:

• DNS-Server: M1 selbst (192.168.2.3)

• Domain: aewi.de

• Portweiterleitungen: Fritz!Box (nur UDP für WireGuard aktiv, HTTP/S je nach Bedarf)

• LAN-Dienste: Web-Apps laufen nur intern über dnsmasq

4️⃣ Nextcloud-spezifische Fragen:

• Wo soll Nextcloud installiert werden? (/opt/homebrew/... oder /var/www/...?)

• Welcher Datenbankserver wird genutzt? (MySQL/MariaDB)

• Welche PHP-Version ist aktiv? (PHP 8.2 ist installiert)

• Soll Redis für Caching verwendet werden?

5️⃣ Sonstiges & Besonderheiten:

• Automatische Updates sind deaktiviert (manuelle Kontrolle über neue Versionen)

• M1 ist kein exposed Server (läuft hinter der Fritz!Box, nur VPN-Zugriff)

• Geplante Nutzung: Nextcloud für private & geschäftliche Nutzung, evtl. mit KI-Agenten

Ende.

Meine Informationen zur Installation des M1:

1. Nutzername AEWI

2. Nutzerverzeichnis aewi

3. Feste LAN IP Adresse 192.168.2.3
4. Router Fritz!Box IP Adresse 192.168.2.1
Wird ist nur als Internetrouter, für Firewall und Port ist nur UDP für Wireguard VPN eingerichtet. 
5. Xcode 15.2 ist installiert

6. Homebrew 4.4.20 ist bereits installiert und geprüft.
7. dnsmasq version 2.90
dnsmasq wurde für LAN Umleitungen auf den WebServer installiert, um Anfragen aus dem LAN direkt zum Server und nicht über das Internet zu leiten.
dnsmasq ist auch DNS Server
8. Apache wird mittels Homebrew ist installiert
Eingerichtet auf https, SSL mit Cerbot Zertifikat.
Apache bereits bereits stabil mit PHP und SSL

9. php8.2 ist installiert
der Server ist unter https://192.168.2.3:8443/info.php erreichbar und zeigt die Meldung PHP funktioniert!
10. Der Server ist getestet und aewi.de ist intern über WLAN, LAN und über WEB über https erreichbar, http wird auf https umgeleitet.
11. MySql 8.4 ist installiert
12.phpMyAdmin ist installiert
11. WireGuard ist installiert

Wir legen jedoch nicht gleich mit der Installation los, sondern klären zuerst noch aufkommende Fragen.

2/2

Sophos:


Alles klar, bevor wir mit der Installation loslegen, klären wir offene Punkte, um ein stabiles Setup für Nextcloud sicherzustellen. Ich habe auf Basis der vorhandenen Serverkonfiguration einige Fragen und Empfehlungen zusammengestellt:

🔎 Fragen & Klärung vor der Installation

1️⃣ Installationspfad:

  • Wo soll Nextcloud installiert werden?
    • Standard: /opt/homebrew/var/www/nextcloud (Homebrew-Umgebung)
    • Alternativ: /var/www/nextcloud (systemweite Installation)
    • Empfehlung: Wenn du Apache über Homebrew nutzt, wäre /opt/homebrew/var/www/nextcloud der sauberste Weg.

2️⃣ Datenbank-Setup:

  • MySQL 8.4 oder MariaDB? (Nextcloud unterstützt beides, aber MariaDB ist oft besser optimiert.)
  • Datenbank-Benutzer: Soll ein spezieller nextcloud-Benutzer mit eingeschränkten Rechten erstellt werden?

3️⃣ PHP-Konfiguration:

  • PHP 8.2 ist bereits installiert – sollen spezifische Module geprüft/aktiviert werden?
    • Notwendig: php-mysql, php-curl, php-gd, php-mbstring, php-intl, php-xml, php-zip, php-bcmath
    • Frage: Sollen wir Redis für Caching aktivieren? (Verbessert die Performance deutlich)

4️⃣ Speicher- & Datenverzeichnis:

  • Wo sollen die Nextcloud-Daten gespeichert werden?
    • Standard: /opt/homebrew/var/www/nextcloud/data
    • Alternative: Separater Pfad, z. B. auf einer externen SSD oder NAS?
  • Empfehlung: Falls du größere Datenmengen speicherst, wäre eine separate Partition/NAS-Anbindung sinnvoll.

5️⃣ SSL & Domains:

  • Du hast Let’s Encrypt & Apache mit HTTPS konfiguriert.
  • Soll Nextcloud über eine Subdomain laufen? (z. B. cloud.aewi.de statt aewi.de/nextcloud)
  • Falls ja, muss ein VirtualHost für Apache erstellt werden.

6️⃣ Zugriff & Netzwerk:

  • Nextcloud soll nur im internen LAN oder auch von extern über VPN erreichbar sein?
  • Falls auch extern: Wäre eine Portfreigabe in der Fritz!Box nötig?
  • Alternativ: Zugriff nur über WireGuard-Tunnel?

7️⃣ Cron-Job für Hintergrundaufgaben:

  • Nextcloud benötigt einen Cron-Job zur Wartung. Soll dieser per cron oder systemd eingerichtet werden?

8️⃣ Apps & Erweiterungen:

  • Gibt es bestimmte Nextcloud-Apps, die von Anfang an mit installiert werden sollen?
  • Z. B. OnlyOffice, Talk (Videokonferenzen), End-to-End-Verschlüsselung?

Das sind die wichtigsten Fragen, um sicherzustellen, dass die Installation optimal für deinen Einsatzzweck passt. Beantworte sie einfach nach Priorität, dann erstellen wir einen konkreten Installationsplan! 😊

Nikolaos:

1. Installationspfad:  Standard /opt/homebrew/var/www/nextcloud (Homebrew-Umgebung) jedoch als Systemweiter Dienst über sudo starten.

2. Datenbank-Setup: nur eine Datenbank software MySQL 8.4

3. PHP-Konfiguration: ist php-fpm, alles Weitere nach Bedarf

Redis Caching hae ich keinen Schimmer, was man damit macht. Zu beachten ist, dass MediaWiki installiert wird und dort wird ElasticSearch, CirrusSwarch und Elastica verwendet. Kompatibilität zu Reddis ist zu klären.

Größere Datenmengen gibt es an sich nur für die youtube-Videos. Derzeit hat die zu migrierende MediaWiki insgesamt 14GB und nur 1GB MySQL-Daten.

4. Speicher- & Datenverzeichnis:

Alternative: Separater Pfad, z. B. auf einer externen SSD oder NAS gegebenenfalls über Alias. Es besteht bereist eine 400GB Partition für Daten

5.  SSL & Domains:

Nextcloud soll über eine Subdomain laufen. (z. B. cloud.aewi.de)

VirtualHost muß für Apache erstellt werden.

6. Zugriff & Netzwerk:

Nextcloud soll im internen LAN oder auch von extern über VPN erreichbar sein. dnsmasq hält alles im LAN, was an Diensten der M! ausführt.

7. Cron-Job für Hintergrundaufgaben:

per cron oder systemd einrichten was besser und einfacher ist.

8. Apps & Erweiterungen:

Wir haben nur Zugriffe von außen auf den Server über VPN. NextCloud dient vorerst der KI-Anbindung. Es soll ein Lokaler Server sein, zu dem weitere Server hinzukommen, so daß man bis auf Internetzugang und OpenAI nicht von externen Dienstanbietern abhängig ist, vergleichsweise kein Google-Drive benötigt.

Sophos:


Super, mit diesen Informationen können wir nun einen strukturierten Installationsplan für Nextcloud erstellen. Ich berücksichtige dabei alle Vorgaben und die bestehende Umgebung.

📌 Installationsplan für Nextcloud auf dem M1-Server

🔹 1. Vorbereitung & Voraussetzungen prüfen

✔ Homebrew Apache (httpd) ist installiert & läuft

✔ MySQL 8.4 ist installiert & getestet

✔ PHP 8.2 läuft über php-fpm

✔ dnsmasq ist konfiguriert und regelt interne DNS-Weiterleitungen

✔ SSL-Zertifikate mit Let’s Encrypt sind vorhanden

✔ Eigene 400GB-Partition für Daten vorhanden

🔹 2. Installation von Nextcloud

📍 Installationspfad: /opt/homebrew/var/www/nextcloud

📍 Betrieb als systemweiter Dienst: via sudo mit launchctl (macOS equivalent zu systemd)

1️⃣ Nextcloud herunterladen & entpacken

sh

KopierenBearbeiten

cd /opt/homebrew/var/www

sudo curl -o nextcloud.zip https://download.nextcloud.com/server/releases/latest.zip

sudo unzip nextcloud.zip

sudo rm nextcloud.zip

sudo mv nextcloud nextcloud-temp && sudo mv nextcloud-temp nextcloud

2️⃣ Rechte & Benutzer setzen

sh

KopierenBearbeiten

sudo chown -R _www:_www /opt/homebrew/var/www/nextcloud

sudo chmod -R 755 /opt/homebrew/var/www/nextcloud

Hinweis: _www ist der Standard-User für Apache unter macOS.

🔹 3. Datenbank für Nextcloud einrichten

📍 MySQL-User & Datenbank anlegen

sh

KopierenBearbeiten

mysql -u root -p

Dann im MySQL-Prompt:

sql

KopierenBearbeiten

CREATE DATABASE nextcloud;

CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'sicheres_passwort';

GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';

FLUSH PRIVILEGES;

EXIT;

🔹 4. Apache VirtualHost für Nextcloud konfigurieren

📍 Neuen VirtualHost für cloud.aewi.de anlegen

sh

KopierenBearbeiten

sudo nano /opt/homebrew/etc/httpd/extra/httpd-vhosts.conf

Dann folgende Konfiguration hinzufügen:

apache

KopierenBearbeiten

<VirtualHost *:443>

    ServerName cloud.aewi.de

    DocumentRoot "/opt/homebrew/var/www/nextcloud"

   

    <Directory "/opt/homebrew/var/www/nextcloud">

        AllowOverride All

        Require all granted

    </Directory>

    SSLEngine on

    SSLCertificateFile /etc/letsencrypt/live/cloud.aewi.de/fullchain.pem

    SSLCertificateKeyFile /etc/letsencrypt/live/cloud.aewi.de/privkey.pem

    ErrorLog "/opt/homebrew/var/log/httpd/cloud.aewi.de-error.log"

    CustomLog "/opt/homebrew/var/log/httpd/cloud.aewi.de-access.log" combined

</VirtualHost>

Dann Apache neu laden:

sh

KopierenBearbeiten

sudo apachectl restart

🔹 5. PHP-FPM für Nextcloud optimieren

📍 PHP-Module sicherstellen

sh

KopierenBearbeiten

brew install php@8.2

brew install redis

📍 Redis für Performance nutzen

Redis verbessert die Performance erheblich, indem es häufig genutzte Daten zwischenspeichert.

1️⃣ Redis als Dienst starten

sh

KopierenBearbeiten

brew services start redis

2️⃣ Nextcloud für Redis konfigurieren

sh

KopierenBearbeiten

sudo nano /opt/homebrew/var/www/nextcloud/config/config.php

Folgendes hinzufügen:

php

KopierenBearbeiten

'memcache.local' => '\OC\Memcache\Redis',

'redis' => array(

    'host' => 'localhost',

    'port' => 6379,

),

📍 Wichtig:

MediaWiki nutzt Elasticsearch, CirrusSearch und Elastica – Diese sind unabhängig von Redis, es gibt keine Inkompatibilität.

🔹 6. Hintergrundprozesse für Nextcloud aktivieren

📍 Cron-Job für Nextcloud aktivieren

sh

KopierenBearbeiten

crontab -u _www -e

Dann folgendes einfügen:

sh

KopierenBearbeiten

*/5 * * * * /usr/local/bin/php -f /opt/homebrew/var/www/nextcloud/cron.php

📍 Alternative: Falls launchctl gewünscht ist, kann eine plist erstellt werden.

🔹 7. Abschluss der Installation

📍 Nextcloud-Setup im Browser starten

  1. Im Browser öffnen: https://cloud.aewi.de
  2. Admin-Benutzer anlegen
  3. MySQL-Datenbankverbindung angeben:
    • Datenbankname: nextcloud
    • Benutzername: nextcloud
    • Passwort: sicheres_passwort
    • Host: localhost
  1. Installation abschließen & testen! 🎉

🔹 Nächste Schritte nach der Installation

✅ Backup-Strategie überlegen (Datenbank + Nextcloud-Daten)

✅ Nextcloud-Apps installieren (z. B. KI-Integration, OnlyOffice, Talk)

✅ Zugriffsrechte prüfen (nur VPN, kein öffentlicher Zugriff)

❓ Noch Fragen oder Anpassungen?

Falls wir noch etwas optimieren müssen oder du etwas anders haben möchtest, lass es mich wissen! 🚀

Nikolaos:

Es gibt da noch hier und da etwas hinzuzufügen, wenn wir soweit sind, vergleichsweise muß ich die Subdomain bei Selfhost einrichten und wie in den Konfigurationen httpd, SSL, PHP  und dnsmasq einbinden.

Backupstrategie ist einfach inkrementales Backup durch Timemachine von Apple.

Noch weitere Fragen oder Anmerkungen – Ja oder Nein?

Sophos:


Nein, alles ist soweit klar. Sobald du die Subdomain bei Selfhost eingerichtet hast und die Anpassungen in httpd, SSL, PHP und dnsmasq durchführst, können wir die letzten Feineinstellungen vornehmen. 🚀

Melde dich einfach, sobald du bereit bist für die nächsten Schritte! 😊

Nikolaos:

Ich lege also ersteinmal cloud.aewi.de an, gibt es noch weitereVorbereitungen, die vor der Installation erledigt sein müssen?

Die Cloud dient vornehmlich der KI-Umgebung und dem MediaWiki. Ich selbst arbeite mit der Apple Umgebung und ICloud. Es kann notwendig sein, diese miteinander zu verbinden. Ansonsten sind auch API Dienste einzurichten.

Sophos:


Ja, es gibt noch einige sinnvolle Vorbereitungen, die wir vor der Installation erledigen können, um die Integration mit der KI-Umgebung, MediaWiki und ggf. Apple iCloud zu erleichtern. Hier sind die Punkte, die du jetzt schon vorbereiten kannst:

📌 Wichtige Vorbereitungen vor der Installation

🔹 1. Subdomain cloud.aewi.de bei Selfhost einrichten

✅ DNS-Eintrag setzen:

  • A-Record → 192.168.2.3 (internes Netz, da dnsmasq aktiv ist)
  • Falls externer Zugriff über VPN → Kein öffentlicher A-Record notwendig ✅ Wildcard-Zertifikat mit Let’s Encrypt prüfen
  • Falls mehrere Dienste auf *.aewi.de laufen, wäre ein Wildcard-Zertifikat sinnvoll

🔹 2. Apache, SSL & PHP für Nextcloud vorbereiten

✅ Apache VirtualHost für Nextcloud (haben wir oben schon definiert)

✅ SSL-Zertifikat mit Let's Encrypt anfordern, falls nicht bereits aktiv

sh

KopierenBearbeiten

sudo certbot --apache -d cloud.aewi.de

✅ PHP-FPM für Apache richtig einbinden

Falls PHP noch nicht über mod_proxy_fcgi läuft, müssen wir das aktivieren:

sh

KopierenBearbeiten

sudo nano /opt/homebrew/etc/httpd/httpd.conf

Aktivieren:

apache

KopierenBearbeiten

LoadModule proxy_module lib/httpd/modules/mod_proxy.so

LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so

✅ PHP-FPM Socket für Nextcloud

sh

KopierenBearbeiten

sudo nano /opt/homebrew/etc/php/8.2/php-fpm.conf

Prüfen, ob folgender Eintrag vorhanden ist:

ini

KopierenBearbeiten

listen = /tmp/php-fpm.sock

Danach Apache neu starten:

sh

KopierenBearbeiten

sudo apachectl restart

🔹 3. dnsmasq anpassen

Falls du möchtest, dass Nextcloud intern über cloud.aewi.de und nicht über 192.168.2.3 erreichbar ist, dann:

sh

KopierenBearbeiten

sudo nano /opt/homebrew/etc/dnsmasq.conf

Hinzufügen:

ini

KopierenBearbeiten

address=/cloud.aewi.de/192.168.2.3

Dann dnsmasq neu starten:

sh

KopierenBearbeiten

sudo brew services restart dnsmasq

🔹 4. Speicher & iCloud-Integration

Da du iCloud nutzt, kann es sinnvoll sein, eine Synchronisation zwischen Nextcloud und iCloud einzurichten.

📌 Option 1: WebDAV für iCloud-Zugriff auf Nextcloud

  • iCloud bietet kein direktes WebDAV, aber es gibt Workarounds über icloudpd
  • Alternativ kann man von iCloud Drive in Nextcloud synchronisieren

Falls du z. B. iCloud Drive automatisch mit Nextcloud synchronisieren möchtest, kannst du ein Skript auf dem M1 erstellen, das iCloud-Daten in Nextcloud kopiert.

🔹 5. KI & API-Dienste vorbereiten

Nextcloud kann API-Dienste für KI und MediaWiki bereitstellen. Dafür sind folgende Vorbereitungen sinnvoll:

✅ API-Unterstützung in Nextcloud aktivieren

  • Standardmäßig ist die REST-API aktiv
  • Falls du externe Dienste anbinden willst, kann nextcloud/apps/files_external für externe Speicher wichtig sein
  • Falls du OpenAI- oder KI-Module einbinden willst, kann das mit Webhooks oder einer API-Schnittstelle geschehen

✅ OAuth2 / OpenID Connect für sichere Authentifizierung

Falls du möchtest, dass MediaWiki oder andere Systeme sich per OAuth2 mit Nextcloud verbinden, muss das in Nextcloud aktiviert werden:

  1. Nextcloud-Admin → Sicherheit → OAuth2 aktivieren
  2. Client-Zugänge für MediaWiki oder andere KI-Instanzen erstellen

✅ Verbindung zu MediaWiki klären

MediaWiki nutzt ElasticSearch, CirrusSearch und Elastica, daher müssen wir prüfen:

  • Soll Nextcloud Dateien für MediaWiki bereitstellen?
  • Sollen MediaWiki-User sich mit Nextcloud authentifizieren?
  • Welche API-Daten werden zwischen den beiden Systemen ausgetauscht?

🔹 6. Backupstrategie prüfen

Du nutzt Time Machine für inkrementelle Backups, was super ist.

Zusätzliche Absicherung:

✅ Datenbank-Backups von Nextcloud (MySQL Dump)

sh

KopierenBearbeiten

mysqldump -u root -p nextcloud > /path/to/backup/nextcloud.sql

✅ Zusätzlich Cronjob für Nextcloud-Daten

Falls du nicht alle Nextcloud-Daten in Time Machine haben willst, könnte ein dediziertes Backup-Tool sinnvoll sein, z. B. rsync oder restic.

🛠 Nächste Schritte

📌 1. Subdomain bei Selfhost einrichten

📌 2. Apache VirtualHost, SSL und PHP-FPM finalisieren

📌 3. dnsmasq für interne Erreichbarkeit anpassen

📌 4. iCloud-Integration überlegen (WebDAV oder lokale Synchronisation)

📌 5. APIs für KI & MediaWiki vorbereiten

📌 6. Backupstrategie ergänzen (MySQL-Dumps + Time Machine)

Wenn du diese Vorbereitungen abgeschlossen hast, können wir mit der Installation von Nextcloud starten! 🚀

Falls du Fragen zu einem der Punkte hast, einfach Bescheid geben! 😊

Nikolaos:

Wieviel RAM brauchen Reddis und Netzcloud?

2/2

Sophos:


Der RAM-Bedarf für Redis und Nextcloud hängt stark von der Nutzung und der Anzahl der gleichzeitigen Nutzer ab. Ich gebe dir eine grobe Einschätzung für dein Setup.

📌 RAM-Bedarf für Redis

Redis speichert Daten im Arbeitsspeicher, daher hängt der RAM-Bedarf stark davon ab, welche Funktionen genutzt werden.

Redis-Funktion Geschätzter RAM-Bedarf
Nur für Nextcloud-Caching (Standard-Setup) 100–300 MB
Mit File-Locking für viele Dateien (> 10.000) 300–500 MB
Mit MediaWiki-Caching (Erweiterungen: CirrusSearch, Elastica, ElasticSearch) 500 MB – 1 GB
Volle Nutzung als Object-Cache (Nextcloud & MediaWiki & evtl. KI-Dienste) 1 – 2 GB

👉 Empfehlung für dein Setup:

  • Falls du Redis nur für Nextcloud-File-Locking & Session-Caching nutzt → 300 MB reichen locker
  • Falls du Redis zusätzlich für MediaWiki-Caching & ElasticSearch nutzt → 1 GB sollte eingeplant werden

Du kannst Redis aber mit einer Maximalgrenze konfigurieren, damit es nicht zu viel RAM verbraucht:

sh

KopierenBearbeiten

sudo nano /opt/homebrew/etc/redis.conf

Dort hinzufügen:

ini

KopierenBearbeiten

maxmemory 512mb

maxmemory-policy allkeys-lru

Das sorgt dafür, dass Redis alte Daten löscht, wenn der Speicher knapp wird.

📌 RAM-Bedarf für Nextcloud

Der RAM-Bedarf von Nextcloud hängt von mehreren Faktoren ab:

  • Anzahl gleichzeitiger Nutzer (bei dir vorerst gering)
  • Apps & Erweiterungen (z. B. OnlyOffice, KI-Module)
  • Caching (Redis aktiviert oder nicht?)
Nutzungsszenario Min. RAM Empfohlener RAM
Leichte Nutzung (1–5 User, nur File-Sharing) 512 MB 1 GB
Mittlere Nutzung (5–10 User, mit WebDAV & KI-Diensten) 1 GB 2 GB
Schwere Nutzung (10+ User, Office-Apps, KI-Verarbeitung, große Dateien) 2 GB 4+ GB

👉 Empfehlung für dein Setup:

  • Da Nextcloud hauptsächlich für KI-Dienste & MediaWiki genutzt wird, sollte es mindestens 1 GB RAMbekommen.
  • Falls du KI-Modelle direkt in Nextcloud laufen lässt, kann es mehr als 2 GB benötigen.
  • Redis reduziert die RAM-Belastung für MySQL & PHP, daher lohnt sich die Aktivierung.

🔹 Gesamtfazit für dein M1-Server-Setup

  • Redis: 300 MB – 1 GB
  • Nextcloud: 1 – 2 GB
  • MediaWiki, MySQL, Apache & andere Prozesse: 2 GB+

🔹 Gesamt-RAM-Bedarf: Mindestens 4 GB verfügbar halten für Nextcloud, Redis, MediaWiki & Co.

Da dein MacBook 16 GB RAM hat, reicht das locker aus. 🎯

Falls der RAM knapp wird, können wir mit Monitoring-Tools wie htop oder top den Verbrauch optimieren. 🚀

Nikolaos:

Da werde ich den M1 auf 36GB aufrüsten müssen. Es sind schon etwa 9,5GB von 16GB in Nutzung. Allerdings ist der M1 nur Server. Ich habe noch einen M2 im LAN für meine Forschung und Entwicklung, auf dem die Programme laufen, die ich nutze. Es gibt also keine User am M1.

2/2

Sophos:


Ja, mit der aktuellen RAM-Auslastung von 9,5 GB von 16 GB und den zusätzlichen Diensten für Nextcloud, Redis und MediaWiki wäre eine Aufrüstung auf 36 GB RAM eine sehr sinnvolle Entscheidung. Hier sind die Überlegungen dazu:

📌 Warum eine RAM-Erweiterung sinnvoll ist

1️⃣ Aktuelle RAM-Nutzung ist bereits hoch (9,5 GB von 16 GB)

  • Das bedeutet, dass das System bereits in den Swap-Speicher gehen könnte, was die Performance verlangsamt.

2️⃣ Nextcloud, MediaWiki, Redis, MySQL & KI-Dienste brauchen mehr RAM

  • Nextcloud (1-2 GB), Redis (bis 1 GB), MediaWiki mit ElasticSearch (2+ GB)
  • MySQL- und Apache-Prozesse (zusätzlich 2+ GB)
  • Hintergrunddienste (VPN, dnsmasq, Time Machine-Backups, PHP-FPM, etc.)

3️⃣ Der M1 ist ein dedizierter Server, keine User-Last, aber viele Prozesse

  • Da du keinen direkten User-Zugriff hast, aber KI- & Cloud-Dienste laufen, benötigt das System optimierte Speicherverwaltung.

4️⃣ Mehr RAM reduziert die Belastung für die SSD

  • macOS nutzt Swap-Speicher, wenn der RAM knapp wird.
  • Swap-Zugriffe belasten die SSD langfristig – das wollen wir vermeiden.
  • Mit 36 GB RAM bleibt mehr im Speicher und Swap wird minimiert.

📌 Alternative Optionen ohne sofortiges RAM-Upgrade

Falls du noch nicht direkt auf 36 GB gehen willst, kannst du vorübergehend:

✔ Redis mit Maximal-RAM-Begrenzung fahren

✔ Nextcloud mit weniger aktiven Apps starten

✔ ElasticSearch erst nach der Hauptinstallation aktivieren

Falls du sagst: Ich will keine Kompromisse → 36 GB RAM direkt einbauen. 🚀

Das bringt den besten langfristigen Nutzen, gerade wenn weitere Server & KI-Anwendungen dazukommen.

📌 Fazit

  • 36 GB RAM ist eine sehr sinnvolle Investition, um den M1 als stabilen Server für Nextcloud, MediaWiki & KI-Dienste zu betreiben.
  • Falls du erst testen willst, könnten wir mit der aktuellen 16 GB-Konfiguration starten, aber dann müssten wir einige Limits setzen.
  • Mein Vorschlag: Direkt auf 36 GB aufrüsten, um Performance-Probleme & Swap-Zugriffe zu vermeiden.

👉 Wie entscheidest du dich? Soll ich die Installation so planen, dass sie erst mit der RAM-Aufrüstung gemacht wird? 😊

Nikolaos:

Ich habe mich da falsch informiert. M1 ist bereits mit gelötetem RAM. Dann reicht der Mac Mini nicht für die Cloud Anwendung und ich installiere nur MediaWiki und sobald ich den M1 gegen einen mit 32GB ersetzt habe mach wir weiter mit Nextcloud und Reddis.

Dann gehe ich nun mit dir zum Chat für die Einrichtung von MySQL über.

3/4

Sophos:


Alles klar, dann fokussieren wir uns jetzt auf die MediaWiki-Installation und MySQL-Einrichtung und setzen Nextcloud & Redis zurück, bis du den M1 mit 32 GB RAM hast.

📌 Einrichtung von MySQL für MediaWiki

Da MySQL 8.4 bereits installiert ist und phpMyAdmin läuft, müssen wir nun:

  1. Eine neue MySQL-Datenbank für MediaWiki anlegen
  2. Einen dedizierten Benutzer mit sicheren Rechten erstellen
  3. MediaWiki mit der Datenbank verbinden

🔹 1. Datenbank für MediaWiki anlegen

Starte MySQL im Terminal:

sh

KopierenBearbeiten

mysql -u root -p

Nun die neue Datenbank erstellen:

sql

KopierenBearbeiten

CREATE DATABASE mediawiki CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

(utf8mb4 ist notwendig für volle Unicode-Unterstützung, z. B. Emojis, Sonderzeichen in Wiki-Texten.)

🔹 2. Benutzer für MediaWiki anlegen

Damit MediaWiki nicht als Root-Nutzer auf die Datenbank zugreift, erstellen wir einen eigenen User:

sql

KopierenBearbeiten

CREATE USER 'wikiuser'@'localhost' IDENTIFIED BY 'sicheres_passwort';

GRANT ALL PRIVILEGES ON mediawiki.* TO 'wikiuser'@'localhost';

FLUSH PRIVILEGES;

EXIT;

Jetzt haben wir:

✅ Eine Datenbank: mediawiki

✅ Einen Benutzer: wikiuser

✅ Berechtigungen sind gesetzt

🔹 3. MediaWiki mit der Datenbank verbinden

Falls MediaWiki noch nicht installiert ist:

sh

KopierenBearbeiten

cd /Library/WebServer/Documents/mediawiki

php maintenance/install.php --dbname mediawiki --dbuser wikiuser --dbpass 'sicheres_passwort' --scriptpath /mediawiki --server "https://aewi.de" --lang de --pass 'admin_passwort' "AufEinWort" "AdminUser"

  • "AufEinWort" ist der Name des Wikis
  • "AdminUser" ist der Standard-Admin
  • admin_passwort kannst du später ändern

📌 Falls MediaWiki bereits installiert ist, müssen wir nur in LocalSettings.php die Datenbankverbindung eintragen:

sh

KopierenBearbeiten

sudo nano /Library/WebServer/Documents/mediawiki/LocalSettings.php

Dort sicherstellen, dass folgendes gesetzt ist:

php

KopierenBearbeiten

$wgDBtype = "mysql";

$wgDBserver = "localhost";

$wgDBname = "mediawiki";

$wgDBuser = "wikiuser";

$wgDBpassword = "sicheres_passwort";

$wgDBprefix = "wiki_";

$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=utf8mb4";

🔹 4. MySQL-Datenbank testen & Fehler beheben

Nach der Konfiguration prüfen wir, ob MySQL funktioniert:

sh

KopierenBearbeiten

mysql -u wikiuser -p mediawiki -e "SHOW TABLES;"

Falls Fehler auftreten:

sh

KopierenBearbeiten

tail -f /Library/WebServer/Documents/mediawiki/debug.log

Wenn Tabellen fehlen, kann MediaWiki sie neu erstellen:

sh

KopierenBearbeiten

cd /Library/WebServer/Documents/mediawiki

php maintenance/update.php

🔹 5. MySQL für bessere Performance optimieren

Wir passen die MySQL-Konfiguration für MediaWiki an:

sh

KopierenBearbeiten

sudo nano /etc/my.cnf

Folgendes hinzufügen:

ini

KopierenBearbeiten

[mysqld]

innodb_buffer_pool_size = 512M

max_connections = 100

query_cache_size = 128M

Dann MySQL neu starten:

sh

KopierenBearbeiten

brew services restart mysql

✅ Abschluss & nächster Schritt

✅ Datenbank ist angelegt & MediaWiki ist verbunden

✅ MySQL wurde optimiert & getestet

✅ Nächster Schritt: MediaWiki Extensions (ElasticSearch, CirrusSearch) einrichten

👉 Läuft die Datenbank jetzt stabil? Sollen wir mit der MediaWiki-Optimierung weitermachen? 😊