website/src/anleitungen/nextcloud.html

88 lines
4.6 KiB
HTML

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title></title>
<link href="../scss/style.scss" rel="stylesheet">
</head>
<body>
<jl-header data-title="Nextcloud auf Proxmox"></jl-header>
<div id="content">
<p>
Im folgenden werde ich Verständlich erklären, wie man eine <a href="//nextcloud.com/">Nextcloud</a> auf
einem <a href="//alpinelinux.org/">Alpine Linux</a> LXC Container unter Proxmox installiert. Ich setze als
Betriebssystem auf Alpine Linux, da es im gegensatz zu debian extrem klein ist (der basis LXC Container ist
nur 2,5mb groß) und trotzdem super einfach zu verwalten ist.<br>
Als erstes muss ein Container angelegt werden, hierbei empfehle ich bei der Nextcloud 2 Kerne und 2 GB RAM.
Speicher hängt von der größe der Cloud später ab. Alle Werte können nachträglich abgeändert werden, falls
diese zu klein sind.<br>
Nachdem der LXC aufgesetzt wurde können wir damit anfangen ihn upzudaten und ein paar nützliche tools zu
installieren:
<pre>
<code class="language-bash">apk update
apk upgrade
apk add nano htop openssh-server wget
rc-update add sshd
rc-service sshd start</code>
</pre>
Nun können wir entweder weiter auf der Konsole arbeiten oder uns via SSH verbinden.<br>
Im nächsten Schritt können wir nun apache mit PHP installieren. Danach setzen wir den apache noch auf autostart
und zu guter letzt starten wir ihn:
<pre>
<code class="language-bash">apk add apache2 php8-apache2 php8-zip php8-xml php8-dom php8-xmlwriter php8-ctype php8-gd php8-iconv php8-simplexml php8-curl php8-pdo php8-mbstring php8-cli php8-session php8-pdo_pgsql php8-xmlreader php8-openssl
rc-update add apache2
rc-service apache2 start</code>
</pre>
Nachdem unser Webserver nun läuft müssen wir noch den Datenbank Server installieren. Hierbei setze ich auf
PostgreSQL, im Gegensatz zu MySQL läuft dieser einiges performanter, was sich später auch in der Nextcloud
bemerkbar macht.
<pre>
<code class="language-bash">apk add postgresql
rc-update add postgresql
rc-service postgresql start</code>
</pre>
Nachdem wir unseren PostgreSQL Server installiert haben, müssen wir noch eine Datenbank und einen entsprechenden
Nutzer mit Passwort anlegen. Dazu müssen wir uns als erstes auf den Datenbankserver verbinden. Dazu müssen wir
zuerst mit <code class="language-bash">su postgres</code> auf den Datenbanknutzer wechseln. Danach können wir
uns
mit <code class="language-bash">psql</code> verbinden. Wenn dies erfolgreich funktioniert hat können wir unsere
Datenbank und unseren Nutzer anlegen:
<pre>
<code class="language-sql">CREATE ROLE nextcloud with PASSWORD 'your-password' LOGIN;
CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON DATABASE nextcloud TO nextcloud;
\q
exit</code>
</pre>
Nun haben wir alle vorbereitungen getroffen und können die eigentlich Nextcloud installieren. Dazu wechseln wir
in den Ordner vom Apache und laden uns das install script herunter:
<pre>
<code class="language-bash">cd /var/www/localhost/htdocs
rm index.html
wget https://download.nextcloud.com/server/installer/setup-nextcloud.php
chown apache /var/www/localhost/htdocs/ -R</code>
</pre>
Dieses script können wir nun über die IP unseres LXC Containers aufrufen und dort der Setup-Anleitung folgen.
Beim Installationsordner können wir ein . eingeben, damit wird die Nextcloud in den aktuellen Ordner
installiert. Nachdem dieser Schritt erfolgreich durchlaufen ist landen wir auf der Setup-Seite, dort müssen wir
unsere Datenbank und unseren admin Nutzer wie unten im Bild zu sehen angeben. Falls gewünscht unten den Haken
bei den empfohlenden Anwendungen entfernen.<br>
<img src="../assets/img/nextcloud-setup.png"><br>
Nachdem die Datenbank angelegt und alle Apps installiert wurden, solltest du auf der Startseite der Nextcloud
gelandet sein. Optional kann nun für mehr performance noch ein Memory-Caching konfiguriert werden. Wie dieses
eingerichtet ist, kann dem <a
href=https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html">Handbuch</a>
entnommen werden.
</p>
<h2>Kommentare:</h2>
<jl-comments_display></jl-comments_display>
<jl-new_comment id="newComment"></jl-new_comment>
</div>
<jl-footer></jl-footer>
<script src="../js/script.js" type="module"></script>