Homelab Documentation

A place where I document the technical way of how I set up my homelab.

Basic Proxmox Configuration

Basic Proxmox Configuration

ZFS Storage

I use ZFS as filesystem for my backend storage, due to its seamless integration with Snapshots and the Proxmox Backup Server. It is decently performant compared to the likes of ext, but offers great resilience in RAID-like solutions, is flexible and easy to use. I recommend reading through the basic ZFS introduction to clarify terms and usecases before following this guide, as this only reflects a good usecase for me.

  1. Create Pool
    1. Zpool create -o ashift=12 mirror POOL /dev/sdc /dev/sdd mirror /dev/sde /dev/sdf
    2. Hardening against reboot issues with /dev/sdX nomenclature
      1. Zpool export POOL
      2. Zpool import -d /dev/disk/dev-by-id
      3. Zpool import -c /etc/zfs/zpool.cache
      4. Zpool status
  2. Set compression: zfs set compression=lz4 POOL
  3. Create datasets (+tuning)
    1. zfs create pool/dataset-name
    2. sudo zfs set recordsize=[size] data/media/series
    3. No-snap für datenbanksets d. Set mountpoints for datasets e. ZFS Scrub
  4. Set mountpoints for datasets
  5. ZFS Scrub

https://docs.oracle.com/cd/E24841_01/html/820-2313/gbbwa.html https://www.usenix.org/system/files/login/articles/login_winter16_09_jude.pdf https://shatteredsilicon.net/blog/2020/06/05/mysql-mariadb-innodb-on-zfs/
https://docs.oracle.com/cd/E24841_01/html/820-2313/gbbwa.html https://unix.stackexchange.com/questions/288599/forcing-zpool-to-use-dev-disk-by-id-in-ubuntu-xenial https://docs.oracle.com/cd/E19253-01/819-5461/gaynr/index.html

Basic Proxmox Configuration

Wake-on-LAN

https://www.jm.technology/post/proxmox-wol-mac-set_april-2019/ https://pve.proxmox.com/wiki/Proxmox_Node_Management

Basic Proxmox Configuration

Disable Subscription Message

https://johnscs.com/remove-proxmox51-subscription-notice/

sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service

Basic Proxmox Configuration

Switch Repository to non-enterprise

The enterprise repository requires a bought key, hence the usage of Proxmox in a homelab usually lead to the usage of the non-production repository.

  1. Comment out everything with "#" in /etc/apt/sources.list/pve-enterprise.list

  2. create new file in /etc/apt/sources.list/pve-no-enterprise.list

  3. insert:

    deb http://download.proxmox.com/debian/pve buster pve-no-subscription

  4. replace "buster" with name of debian version corresponding to Proxmox version.

Sources

https://pve.proxmox.com/wiki/Package_Repositories

Basic Proxmox Configuration

GPU Passthrough

  1. Kernel modules
  2. Disable drivers (Intel for iGPU, Nvidia for dedicated)
  3. Set up VMs accordingly
    1. https://pve.proxmox.com/wiki/PCI(e)_Passthrough
    2. https://pve.proxmox.com/wiki/Pci_passthrough
    3. https://blog.quindorian.org/2018/03/building-a-2u-amd-ryzen-server-proxmox-gpu-passthrough.html/
      https://cetteup.com/216/how-to-use-an-intel-vgpu-for-plexs-hardware-accelerated-streaming-in-a-proxmox-vm/
Basic Proxmox Configuration

Docker in LXC

Docker LXC https://kayomo.de/blog/docker-unter-proxmox-installieren/

Basic Proxmox Configuration

Powersaving

Powergoverons

Required: -

Related: -

  1. apt install cpufrequtils
  2. Check available govenors with cpufreq-info or cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
  3. apply governor on reboot in crontab with echo "#NAMEOFGOVENOR" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

See also: -

Sources:

https://wiki.debian.org/CpuFrequencyScaling

Networking

Networking

Nginx in Docker

https://nginxproxymanager.com/guide/#project-goal

Networking

Caddy

https://docs.theme-park.dev/setup/#caddy
https://caddy.community/t/caddy-reverse-proxy-nextcloud-collabora-vaultwarden-with-local-https/12052
https://caddyserver.com/docs/install#debian-ubuntu-raspbian

