Unterschiede zwischen den Revisionen 1 und 2
Revision 1 vom 2012-08-31 14:13:31
Größe: 964
Kommentar:
Revision 2 vom 2026-09-01 13:27:48
Größe: 6985
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 29: Zeile 29:

== Content Server - Nextcloud AIO ==

==== Erstellen der VM ====
Das Grundgerüst besteht aus einem Debian 13 (Trixie) Betriebsystem. Gerne OHNE UI um Perfomance zu sparen.

Für einen Erstellung einer VM für ca. '''50''' User wird empfohlen:

Speicherplatz:

Hierbei wird langsamer und schneller Speicher eingebunden

An schnellem Speicher sollten '''80'''GB zur Verfügung zu stehen. An langsamen Speicher sollte es '''200'''GB und '''400'''GB jeweils geben.

Arbeitsspeicher:

Hierbei wird '''10240'''MB empfohlen.

CPU:

Hier werden '''8''' Kerne empfohlen.

Der Server sollte im Netzwerk von dem Tjener bereit stehen.

==== Installation Docker ====

Um Docker zu installieren müssen sie die folgenden Schritte beachten:

Ersteinmal muss der offizielle GPG key hinzugefügt werden, danach wird wird da Repository den Apt-sources zugefügt.
{{{
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update

}}}

Jetzt installieren wir Docker:
{{{
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
}}}

Nachdem wir das installieren haben, verifizieren wir einmal das Docker läuft.
{{{
sudo systemctl status docker
}}}

==== Installation Nginx ====

==== Installation Nextcloud-AIO ====

Zum Installieren nutzen wir https://github.com/nextcloud/all-in-one

Dies Installieren wir über ein Bash Script welches wie folgend aussieht.
{{{
#!/bin/bash

#Auf der gefundenen IP-Adresse soll der Server dann erreichbar sein
server_ipadress=$(ip route get 1.1.1.1 | grep -oP 'src \K[^ ]+')

#Variable zum editieren der config.php Datei um Beispiel Dateien bei neuen Usern zu verhindern
datei="/var/lib/docker/volumes/nextcloud_aio_nextcloud/_data/config/config.php"
#Variable welche das Wort enthält welches vor dem neu Eingefügten Text steht
suchzeile="'installed'"
#Diese Zeile verhindert das Beispiel Dateien bei neuen Usern erstellt werden.
einfuegtext="'skeletondirectory' => '',"

if ! command -v docker &> /dev/null; then
    echo "Docker nicht installiert, installiere Docker."
    sudo apt-get update -y
    sudo apt-get install -y docker.io docker-compose
else
    echo "Docker bereits installiert"
fi

#weitere Einstellungen die man vornehmen kann, diese benoetigen wir aber nicht
#--dns=1.1.1.1 \
#--dns=8.8.8.8 \
#-e AIO_CONTAINER_REGISTRY="docker.io" \
#-e BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=6" \
#-e AIO_DISABLE_BACKUP_SECTION=false \


docker run \
--detach \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 8080:8080 \
--env APACHE_PORT=35460 \
-e SKIP_DOMAIN_VALIDATION=true \
--env NEXTCLOUD_DATADIR="/srv/nextcloud_data/" \
--env NEXTCLOUD_MOUNT="/mnt/" \
--env NEXTCLOUD_MEMORY_LIMIT=2048M \
--env NEXTCLOUD_UPLOAD_LIMIT=5G \
--env NEXTCLOUD_MAX_TIME=3600 \
--env COMPASS_MAX_DAYS=30 \
--env NEXTCLOUD_KEEP_DISABLED_APPS=true \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest

echo "Öffne jetzt im Browser: https://${server_ipadress}:8080 und stelle diesen weiter ein"
echo "danach werde weitere Anpassungen durchgeführt"

#wartet auf nextcloud_aio_nextcloud container um direkt die Beispiel Dateien auszustellen

container_name="nextcloud-aio-nextcloud"


while [ "$(sudo docker inspect -f '{{.State.Running}}' $container_name 2>/dev/null)" != "true" ]; do
    echo -n "."
    sleep 10
done

while [ ! -s "$datei" ]; do
    echo -n "_"
    sleep 2
done

sleep 10

echo "${container_name} ist gestartet, änderung in der config werden vorgenomen:"

#Gibt es die Config Datei? Verifiziert dies
if [ ! -f "$datei" ]; then
    echo "fehler, die config datei wurde nicht gefunden"
    exit 1
fi

#Gibt es die gesuchte Zeile? Verifiziert dies
if ! grep -q "$suchzeile" "$datei"; then
    echo "fehler, die suchzeile wurde nicht in der config gefunden"
    exit 1
fi

#Wenn die Datei, sowie die Zeile gefunden worden ist, wird die Zeile eingefügt, welche das erstellen der Beispiel Dateien verhindert
sed -i "/'installed' => true/a \ $einfuegtext" "$datei"


echo "ist eingefügt"


}}}