Monitoring&Overview

Monitoring&Overview

InfluxDB-Grafana-Telegraf

  1. influx update breaks config !!! Apt hold influx (+grafana?)
    https://schroederdennis.de/tutorial-howto/proxmox-monitoring-einrichten-installieren-influxdb-grafana/
    https://www.howtoforge.com/tutorial/how-to-install-tig-stack-telegraf-influxdb-and-grafana-on-ubuntu-1804/
    https://foldingforum.org/viewtopic.php?f=14&t=35660
  2. HDD Temps Telegraf (install hddtemp daemon!) https://wiki.ubuntuusers.de/hddtemp/
    https://github.com/influxdata/telegraf/tree/master/plugins/inputs/hddtemp
  3. Add problematic smart stats manually: https://askubuntu.com/questions/474669/ssd-temperature-sensor-readout-with-hddtemp
    https://github.com/influxdata/telegraf/blob/master/plugins/inputs/disk/README.md
    https://stackoverflow.com/questions/45171907/influxdb-how-to-update-duration-of-an-existing-database
  4. Format Dircount as influx out: https://www.reddit.com/r/grafana/comments/os96l1/influxdbtelegraf_exec_display_issues/h6n6pc6/?context=3
  5. add telegraf user to nextcloud group in order to be able to scan directories. https://du.nkel.dev/blog/2021-05-05_proxmox_influxdb/
    https://towardsdatascience.com/influxdb-data-retention-f026496d708f
  6. Delete old data in influx
    use DATABASE +
    https://stackoverflow.com/questions/38587898/in-influxdb-how-to-delete-all-measurements
  7. Countdirectories
    Befehl in /usr/bin/countdirectories anlegen:
#!/bin/sh  
count=$(ls -l $1 | grep -c ^d)  
echo dircount,path=$1 value=$count
Monitoring&Overview

OneUptime

Requirements:

-Docker and Docker compose -Node.js and NPM installed.

git clone https://github.com/OneUptime/oneuptime.git cd oneuptime

Copy config.example.env to config.env cp config.example.env config.env

Optional: change config.env npm run dev

https://github.com/OneUptime/oneuptime

Gaming Services

Gaming Services

MineOS

Serveradministration

Export aus Nitradoservern:

https://wiki.nitrado.net/de/Map_herunterladen_bei_Minecraft
Dafür brauchst du zusätzlich den Client von Filezilla: https://filezilla-project.org/download.php?type=client

Dabei sollte eine ZIP-Datei rauskommen, die du eventuell selber noch erstellen musst, indem du das Überverzeichnis manuell zipst, was heruntergeladen wird.

Neuen Server aufsetzen

Import bestehender Welten in MineOS

https://minecraft.codeemo.com/mineoswiki/index.php?title=Importing_a_world

Eigentlich nur verkehrt herum wie beim Export. Ich empfehle Filezilla, damit hab ich es getestet. Logins sind wie folgt:
Server: sftp://Serveradresse
User: sftp_user
Port: 15900

Importieren kannst du, indem du mit Rechtsklick hoch- bzw runterladen entsprechende Dateien hin und her schiebst. Nach dem Import sieht es dann etwa so aus:

unknown.png

Der Linke Teil ist dabei dein Rechner und funktioniert wie der Explorer. Rechts ist der Server. Du musst noch in den korrekten Importpfad auf dem Server navigieren, das sieht dann so aus:

unknown.png

Eine Testdatei liegt zum Vergleich drin. Du kannst sie dir auch gerne runterladen und aufmachen, um zu vergleichen, wie deine Datei aussieht. Wenn hier eure Welt als ZIP drin liegt, geht es auf der Verwaltungsebene weiter.

Start eines Importservers

Mit der importierten ZIP kannst du jetzt einen neuen Server starten.

unknown.png