Jetzt sollte im Terminal stehen bei welcher IP-Adresse Sie sich einloggen können, um weitere Einstellungen vorzunehmen. Bitte beachte das das Skript immernoch läuft, sobald die erste Einstellung abgeschlossen ist werden weitere Einstellungen von diesem Skript an deiner Nextcloud instanz vorgenommen.

==== Installation Hpb ====

Das ist ein Einfaches Setup für Nextcloud Hochleistungsbackend, Signaling & Collabora Office für Debian 13.

Dies wird auf einem externen Server z.B. bei Hetzner installiert um Datensicherheit bei den Backups zu gewährleisten. Collabora Office wird hier mit installiert um die Ressourcen zu schonen und die Perfomance von Nextcloud zu verbessern.

==== Installation Nextcloud Apps ====

Um Nextcloud so zu benutzen wie wir das wollen installieren wir weitere sog. App's um die Funktionen zu erweitern. Installiert werden diese unter den admin > Apps.

Bitte installiere:

LDAP user and group backend – User können sich mit den ldap benutzern anmelden

External Storage Support – Externer Storage

Big Blue Button integration – Meetings abhalten

Custom CSS – Design anpassen

Installation ITZkS Content-Server

/!\ Diese Seite befindet sich im Aufbau

Boot-Verzögerung bei Stromausfall

Debian Edu System setzen beim Systemstart einen erreichbaren Hauptserver voraus. Für Debian Edu Server-VMs ergibt sich die Anforderung einer Boot-Verzögerung.

Anstelle aufwendiger VM-Host Skripte wird eine Startverzögerung durch ein hohes Timeout im Bootloader GRUB erwirkt.

<user>@contentserver:/# diff -u /etc/default/grub.orig /etc/default/grub
--- /etc/default/grub.orig      2012-08-31 16:06:51.000000000 +0200
+++ /etc/default/grub   2012-08-31 16:06:59.000000000 +0200
@@ -2,7 +2,7 @@
 # /boot/grub/grub.cfg.
 
 GRUB_DEFAULT=0
-GRUB_TIMEOUT=5
+GRUB_TIMEOUT=600
 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
 GRUB_CMDLINE_LINUX_DEFAULT="quiet"
 GRUB_CMDLINE_LINUX=""

Danach muss die Konfigurationsänderung übernommen werden:

$ sudo update-grub

Content Server - Nextcloud AIO

Erstellen der VM

Das Grundgerüst besteht aus einem Debian 13 (Trixie) Betriebsystem. Gerne OHNE UI um Perfomance zu sparen.

Für einen Erstellung einer VM für ca. 50 User wird empfohlen:

Speicherplatz:

Hierbei wird langsamer und schneller Speicher eingebunden

An schnellem Speicher sollten 80GB zur Verfügung zu stehen. An langsamen Speicher sollte es 200GB und 400GB jeweils geben.

Arbeitsspeicher:

Hierbei wird 10240MB empfohlen.

CPU:

Hier werden 8 Kerne empfohlen.

Der Server sollte im Netzwerk von dem Tjener bereit stehen.

Installation Docker

Um Docker zu installieren müssen sie die folgenden Schritte beachten:

Ersteinmal muss der offizielle GPG key hinzugefügt werden, danach wird wird da Repository den Apt-sources zugefügt.

# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update

Jetzt installieren wir Docker:

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Nachdem wir das installieren haben, verifizieren wir einmal das Docker läuft.

sudo systemctl status docker

Installation Nginx

Installation Nextcloud-AIO

Zum Installieren nutzen wir https://github.com/nextcloud/all-in-one

Dies Installieren wir über ein Bash Script welches wie folgend aussieht.

#Auf der gefundenen IP-Adresse soll der Server dann erreichbar sein
server_ipadress=$(ip route get 1.1.1.1 | grep -oP 'src \K[^ ]+')