Create Server from Archive erstellt eine neue Standard Serverinstanz. Diese wird dann am oberen Bildschirmrand unter Currently Selected Servers ausgewählt. Die Software ist so eingestellt, dass nur der erste Server aus dem Internet erreichbar ist, daher werden weitere Serverinstanzen zwar laufen, aber nicht erreichbar sein. Sobald der Server ausgewählt ist, kannst du auf der linken Seite die Serversettings sehen. Alles andere sind Einstellungen für die Software, an denen bitte nicht rumspielen, weil es sonst evtl nicht mehr läuft (auch wenn ich das schnell zurücksetzen kann, falls doch mal was schief geht).

unknown.png

Vorbereitung MC-Server-Framework / Update MC-Server

Bevor der Server gestartet werden kann, muss eine MC-Server-Datei geladen werden.

Servertypen

Vanilla

Der Vanilla Minecraftserver ist in der aktuellsten Version immer unter Profiles downloadbar. Danach entsprechend auf der Serverseite die zu benutzende Version umstellen und den Server neustarten.

Alternativ: Paper

Für alternative Server muss nur die neuste Paper-Datei statt der Vanilla-Datei heruntergeladen und analog zur Vanilla-Variante auf der Serverseite als JAR ausgewählt werden. Vorsicht, die neuste Version ist nicht immer oben! Danach den Server neustarten. ! Achtung !: Wenn Paper genutzt wird und man wieder zu Vanilla zurück will, müssen einige manuelle Änderungen am Save vorgenommen werden: https://docs.papermc.io/paper/migration Sektion From Paper to Vanilla.

Paper.png

Alternativ: Fabric

Vanilla-ähnlicher Server mit wenig Optimierungen. Farms und Exploits funktionieren wie in Vanilla auf Kosten von zusätzlichen Lags und schlechterer Performance im Vergleich zu Paper. Muss händisch eingerichtet werden. Siehe Fabric Dokumentation.

Revert einer Fabric/Spigot Welt zurück zu Vanilla

https://serverminer.com/article/how-to-convert-a-paper-spigot-world-to-a-vanilla-world/

Update Ablauf Quick-Checklist

  1. Server stoppen
  2. Vanilla bzw. Alternative herunterladen
  3. Auf Serverseite "Accept EULA" und erst danach "Restart" anklicken

Server Settings

Auf einem neuen Server sollten alle Einstellungen wie folgt sein: Unter Server Actions:
Change profile to: akutellste Eventuell musst du einmal auf Accept EULA klicken, wenn es nicht starten, weil Java geupdated wurde, sollte aber im Normalfall nicht passieren.
Broadcast to LAN: an
Start server on boot: an
Alles andere auf Standard lassen.

Java Settings

Change runnable to: Entweder minecraft-server-1.19 (nicht gemoddet) oder spigot 1.19 (für modded) bzw. die entsprechend aktuelle Version der Alternativen. Ich rate aus Performancegründen zu Paper.
Memory Allocation: XmX: 8192 (geht bis 9000, falls der Server langsam ist oder crasht, alles darüber lässt das System in der aktuellen Konfiguration abstürzen. Spiel ruhig damit rum und probiers aus, allerdings muss der Server nach jeder Änderung neu gestartet werden.) Xms: 4096 (Bitte nicht ändern) Additional Java Arguments und Additional Jar arguments auf Standard bei Problemen ansonsten siehe Paper-Dokumentation.

Alles andere ist für den Betrieb nicht relevant.

Backups

Unter Restore Points kannst du Sicherungen anlegen, falls ihr mal was Dummes machen wollt, die lassen sich danach per Knopfdruck einfach wieder einspielen. Archives erstellt die ZIP für einen Export direkt im Browser statt mit dem Umweg über Filezilla.

unknown.png

Jetzt sollte der Server für alle unter Serveradresse erreichbar sein.

Administration des laufenden Servers

Falls ihr rcon für Servercommands benutzt, ist die Adresse dafür Serveradresse:15889 Falls ihr die Serverkonsole braucht, um z.B. jemanden zum Admin zu machen oder den Gamemodus zu ändern, ist die unter Logging/logs/latest.log, was sichtbar ist, sobald man oben wieder einen Server ausgesucht hat.

unknown.png

Löschen

Um den Server zu löschen, einfach den Server stoppen, alle drei Haken unter Delete Server setzen und auf delete drücken. Danach kann z.B. ein alter Server importiert werden oder Server für eine neue Welt erstellt werden. Server importieren. Wenn du oben die Datei korrekt importiert hast, dann sollte jetzt, wenn du auf "Import a Server" klickst, deine ZIP dort auftauchen.

Finetuning

Je nachdem, welchen Basisserver ihr nutzt (Vanilla, Spigot, Paper, etc.), entsprechende Guides und Settings nutzen.

Minecraft-spezifisch

Schon etwas veraltet, aber immer noch applicable für die Basisoptionen: https://www.spigotmc.org/threads/guide-server-optimization%E2%9A%A1.283181/

Aktueller:
https://apexminecrafthosting.com/server-optimization/

Java-spezifisch

https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/

Paper-spezifisch:

https://docs.papermc.io/paper/aikars-flags https://github.com/YouHaveTrouble/minecraft-optimization Für Exploits/Special Farming: https://shockbyte.com/billing/knowledgebase/495/How-to-Allow-Bedrock-Breaking-TNT-Duping-and-Other-Exploits-in-PaperMC-Servers.html

Die entsprechende Datei lässt sich per SSH/Filezilla aufrufen/ändern.

Host Administration

Protected SFTP access

MineOS bindmount in crontab for sftp user, because no fstab in LXC:
@reboot mount -o bind /root/mineos-path/gamefiles/minecraft/import/ /home/sftp_user/minecraft-import-directory/

Issues

Server instance not starting - blocked port

https://discourse.codeemo.com/t/cant-start-server-in-webui/5732

  1. Check usage of 25565 with netstat -tulpn | grep 25565
  2. Kill PID
  3. Start instance in WebUI

External Access Issues

  1. Check accessibility at https://mcsrvstat.us/
  2. Internal Portforwarding seems to make trouble on LXC setups, thus the standard ports have to be used. Make sure, 25565 is open and forwarded on TCP and UDP traffic in router.

Server Profiles not refreshing

https://wiki.codeemo.com/maint/webui.html
supervisorctl restart mineos

Host OS Upgrade

Reinstall npm Navigate to mineos root folder run npm rebuild

Bootsettings reference:

-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true https://www.spigotmc.org/wiki/timings/

Vanilla-like experience in Paper

https://docs.papermc.io/paper/vanilla/

Gaming Services

Satisfactory Dedicated Server

https://linuxgsm.com/servers/sfserver/

Issues with Update 7 and changed binary names: https://github.com/GameServerManagers/LinuxGSM/issues/4241

Gaming VM

Gaming VM

Default Audio Device resetting on reboot

https://gist.github.com/ChriRas/b9aef9771a97249cb4620e0d6ef538c4

Media Services

Media Services

Jellyfin as LXC with onboard Graphics

Configuration of Jellyfin as LXC with passthrough of onboard iGPU

Tested on AsRock J4105/J5005 and Intel i5 10400F.

There is two ways of running containers in need of the onboard GPU. The easiest way is as priviledged container, since this allows for direct access to the render device of the host without the hassle of right management. This however comes with security issues, because it allows access to parts of the hosts system as root. In a system not accessible from the outside, this likely isn't a concern, but it still can be mitigated by running Jellyfin as unpriviledged LXC with UID/GID mapping to only allow isolated access to render devices. Which option you chose depends on your usecase and stance of safety and isolation.

This setup requires the appropriate driver for your GPU to be installed on the host system and the LXC. A working driver should yield output with "vainfo".

Some instructions are for older versions, but persistent on newer systems, I will thus keep the older sources.

General Installation of Jellyfin

https://www.linuxcapable.com/how-to-install-jellyfin-media-server-on-ubuntu-20-04/
https://cetteup.com/216/how-to-use-an-intel-vgpu-for-plexs-hardware-accelerated-streaming-in-a-proxmox-vm/

Priviledged:

https://www.codetd.com/de/article/11969233
https://blog.peterge.de/jellyfin/

Unpriviledged

UID/GID mapping for /dev/dri128 und /dev/render

https://forum.jellyfin.org/t/installation-uid-and-gid/821
https://pve.proxmox.com/wiki/Unprivileged_LXC_containers
https://github.com/ahuacate/pve-medialab#203-create-a-ubuntu-1804-lxc-for-jellyfin---ubuntu-1804