#Variable zum editieren der config.php Datei um Beispiel Dateien bei neuen Usern zu verhindern
datei="/var/lib/docker/volumes/nextcloud_aio_nextcloud/_data/config/config.php"
#Variable welche das Wort enthält welches vor dem neu Eingefügten Text steht
suchzeile="'installed'"
#Diese Zeile verhindert das Beispiel Dateien bei neuen Usern erstellt werden.
einfuegtext="'skeletondirectory' => '',"

if ! command -v docker &> /dev/null; then
    echo "Docker nicht installiert, installiere Docker."
    sudo apt-get update -y
    sudo apt-get install -y docker.io docker-compose
else
    echo "Docker bereits installiert"
fi

#weitere Einstellungen die man vornehmen kann, diese benoetigen wir aber nicht
#--dns=1.1.1.1 \
#--dns=8.8.8.8 \
#-e AIO_CONTAINER_REGISTRY="docker.io" \
#-e BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=6" \
#-e AIO_DISABLE_BACKUP_SECTION=false \


docker run  \
--detach \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer   \
--restart always   \
--publish 8080:8080   \
--env APACHE_PORT=35460   \
-e SKIP_DOMAIN_VALIDATION=true \
--env NEXTCLOUD_DATADIR="/srv/nextcloud_data/"   \
--env NEXTCLOUD_MOUNT="/mnt/"   \
--env NEXTCLOUD_MEMORY_LIMIT=2048M   \
--env NEXTCLOUD_UPLOAD_LIMIT=5G   \
--env NEXTCLOUD_MAX_TIME=3600   \
--env COMPASS_MAX_DAYS=30   \
--env NEXTCLOUD_KEEP_DISABLED_APPS=true  \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config   \
--volume /var/run/docker.sock:/var/run/docker.sock:ro   \
nextcloud/all-in-one:latest

echo "Öffne jetzt im Browser: https://${server_ipadress}:8080 und stelle diesen weiter ein"
echo "danach werde weitere Anpassungen durchgeführt"

#wartet auf nextcloud_aio_nextcloud container um direkt die Beispiel Dateien auszustellen

container_name="nextcloud-aio-nextcloud"


while [ "$(sudo docker inspect -f '{{.State.Running}}' $container_name 2>/dev/null)" != "true" ]; do
    echo -n "."
    sleep 10
done

while [ ! -s "$datei" ]; do
    echo -n "_"
    sleep 2
done

sleep 10

echo "${container_name} ist gestartet, änderung in der config werden vorgenomen:"

#Gibt es die Config Datei? Verifiziert dies
if [ ! -f "$datei" ]; then
    echo "fehler, die config datei wurde nicht gefunden"
    exit 1
fi

#Gibt es die gesuchte Zeile? Verifiziert dies
if ! grep -q "$suchzeile" "$datei"; then
    echo "fehler, die suchzeile wurde nicht in der config gefunden"
    exit 1
fi

#Wenn die Datei, sowie die Zeile gefunden worden ist, wird die Zeile eingefügt, welche das erstellen der Beispiel Dateien verhindert
sed -i "/'installed' => true/a \  $einfuegtext" "$datei"


echo "ist eingefügt"

Jetzt sollte im Terminal stehen bei welcher IP-Adresse Sie sich einloggen können, um weitere Einstellungen vorzunehmen. Bitte beachte das das Skript immernoch läuft, sobald die erste Einstellung abgeschlossen ist werden weitere Einstellungen von diesem Skript an deiner Nextcloud instanz vorgenommen.

Installation Hpb

Das ist ein Einfaches Setup für Nextcloud Hochleistungsbackend, Signaling & Collabora Office für Debian 13.

Dies wird auf einem externen Server z.B. bei Hetzner installiert um Datensicherheit bei den Backups zu gewährleisten. Collabora Office wird hier mit installiert um die Ressourcen zu schonen und die Perfomance von Nextcloud zu verbessern.

Installation Nextcloud Apps

Um Nextcloud so zu benutzen wie wir das wollen installieren wir weitere sog. App's um die Funktionen zu erweitern. Installiert werden diese unter den admin > Apps.

Bitte installiere:

LDAP user and group backend – User können sich mit den ldap benutzern anmelden

External Storage Support – Externer Storage

Big Blue Button integration – Meetings abhalten

Custom CSS – Design anpassen

IT-Zukunft Schule: Technik/Installation/VM/ContentServer (zuletzt geändert am 2026-09-07 10:27:47 durch GunnarMeyborg)