Common Issues

Jellyfin not upgrading:

https://github.com/jellyfin/jellyfin/issues/5448

Integration with other Services

Encoding/Decoding Issues

Make sure, i965-shaders from the non-free repo is installed, not intel-media, and version of libva and driver are the same on host and guest. Intel-media-hd as driver for i5/i7 6th Gen. and higher instead of i965.

Kodi

https://github.com/jellyfin/jellyfin-kodi

Sources

Media Services

Photoprism

https://docs.photoprism.app/getting-started/docker-compose/
Enable hardware transcoding for Intel GPUs
https://github.com/photoprism/photoprism/issues/1337

Unlock features behind paywall: https://www.reddit.com/r/selfhosted/comments/13fj282/tutorial_build_your_own_unrestricted_photoprism_ui/

transcoder settings https://docs.photoprism.app/getting-started/advanced/transcoding/

Media Services

Navidrome

https://www.navidrome.org/docs/installation/

Media Services

yt-dlp(youtubedl) - Importing Youtube Shows

https://github.com/yt-dlp/yt-dlp

Pip install to segment from Jellyfin. On a separate machine, use repository for easier updating.

Default run with Metadata and Subtitles fit for Jellyfin:

Media Services

Automatic Ripping Machine

https://b3n.org/automatic-ripping-machine/

Security Services

Security Services

Wireguard VPN LXC

Wireguard headless:

Vorher ausführen:
apt install resolvconf

https://apfelcast.com/die-einfachste-opensource-vpn-wireguard-installation-auf-proxmox-lxc/?cookie-state-change=1632921049297
https://www.ckn.io/blog/2017/11/14/wireguard-vpn-typical-setup/
https://github.com/EmbarkStudios/wg-ui
https://stackoverflow.com/questions/46645910/docker-rootfs-linux-go-permission-denied-when-mounting-proc
https://www.stavros.io/posts/how-to-configure-wireguard/

Wireguard mit Webverwaltung: https://docs.firezone.dev/deploy/install-server#manual-install

Security Services

Adguard LXC

https://blog.wydler.eu/2021/02/21/adguard-home-im-netzwerk-implementieren/
https://linuxconfig.org/how-to-turn-on-off-ip-forwarding-in-linux
Einrichtung auf Port 3000

Miscellaneous Services

Miscellaneous Services

Eclipse CHE

https://coder.com/docs/code-server/latest/guide
https://coder.com/docs/code-server/latest/install
listeningadress von localhost in config auf IP umstellen

Miscellaneous Services

Bookstack

https://www.bookstackapp.com/docs/admin/installation/#ubuntu-2004
edit /var/www/.env change "appurl" http to https

Miscellaneous Services

ioBroker

installation: https://www.iobroker.net/#de/documentation/install/linux.md

Miscellaneous Services

Nextcloud

  1. GID/UID Mapping für ZFS Passthrough

    1. https://pve.proxmox.com/wiki/Unprivileged_LXC_containers FIX für subuid/guid:
      https://lxc-users.linuxcontainers.narkive.com/KQxz7W3Z/uid-range-not-allowed
    2. FIX für "nogroup"-Problem
      https://forum.proxmox.com/threads/unable-to-map-to-www-data-user-in-container.49695/
      pct mount CTID find /var/lib/lxc/CTID/rootfs -uid 100033 -exec chown 1005 '{}' \; find /var/lib/lxc/CTID/rootfs -gid 100033 -exec chgrp 1005 '{}' \;
    3. Verzeichnis auf ZFS umsetzen
      1. Apache in CT deaktivieren (stop +disable)
      2. Original Nextcloudfiles ordener kopieren
      3. CT abschalten und mapping + mp0 mount auf ursprüngliches datenverzeichnis vornehmen
      4. CT anschalten kopie wieder in original ordner
      5. Enable + start apache
    4. 'skeletondirectory' => '',
    5. Trusted domains -> reverse proxy ip eintragen
  2. If you just want to remove the default skeleton (no files added on first launch), do the following:

    1. open config file with vi /app/config/config.php
    2. insert line 'skeletondirectory' => ''on a new line (i to enter insert mode)
    3. press esc, then :wq and <enter> to write and save
Miscellaneous Services

Overleaf

  1. Setup according to manual: https://github.com/overleaf/toolkit/blob/master/doc/quick-start-guide.md
  2. Install full-scheme dependencies in dockercontainer: https://github.com/overleaf/overleaf/issues/876\
  3. Upgrading: https://github.com/overleaf/toolkit/blob/master/doc/ce-upgrading-texlive.md#installing-packages
tlmgr update --self\
tlmgr install scheme-full

Own script:

#!/bin/bash
docker exec -it sharelatex tlmgr --repository http://www.preining.info/tlgpg/ install tlgpg
docker exec -it sharelatex tlmgr install scheme-full

Oddly specific issues

Oddly specific issues

NAS mit alter Samba Version per Konsole einbinden

https://forum.proxmox.com/threads/cifs-issue-error-with-cfs-lock-file-storage_cfg-working-now-but-shows-question-mark.45962/
pvesm add cifs extbackup --server 192.168.178.31 --share share --username server --password server --smbversion 2.0

Oddly specific issues

Reimport old existing disks with LVM

  1. Remove old LVM Volumes
  2. lvremove OLDVOLUME
  3. Delete old partition table (REMOVES ACCESS TO DATA !!!)
    dd if=/dev/zero of=/dev/sda bs=512 count=1

Recreate LVM-Thin

Oddly specific issues

Backup auf PBS ohne Disks zu verlieren

https://forum.proxmox.com/threads/remove-vm-but-retain-disk.33939/

Oddly specific issues

WD Red Fix for high load cycle count (LCC)

https://withblue.ink/2016/07/15/what-i-learnt-from-using-wd-red-disks-to-build-a-home-nas.html

Oddly specific issues

Renew SSL in Turnkey

https://www.turnkeylinux.org/docs/confconsole

Oddly specific issues

Certificate Issue after cluster removal

  1. Remove keys as instructed by pve messages after re-entering node
  2. Remove all remaints in softlinks in pve folder structure as well
  3. pvecm updatecerts

https://forum.proxmox.com/threads/cant-connect-to-destination-address-using-public-key-task-error-migration-aborted.42390/

Oddly specific issues

Migrate GPG Keys from deprecated keyring to gpg.d

  1. apt update -> identify deprecated keys
  2. apt-key list -> identify last 8 symbols of corresponding key signature. Remove spaces
  3. apt-key export XXXXXXXX | gpg --dearmour -o /etc/apt/trusted.gpg.d/SERVICENAME.gpg
Oddly specific issues

D128 Render device not showing up

nomodeset in grub disabled d128render device. Remove nomodeset.

Oddly specific issues

Upgrade MariaDB für NC30 und MariaDB > 10.5

  1. Lege Backup an (siehe unten):

    mysqldump -u root -p --opt --all-databases -r backup.sql

  2. Entferne OS mysql-server* und mysql-server-core*

    apt remove mysql-server* mysql-server-core*

  3. Installiere MariaDB Repository (Korrigiere ggf. Version. aktuelle LTS 10.11)

    curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.11"

    Mehr Infos unter https://mariadb.com/kb/en/mariadb-package-repository-setup-and-usage/

  4. Reinstalliere alle nötigen Pakete:

    apt update && apt-get install mariadb-server mariadb-client mariadb-backup

  5. ggf. default charset anpassen. (für nextcloud utf8mb4)

    mysql -uroot -p --default-character-set=utf8mb4

  6. Restore:

    mysql
    mysql> SET names 'utf8mb4';
    mysql> SOURCE backup.sql;\

    Aus: https://stackoverflow.com/questions/9497869/export-and-import-all-mysql-databases-at-once

  7. ggf. MariaDB Security prüfen. i.e. Root PW gesetzt und alte DB Passwörter funktional.

Documentation Template

Intro-(What,Why):

Required: -

Related: -

TEXT TEXT TEXT TEXT

See also: -

Sources: -

Hardware Architecture

Hardware Architecture

APC UPS

Basic Setup https://www.brunweb.de/konfiguration-einer-apc-usv-unter-proxmox/

Master-Slave-Setup https://www.pontikis.net/blog/apc-ups-master-slave-setup-apcupsd