Nextcloud Server Docker | Einrichtung +https: Let’s Encrypt [ssl]
Um mit meinem NAS Kontakte, Termine und Fotos zu synchronisieren, habe ich Nextcloud getestet und damit anderen Cloudanbietern für meine privaten Daten ein Stück weit den Rücken gekehrt. Dank Docker ist die Installation einfacher und flexibler denn je und ermöglicht es, Nextcloud auf einer beinahe beliebigen Hardware zu betreiben.
Nextcloud-Server Profil:
Software Server GitHub https://github.com/nextcloud/server aktuelle Version 32.0.1 gefunden 23.10.2025
Docker Basics
Docker ermöglicht es, Services oder Applikationen per Befehl in einem sogenannten Container zu starten.Ein Container ist eine vom Betriebssystem (OS) unabhängige isolierte Umgebung:
Beim ersten Start eines Containers, lädt Docker selbstständig alle notwendigen Quellen
aus dem Internet.
Docker kann unter Windows, macOS oder einer Linux-Distribution installiert werden,
siehe auch: Docker
Damit Nextcloud sicher vom Internet erreicht werden kann, setze ich Traefik als Let's Encrypt Reverse-Proxy ein. Der Reverse-Proxy stellt eine verschlüsselte HTTPS-Verbindung zur Verfügung und ermöglicht es mehrere Websites auf einem Server zu betreiben.
Alternativ zu einem Reverse-Proxy kann auch ein Cloudflare-Tunnel für das Veröffentlichen von Webservices aus dem eigenen Netzwerk verwendet werden:
Schritt fĂĽr Schritt Nextcloud in Docker inklusive Zugriff vom Internet
Hardwareanforderung:- Für die Docker-Installation kann eine nahezu beliebige Hardware verwendet werden. Zum Beispiel ein virtueller Server eines Providers, oder für zu Hause: ein Mini-PC, Notebook, MAC, ein NAS: QNAP, Synology oder eine andere Hardware mit x68-64 Architektur auf der sich Windows oder Linux installieren lässt.
- Eigene registrierte Domain, siehe Domain und dessen Verwaltung.
- Cloudflare oder Reverse Proxy:
- Cloudflare-Tunnel Service oder alternativ:
- Port-Forwarding und Reverse Proxy mit Let's Encrypt-Zertifikat
Als Basis für Nextcloud habe ich ursprünglich folgendes GitHub-Projekt eingesetzt und später adaptiert: https://github.com/ichiTechs/Dockerized-SSL-NextCloud-with-MariaDB. Das Projekt besteht im Wesentlichen aus zwei Dateien, welche ich in angepasster Version hier beschreibe. Der Hauptgrund für die Anpassung war die Trennung des Reverse-Proxys vom Nextcloud-Setup, wodurch mehrere Webdienste über die gleiche IP-Adresse und am selben Host mit einem jeweiligen SSL Zertifikat betrieben werden können. Die Nextcloud-Installation läuft in meinem Fall auf einer Hardware, bei mir zu Hause.
Container fĂĽr Nextcloud:
- docker-compose.yml und nginx.conf anlegen
- Container starten
docker-compose.yml
Die Datei docker-compose.yml beinhaltet die Konfiguration fĂĽr die Container, wie z. B. den Datenbank-Benutzer, die WebURL und Netzwerkeinstellungen fĂĽr die Kommunikation der einzelnen Container untereinander. Die Datei sollte entsprechend vor dem ersten Start angepasst werden (Bereich labels). Wie bereits erwähnt, wird fĂĽr das hier beschriebene Setup neben Docker und dem Traefik-Reverse-Proxy ein DNS-Eintrag auf die IP der Nextcloud-Installation vorausgesetzt.Â
Inhalt der Datei: docker-compose.yml
services:
web:
image: nginx
container_name: nextcloud_webserver
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
links:
- app
volumes_from:
- app
#FĂĽr einen direkten Test-Zugriff, in den folgenden 2 Zeilen "#" entfernen. Aufruf: http://localhost:83 oder http://ServerIP:83
#ports:
#- "83:80"
#Labels fĂĽr ReverseProxy, siehe: https://www.libe.net/traefik
labels:
- "traefik.enable=true"
- "traefik.http.routers.next.rule=Host(`next.domain.tld`)"
- "traefik.http.routers.next.entrypoints=web"
- "traefik.http.routers.next.entrypoints=websecure"
- "traefik.http.routers.next.tls.certresolver=myresolver"
networks:
- nextcloud
restart: always
app:
image: nextcloud:fpm
container_name: nextcloud_fpm
links:
- db
- redis
volumes:
- ./apps:/var/www/html/apps
- ./config:/var/www/html/config
- ./data:/var/www/html/data
networks:
- nextcloud
restart: always
redis:
image: redis
container_name: nextcloud_redis
restart: always
ports:
- "6379:6379"
volumes:
- ./redis:/data
entrypoint: redis-server --appendonly yes
networks:
- nextcloud
restart: always
db:
image: mariadb:10.5
container_name: nextcloud_db
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=???
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=???
networks:
- nextcloud
restart: always
#Ohne dem Einsatz eines Reverse Proxy (https://www.libe.net/traefik) fehlt voraussichtlich das Netzwerk webproxy
#und die folgenden Zeilen können entfernt oder auskommentiert werden. Alternativ kann das Netzwerk mit "docker network create webproxy" erstellt werden
networks:
nextcloud:
name: webproxy
external: true
Die Datei verwendet keine Volumes, sondern Unterordner unterhalb der Datei docker-compose.yml. Siehe: Docker Daten speichern: Docker Volumes vs. Host-Ordner Zusätzlich wird in der docker-compose-Datei noch eine nginx-Konfig-Datei eingebunden, diese wird im selben Ordner erwartet:
nginx.conf
Als Inhalt fĂĽr die Datei nginx.conf kann am einfachsten folgendes Beispiel verwendet werden:Â https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy/mariadb/fpm/web/nginx.conf
Erstellen der Konfiguration und Start der Container
Folgender Befehl erstellt die Container laut der in der docker-compose.yml-Konfiguration.
docker compose up -d

Container hinzufĂĽgen / docker-compose.yml anpassen
Collabora hinzufĂĽgen
Collabora ist eine Online-Version von LibreOffice und ermöglicht es, Office-Dokumente online über den Webbrowser zu erstellen oder gemeinsam zu bearbeiten. Voraussetzung für die Nutzung aus dem Internet ist ein zusätzlicher DNS-Name, also ein A-Record auf die öffentliche IP des Servers und ein zusätzliches Let`s Encrypt-Zertifikat. Das Zertifikat wird wiederum von einem Reverse Proxy: Nginx-LetsEncrypt Reverse Proxy oder Traefik ausgestellt und verlängert werden.
Um Callabora in Nextcloud zu verwenden, kann folgenden Block in docker-compose.yml angepasst und eingefĂĽgt werden:
collabora:
image: collabora/code
container_name: nextcloud_collabora
expose:
- 9980
cap_add:
- MKNOD
environment:
- domain=next.deineDomain
- VIRTUAL_HOST=office.deineDomain
- VIRTUAL_NETWORK=nginx-proxy
- VIRTUAL_PORT=9980
- VIRTUAL_PROTO=https
- LETSENCRYPT_HOST=office.deineDomain
- LETSENCRYPT_EMAIL=deineEmail-Addresse
networks:
- nextcloud
restart: always
Die Konfiguration fĂĽr Collabora wurde nur mit dem Nginx-LetsEncrypt Reverse Proxy getestet, daher ist die Reverse-Proxy-Einstellung im Bereich "environment" und nicht unter "labels"Â
OnlyOffice hinzufĂĽgen
Zudem können mit Only-Office Word, Excel oder PowerPoint-Dokumente online bearbeitet werden. Auch hier wird für den Zugriff aus dem Internet ein zusätzlicher DNS-Name vorausgesetzt: Traefik-Reverse-Proxy. Only-Office ist im Vergleich zu Collabora etwas schlanker, da wesentlich mehr Programmlogik im Browser stattfindet. Verglichen mit Collabora hatte ich bisher mit OnlyOffice auch keine Verbindungsabbrüche beim Bearbeiten von Dokumenten und somit Collabora mittlerweile mit OnlyOffice ersetzt.
onlyoffice:
image: onlyoffice/documentserver
container_name: nextcloud_onlyoffice
stdin_open: true
tty: true
volumes:
- ./onlyoffice/data:/var/lib/onlyoffice/documentserver/App_Data
expose:
- '80'
- '443'
labels:
- "traefik.enable=true"
- "traefik.http.routers.document.rule=Host(`document.domain.tld`)"
- "traefik.http.routers.document.entrypoints=web"
- "traefik.http.routers.document.entrypoints=websecure"
- "traefik.http.routers.document.tls.certresolver=myresolver"
- "traefik.http.middlewares.document-headers.headers.accesscontrolalloworiginlist=*"
- "traefik.http.middlewares.document-headers.headers.customrequestheaders.X-Forwarded-Proto=https"
- "traefik.http.routers.document.middlewares=document-headers"
environment:
- JWT_ENABLED=true
- JWT_SECRET=mysecret
- JWT_HEADER=Authorization
networks:
- nextcloud
restart: always
Angepasstes docker-compose.yml mit OnlyOffice
version: '2'
services:
web:
image: nginx
container_name: nextcloud_webserver
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
links:
- app
volumes_from:
- app
labels:
- "traefik.enable=true"
- "traefik.http.routers.next.rule=Host(`next.domain.tld`)"
- "traefik.http.routers.next.entrypoints=web"
- "traefik.http.routers.next.entrypoints=websecure"
- "traefik.http.routers.next.tls.certresolver=myresolver"
networks:
- nextcloud
restart: always
app:
image: nextcloud:fpm
container_name: nextcloud_fpm
links:
- db
- redis
- onlyoffice
volumes:
- ./apps:/var/www/html/apps
- ./config:/var/www/html/config
- ./data:/var/www/html/data
networks:
- nextcloud
restart: always
redis:
image: redis
container_name: nextcloud_redis
restart: always
ports:
- "6379:6379"
volumes:
- ./redis:/data
entrypoint: redis-server --appendonly yes
networks:
- nextcloud
restart: always
onlyoffice:
image: onlyoffice/documentserver
container_name: nextcloud_onlyoffice
stdin_open: true
tty: true
volumes:
- ./onlyoffice/data:/var/lib/onlyoffice/documentserver/App_Data
expose:
- '80'
- '443'
labels:
- "traefik.enable=true"
- "traefik.http.routers.document.rule=Host(`document.domain.tld`)"
- "traefik.http.routers.document.entrypoints=web"
- "traefik.http.routers.document.entrypoints=websecure"
- "traefik.http.routers.document.tls.certresolver=myresolver"
- "traefik.http.middlewares.document-headers.headers.accesscontrolalloworiginlist=*"
- "traefik.http.middlewares.document-headers.headers.customrequestheaders.X-Forwarded-Proto=https"
- "traefik.http.routers.document.middlewares=document-headers"
environment:
- JWT_ENABLED=true
- JWT_SECRET=mysecret
- JWT_HEADER=Authorization
networks:
- nextcloud
restart: always
db:
image: mariadb:10.5
container_name: nextcloud_db
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=???
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=???
networks:
- nextcloud
restart: always
networks:
nextcloud:
external:
name: webproxy

OnlyOffice leere Dokumente
ACHTUNG: Wenn die Adresse für die internen Anforderungen nicht aufgelöst werden kann, werden die Dokumente in NextCloud nicht upgedated, sie befinden sich dann noch im Container, in dem Ordner: /var/lib/onlyoffice/documentserver/App_Data. Aus diesem Grund sollte der Ordner unbedingt auf einen lokalen Ordner gemappt werden, um einen Datenverlust zu vermeiden. Verantwortlich für das Updaten der Only-Office-Dokumente in NextCloud ist der Cron-Job, daher ist es auch nicht unwesentlich, dass dieser regelmäßig läuft.
AuĂźerdem musste ich in der Nextcloud-Konfiguration ab einer bestimmten Version folgende Zeilen hinzufĂĽgen:
File: /config/config.php
$CONFIG = array (
...
'onlyoffice' =>
array (
'verify_peer_off' => false,
),
...
Zudem habe ich auch noch die Option Zwischenversionen bei der Bearbeitung aufbewahren (force save) ausgewählt.

OnlyOffice Unknown error
Nach dem Umstieg von Nginx-LetsEncrypt Reverse Proxy auf Traefik, hatte ich beim Aufruf von Dokumenten das folgende Problem: Unknown error. Press "OK" to reterun to document list

Die Ursache waren fehlende Headers. In Traefik können diese über eine Middleware angepasst werden. Die Middleware ist im obigen Beispiel bereits eingefügt.
...
- "traefik.http.middlewares.document-headers.headers.accesscontrolalloworiginlist=*"
- "traefik.http.middlewares.document-headers.headers.customrequestheaders.X-Forwarded-Proto=https"
- "traefik.http.routers.document.middlewares=document-headers"
...
Wartung
Container updaten
FĂĽr das Update des Containers habe ich mir eine kleine .sh-Datei geschrieben:
docker-compose pull
docker compose up -d
sleep 20
docker exec --user www-data nextcloud_fpm php occ upgrade
sleep 20
docker exec --user www-data nextcloud_fpm php occ db:add-missing-indices
docker exec --user www-data nextcloud_fpm php occ app:disable twofactor_totp calendar news contacts onlyoffice previewgenerator tasks mail drawio
docker exec --user www-data nextcloud_fpm php occ app:enable twofactor_totp calendar news contacts onlyoffice previewgenerator tasks mail drawio
docker exec --user www-data nextcloud_fpm php occ maintenance:mode --off
~
Nachdem immer wieder mal Apps gefehlt haben, habe ich diese in dem Skript zuerst deaktiviert und im Anschluss wieder aktiviert.
Ohne dem Befehl "occ upgrade" würde das Upgrade beim nächsten Aufruf der Weboberfläche über den Browser initiiert werden:

Files scannen
Sollte Dateien direkt und nicht über die Weboberfläche von Nextcloud hinzugefügt werden, können dies diese mittels Filescan erkannt und hinzugefügt werden:
docker exec --user www-data nextcloud_fpm php occ files:scan --all
Gesichtserkennung
App:Â


docker exec --user www-data nextcloud_fpm php occ recognize:download-models
Geburtstagskalender neu aufbauen
docker exec --user www-data nextcloud_fpm php occ dav:sync-birthday-calendar User
Backup: Datenbank Dump
docker exec db mysqldump --user=root --password=Password -h localhost nextcloud > dump.sql.gz
MariaDB- Upgrade
Nach einem Upgrade der Container sollte eventuell auch ein Blick in die jeweiligen Consolen-Outputs geworfen werden. Als Beispiel wurde in der Datenbank ein Hinweis fĂĽr das Upgrade auf eine neuere Version angezeigt:
[Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade
[Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade
Mit dem Befehl "mysql_ugrade -u root -p" im DB-Container konnte ich die Datenbank auf eine neuere Version upgraden:
root@71fb96934128:/# mysql_upgrade -u root -p
Enter password:
Phase 1/7: Checking and upgrading mysql database
Processing databases
mysql
mysql.column_stats OK
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
mysql.gtid_slave_pos OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.host OK
mysql.index_stats OK
mysql.innodb_index_stats
error : Table rebuild required. Please do "ALTER TABLE `innodb_index_stats` FORCE" or dump/reload to fix it!
mysql.innodb_table_stats
error : Table rebuild required. Please do "ALTER TABLE `innodb_table_stats` FORCE" or dump/reload to fix it!
mysql.plugin Needs upgrade
..
`nextcloud`.`oc_twofactor_totp_secrets` FIXED
`nextcloud`.`oc_users` FIXED
`nextcloud`.`oc_vcategory` FIXED
`nextcloud`.`oc_vcategory_to_object` FIXED
`nextcloud`.`oc_whats_new` FIXED
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
Sollte die Datenbank bereits aktuell sein, wĂĽrde der Befehl ohne "force" kein Upgrade versuchen:
root@71fb96934128:/# mysql_upgrade -u root -p
Enter password:
This installation of MariaDB is already upgraded to 10.5.17-MariaDB.
There is no need to run mysql_upgrade again for 10.5.17-MariaDB.
You can use --force if you still want to run mysql_upgrade
Tuning – Einstellungen – Optimierungen
Cronjob

am Host-OS
sudo crontab -e
*/5 * * * * docker exec --user www-data nextcloud_fpm php -f /var/www/html/cron.php > /dev/null 2>&1
Sicherheits- und Einrichtungswarnungen
docker exec --user www-data nextcloud_fpm php occ maintenance:mode --on
docker exec --user www-data nextcloud_fpm php occ db:convert-filecache-bigint
docker exec --user www-data nextcloud_fpm php occ maintenance:mode --off
docker exec --user www-data nextcloud_fpm php occ db:add-missing-indices
Brute Force Protection und Reverse Proxy:
in Protokollierung:

/config/config.php:
hinzufĂĽgen von:
'trusted_proxies' => array('172.18.0.2'),
'forwarded_for_headers' => array('HTTP_X_FORWARDED_FOR')

Connections:
root@soxn:/nextcloud# nano nginx.conf
events {
worker_connections 768;
}
changed to 2048;Â
NGINX Bad Gateway – OnlyOffice
Anfangs habe ich folgenden Workaround für den Start von OnlyOffice benötigt, mittlerweile ist dieser hinfällig …
Bash-Script:
#!/bin/bash
url="https://document.DOMAIN"
keyword="Bad Gateway"
if curl -s "$url" | grep "$keyword"
then
# if the keyword is in the conent
echo " ERROR"
docker restart onlyoffice
else
echo "the website is working fine"
fi
sudo crontab -e
*/10 * * * * . /nextcloud/check.sh > /dev/null 2>&1
Preview Images
Damit die Anzeige in der Bildergalerie schneller funktioniert, können die Vorschaubilder mittels des Plugins "Preview Generator" vorab erzeugt werden.Â

Nach der Installation der App können die Vorschaubilder über folgenden Befehl erzeugt werden:
docker exec --user www-data nextcloud_fpm php occ preview:generate-all -vvv
Damit neue Vorschaubilder regelmäßig erzeugt werden, habe ich am Host-System einen Cronjob hinzugefügt:
sudo crontab -e
15 3 * * * docker exec --user www-data nextcloud_fpm php occ preview:pre-generate > /dev/null 2>&1
siehe auch: Linux CronJobs - geplante Tasks | Debian crontab [erklärt]
Client_max_body_size
File uploadsize.conf
client_max_body_size 10G;
docker-compose.ymlÂ
services:
proxy:
image: jwilder/nginx-proxy
container_name: proxy
ports:
- 80:80
- 443:443
volumes:
- ./proxy/conf.d:/etc/nginx/conf.d
- ./proxy/vhost.d:/etc/nginx/vhost.d
- ./proxy/html:/usr/share/nginx/html
- ./proxy/certs:/etc/nginx/certs:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./uploadsize.conf:/etc/nginx/conf.d/uploadsize.conf:ro
Redis / Cache
config/apcu.config.php
<?php
$CONFIG = array (
'memcache.local' => '\OC\Memcache\APCu',
'opcache.revalidate_freq' => 60,
'redis' => array(
'host' => 'nextcloud_redis',
'port' => 6379,
),
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
);
siehe auch: https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html
Docker .env
Wird in dem Ordner in dem sich die docker-compose.yml Datei befindet eine .env-Datei angelegt, können damit Docker-Parameter geändert werden:
#.env
COMPOSE_HTTP_TIMEOUT=200
Troubleshooting
Internal Server Error
Nach einem Stromausfall hatte ich folgendes Problem:
Internal Server Error
The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.
Der Redis-Container hat dabei ständig neu gestartet. Im Log konnte ich folgenden Eintrag finden:
Bad file format reading the append only file: make a backup of your AOF file, then use ./redis-check-aof --fix <filename>
Nachdem ich den Redis-Ordner ./nextcloud/redis gelöscht habe, konnte die Installation wieder gestartet werden.
WARNING: [pool www] server reached pm.max_children setting (5), consider raising itÂ
Mit den Standardeinstellungen wurde im Log des nextcloud:fpm Containers folgende Warnung angezeigt:
WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
Das Limit kann in der FPM-Config-Datei www.conf erhöht werden, diese ist im nextcloud:fpm Container versteckt:
Um die Datei anzuzeigen, können wir uns in den Container verbinden:
docker exec --user www-data -it nextcloud_fpm bash
Damit die Änderungen an der Config-Datei auch nach einem Reboot vorhanden sind, kann die Datei außerhalb des Containers abgelegt werden, dazu muss die Datei aber vorhanden sein:
mit cat /usr/local/etc/php-fpm.d/www.conf den Inhalt der www.conf anzeigen lassen und im Root Ordner www.conf anlegen:
Folgende Zeile in nextcloup_fpm hinzufĂĽgen:
- ./www.conf:/usr/local/etc/php-fpm.d/www.conf #added 4 max-childs-config
mit nano.conf kann die www.conf angepasst werden:
Nachdem ich in meinem NAS 8 GB Ram habe, habe ich folgende Werte angepasst:
pm.max_children = 80 #(vorher 5)
pm.start_servers = 2
pm.min_spare_servers = 2 #(voher 1)
pm.max_spare_servers = 15 #(vorher 3)
Die komplette Datei schaut bei mir wie folgt aus:
www.conf
[www]
user = www-data
group = www-data
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 80
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 15
Exception: Database error when running migration latest for app core
An exception occurred while executing a query: SQLSTATE[HY000]: General error: 4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.
Das Problem liegt an der MariaDB-Version. Ab Version 10.6 werden keine komprimierten Spalten mehr unterstĂĽtzt.Â
Ich habe das Problem fürs Erste gelöst, indem ich die Version 10.5 von MariaDB verwende:
docker-compose.yml
...
db:
image: mariadb:10.5
container_name: nextcloud_db
...
siehe: help.nextcloud.com/t/update-to-22-failed-with-database-error-updated/120682
Falsches Zeilenformat in deiner Datenbank gefunden. ROW_FORMAT=Dynamic

Â
Falsches Zeilenformat in deiner Datenbank gefunden. ROW_FORMAT=Dynamic bietet die beste Datenbankleistung fĂĽr Nextcloud. Bitte aktualisiere das Zeilenformat in der folgenden Liste: oc_passman_revisions, oc_phonetrack_shares, oc_systemtag, oc_audioplayer_whats_new, oc_group_folders, oc_calendar_appt_configs, oc_preferences, oc_calendarchanges, oc_mail_coll_addresses, oc_passman_files, oc_mail_aliases, oc_talk_attendees, oc_cards_properties, oc_direct_edit, oc_calendar_resources, oc_polls_comments, oc_mail_accounts, oc_bookmarks_folders_public, oc_music_cache, oc_storages, oc_deck_assigned_users, oc_calendar_appt_bookings, oc_talk_internalsignaling, oc_flow_operations, oc_deck_attachment, oc_bookmarks_tags, oc_audioplayer_playlist_tracks, oc_dav_cal_proxy, oc_calendar_invitations, oc_phonetrack_pubshares, oc_audioplayer_genre, oc_bookmarks_tree, oc_directlink, oc_deck_labels, oc_comments, oc_trusted_servers, oc_audioplayer_artists, oc_preview_generation, oc_flow_operations_scope, oc_bookmarks_folders, oc_gpxpod_tracks, oc_mail_provisionings, oc_bookmarks_shared_to_shares, oc_richdocuments_wopi, oc_calendar_reminders, oc_addressbooks, oc_user_transfer_owner, oc_talk_rooms, oc_gpxedit_options, oc_bookmarks_root_folders, oc_calendars, oc_talk_commands, oc_audioplayer_stats, oc_notifications, oc_circles_member, oc_bruteforce_attempts, oc_group_admin, oc_audioplayer_playlists, oc_polls_log, oc_mail_mailboxes, oc_calendarsubscriptions, oc_jobs, oc_calendarobjects_props, oc_recent_contact, oc_twofactor_providers, oc_cards, oc_circles_mountpoint, oc_files_trash, oc_polls_watch, oc_mail_trusted_senders, oc_activity, oc_phonetrack_tileserver, oc_addressbookchanges, oc_flow_checks, oc_polls_notif, oc_authorized_groups, oc_passman_credentials, oc_login_flow_v2, oc_calendar_rooms_md, oc_twofactor_backupcodes, oc_file_locks, oc_group_user, oc_polls_polls, oc_mail_message_tags, oc_music_ampache_users, oc_known_users, oc_external_applicable, oc_circles_membership, oc_phonetrack_devices, oc_gpxmotion_options, oc_systemtag_group, oc_text_steps, oc_federated_reshares, oc_polls_options, oc_appconfig, oc_groups, oc_migrations, oc_calendarobjects, oc_talk_sessions, oc_music_artists, oc_deck_board_acl, oc_external_mounts, oc_gpxpod_tile_servers, oc_deck_assigned_labels, oc_phonetrack_proxims, oc_collres_collections, oc_notifications_settings, oc_circles_token, oc_mindmaps_nodes, oc_group_folders_groups, oc_storages_credentials, oc_phonetrack_sessions, oc_news_items, oc_polls_votes, oc_twofactor_nextcloud_notification_tokens, oc_passman_sharing_acl, oc_calendar_rooms, oc_gpxmotion_tile_server, oc_external_config, oc_filecache, oc_audioplayer_streams, oc_mail_attachments, oc_users, oc_collres_accesscache, oc_mindmaps, oc_webauthn, oc_oauth2_clients, oc_twofactor_admin_codes, oc_vcategory_to_object, oc_oauth2_access_tokens, oc_mindmaps_acl, oc_music_ampache_sessions, oc_passman_delete_vault_request, oc_mail_tags, oc_schedulingobjects, oc_phonetrack_points, oc_gpxedit_tile_servers, oc_authtoken, oc_circles_circle, oc_passman_vaults, oc_activity_mq, oc_talk_bridges, oc_systemtag_object_mapping, oc_text_documents, oc_music_tracks, oc_bookmarks_shares, oc_whats_new, oc_circles_event, oc_mimetypes, oc_circles_share_lock, oc_phonetrack_filtersb, oc_richdocuments_member, oc_music_albums, oc_mail_recipients, oc_accounts_data, oc_privacy_admins, oc_audioplayer_albums, oc_phonetrack_geofences, oc_audioplayer_tracks, oc_external_options, oc_polls_preferences, oc_comments_read_markers, oc_music_playlists, oc_polls_share, oc_retention, oc_circles_remote, oc_passman_share_request, oc_onlyoffice_filekey, oc_dav_shares, oc_calendar_resources_md, oc_deck_cards, oc_bookmarks_shared_folders, oc_deck_stacks, oc_circles_mount, oc_text_sessions, oc_accounts, oc_deck_boards, oc_twofactor_totp_secrets, oc_properties, oc_user_status, oc_profile_config, oc_news_folders, oc_news_feeds, oc_collres_resources, oc_notifications_pushhash, oc_share, oc_ratelimit_entries, oc_filecache_extended, oc_mail_messages, oc_bookmarks, oc_share_external, oc_vcategory, oc_mounts.
zur DB verbinden:Â
docker inspect nextcloud_db
mysql -uroot -p?? -h 172.18.0.2
mysql> SELECT CONCAT( 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' ', 'ROW_FORMAT=DYNAMIC;' ) AS _alter FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE='InnoDB' AND ROW_FORMAT <> 'DYNAMIC';

Â
ALTER TABLEnextcloud.oc_passman_revisions ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_phonetrack_shares ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_systemtag ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_audioplayer_whats_new ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_group_folders ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_calendar_appt_configs ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_preferences ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_calendarchanges ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mail_coll_addresses ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_passman_files ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mail_aliases ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_talk_attendees ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_cards_properties ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_direct_edit ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_calendar_resources ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_polls_comments ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mail_accounts ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_bookmarks_folders_public ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_music_cache ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_storages ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_deck_assigned_users ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_calendar_appt_bookings ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_talk_internalsignaling ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_flow_operations ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_deck_attachment ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_bookmarks_tags ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_audioplayer_playlist_tracks ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_dav_cal_proxy ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_calendar_invitations ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_phonetrack_pubshares ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_audioplayer_genre ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_bookmarks_tree ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_directlink ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_deck_labels ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_comments ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_trusted_servers ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_audioplayer_artists ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_preview_generation ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_flow_operations_scope ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_bookmarks_folders ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_gpxpod_tracks ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mail_provisionings ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_bookmarks_shared_to_shares ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_richdocuments_wopi ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_calendar_reminders ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_addressbooks ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_user_transfer_owner ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_talk_rooms ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_gpxedit_options ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_bookmarks_root_folders ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_calendars ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_talk_commands ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_audioplayer_stats ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_notifications ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_circles_member ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_bruteforce_attempts ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_group_admin ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_audioplayer_playlists ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_polls_log ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mail_mailboxes ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_calendarsubscriptions ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_jobs ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_calendarobjects_props ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_recent_contact ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_twofactor_providers ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_cards ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_circles_mountpoint ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_files_trash ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_polls_watch ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mail_trusted_senders ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_activity ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_phonetrack_tileserver ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_addressbookchanges ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_flow_checks ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_polls_notif ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_authorized_groups ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_passman_credentials ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_login_flow_v2 ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_calendar_rooms_md ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_twofactor_backupcodes ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_file_locks ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_group_user ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_polls_polls ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mail_message_tags ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_music_ampache_users ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_known_users ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_external_applicable ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_circles_membership ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_phonetrack_devices ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_gpxmotion_options ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_systemtag_group ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_text_steps ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_federated_reshares ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_polls_options ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_appconfig ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_groups ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_migrations ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_calendarobjects ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_talk_sessions ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_music_artists ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_deck_board_acl ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_external_mounts ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_gpxpod_tile_servers ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_deck_assigned_labels ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_phonetrack_proxims ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_collres_collections ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_notifications_settings ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_circles_token ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mindmaps_nodes ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_group_folders_groups ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_storages_credentials ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_phonetrack_sessions ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_news_items ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_polls_votes ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_twofactor_nextcloud_notification_tokens ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_passman_sharing_acl ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_calendar_rooms ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_gpxmotion_tile_server ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_external_config ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_filecache ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_audioplayer_streams ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mail_attachments ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_users ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_collres_accesscache ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mindmaps ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_webauthn ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_oauth2_clients ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_twofactor_admin_codes ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_vcategory_to_object ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_oauth2_access_tokens ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mindmaps_acl ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_music_ampache_sessions ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_passman_delete_vault_request ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mail_tags ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_schedulingobjects ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_phonetrack_points ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_gpxedit_tile_servers ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_authtoken ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_circles_circle ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_passman_vaults ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_activity_mq ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_talk_bridges ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_systemtag_object_mapping ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_text_documents ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_music_tracks ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_bookmarks_shares ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_whats_new ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_circles_event ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mimetypes ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_circles_share_lock ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_phonetrack_filtersb ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_richdocuments_member ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_music_albums ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mail_recipients ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_accounts_data ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_privacy_admins ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_audioplayer_albums ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_phonetrack_geofences ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_audioplayer_tracks ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_external_options ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_polls_preferences ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_comments_read_markers ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_music_playlists ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_polls_share ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_retention ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_circles_remote ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_passman_share_request ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_onlyoffice_filekey ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_dav_shares ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_calendar_resources_md ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_deck_cards ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_bookmarks_shared_folders ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_deck_stacks ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_circles_mount ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_text_sessions ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_accounts ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_deck_boards ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_twofactor_totp_secrets ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_properties ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_user_status ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_profile_config ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_news_folders ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_news_feeds ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_collres_resources ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_notifications_pushhash ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_share ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_ratelimit_entries ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_filecache_extended ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mail_messages ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_bookmarks ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_share_external ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_vcategory ROW_FORMAT=DYNAMIC;
ALTER TABLE nextcloud.oc_mounts ROW_FORMAT=DYNAMIC;
Docker als Benutzer / ohne Root-Rechte
sudo groupadd docker
sudo gpasswd -a $USER docker
Router OpenWrt – interne IP
Nachdem mein NAS und somit die Nextcloud-Installation zu Hause direkt über das WLAN erreichbar ist, ohne Umweg: WLAN-Router – Internet – Router, ist es natürlich sinnvoll die Installation direkt aufzurufen, dazu reicht ein zusätzlicher DNS-Eintrag am Router: Split-DNS. Die Nextcloud-Domain wird im WLAN somit mit einer internen IP aufgelöst.
Hier als Beispiel die Anpassung meines auf OpenWrt-basierenden Router:
vi /etc/config/dhcp
config 'domain'
option name 'next.domain.xx'
option ip 192.168.1.5
config 'domain'
option name 'office.domain.xx'
option ip 192.168.1.5
config 'domain'
option name 'document.domain.xx'
option ip 192.168.1.5
Desktop-Client
FĂĽr das Synchronisieren von Dateien existiert fĂĽr Windows, macOS und Linux ein Desktop Client. Der Client integriert sich nahtlos in den Filemanager und kĂĽmmert sich um das Synchronisieren der Ordner.
OrdnerSync Rasperry PI
Installieren:
sudo apt install owncloud-client-cmd
und eintragen in crontab:
crontab -e
* * * * * owncloudcmd /lokalerOrdner https://user:password@nextcloudURL/remote.php/webdav/Ordner >/dev/null 2>&1
Fazit
Nextcloud wertet meinen NAS um unzählige Funktionen auf und bietet mir die Möglichkeit Cloud-Dienste wieder nach Hause zu bringen:
Mit Nextcloud habe ich jetzt Sync-Clients für Android, Windows und Linux, kann im Browser Office-Dokumente, Diagramme oder Abstimmungen erstellen. Neben den Fotos vom Smartphone kann ich zudem meine Kontakte und Kalendereinträge synchronisieren oder mit anderen teilen und könnte sogar einen eigenen Messenger inkl. Anruf- und Video-Funktion betreiben und vieles mehr …
({{pro_count}})
{{percentage}} % positiv
({{con_count}})
DANKE fĂĽr deine Bewertung!
Fragen / Kommentare
(sortiert nach Bewertung / Datum) [alle Kommentare(am besten bewertete zuerst)]
Es ist schon wirklich witzig: Webservices sind aus unserem Leben nicht mehr wegzudenken und immer mehr Menschen sind vor allem durch NEXTCLOUD motiviert, die erste Erfahrung mit Linux und dem Aufsetzen eines Servers unter Linux zu sammeln. Und egal, wie motiviert man sich damit beschäftigt: Es gibt einfach keine fachlich UND didaktisch sauberen Erklärungen im Netz. Wie auch hier. Ich finde es enorm schade, dass sich jemand die Mühe macht, ein seitenlanges Tutorial wie dieses hier zu schreiben, das für Anfänger komplett zum Scheitern verurteilt ist, weil winzige Schritte einfach ausgelassen werden und damit das ganze Tutorial wertlos ist. Folgt man dem Tutorial bis zum Starten der Docker-Container (haarklein, und ich meine wirklich 1:1 ohne jeden Fehler), dann greift schon der Aufruf der IP-Adresse des Nextcloud-Servers ins Leere "Seite ist nicht erreichbar". Warum? Tja. Vermutlich ist die NGINX.CONFIG nicht einfach so übernehmbar, es wird ja auch mit keinem Wort erwähnt, WIE man sie in DIESER SPEZIELLEN ANWENDUNG zu konfigurieren hat, wo die Knackpunkte liegen, worauf man achten soll, wie das mit den Relativpfaden hier läuft und und und. Stattdessen einfach nur eine Datei, die "als Beispiel verwendet werden" darf. Also ist auch dieses Tutorial ein weiteres Tutorial für Leute, die eh schon wissen, wie es geht und sich gerne noch einmal durchlesen, wie es andere so machen. Aber es ist eben kein Tutorial, das Menschen mitnimmt, die sich brennend für die Umsetzung interessieren. Warum dann all die Mühe, so ein Tutorial überhaupt zu schreiben? Wieso nicht den präzisen Weg gehen, OHNE bei Elementareinstellungen etwas zu überspringen. Man hört an allen Ecken und Enden "dann benutz doch Google". Aber die Personen, die einem das empfehlen, haben nicht die Spur einer Ahnung, wie viele völlig veraltete Beschreibungen da von Google ausgespuckt werden, viele unbrauchbar, die meisten von Nerds für Nerds, die allermeisten didaktisch totaler Sondermüll. Und so bleibt es auch heute, wie es seit Jahrzehnten immer schon war: Linux-Experten bleiben unter sich und schreibt Artikel für sich selbst.
Vielen Dank für dein Feedback:
Aus deiner Rückmeldung hätte ich verstanden, dass du die docker-compose.yml-Datei ohne einer Anpassung 1:1 kopiert hast?
Ziel dieses Tutorials sollte sein, dass der Zugriff über einen DNS-Eintrag (Domain) vom Internet stattfindet, was den verlinkten Traefik-Reverse-Proxy und das Hinzufügen der Domain in der docker-compose.yml-Datei voraussetzt.
Falls du für Testzwecke direkt auf die IP-Adresse zugreifen möchtest, solltest du in der docker-compose.yml Datei: ports: -83:30 aktivieren, indem der Kommentar entfernt wird: "#":
...
ports:
- "83:80"
...
Zudem war für dich nicht ganz klar, dass die Dateien nginx.conf und docker-compose.yml im selben Ordner liegen sollen?
Ich versuche den Artikel bei Gelegenheit zu überarbeiten. Um besser zu verstehen, an welchem Punkt du genau nicht weiter gekommen bist, wäre ich über eine weitere Rückmeldung sehr dankbar.Beitrag erstellt von Bernhard
Aloa,
vielen Dank für die Beschreibung. Ich versuche die Installation ebenfalls umzusetzen und scheitere beim Installieren.
Es geht um folgenden Teil, der wohl Ärger macht:
+-+-+-+
networks:
nextcloud:
external:
name: webproxy
+-+-+-+
die Fehlermeldung lautet:
+-+-+-+
Deployment error
failed to deploy a stack: Network webproxy declared as external, but could not be found. Please create the network manually using `docker network create webproxy` and try again. : exit status 1
+-+-+-+
Das Netzwerk webproxy wird durch den Nginx-Reverse Proxy erstellt, dieser wird für https vorausgesetzt. Also zuerst muss der Reverse Proxy eingerichtet werden, siehe Schritt für Schritt.
Beitrag erstellt von Bernhard
User: Jens Ich bekomme nach der Installation immer nur ein 504 Gateway Time-out, wo sollte ich mit der Suche ansetzen? (Installiert ist nur: proxy, companion, db, fpm & webserver)
User: Raphael Vielen Dank für das hilfreiche Manual! Den Absatz um die pm.max_children zu ändern hab ich, so denke ich, nicht ganz verstanden. Stimmt das so:? Man verbindet sich mit dem Docker Container und bearbeitet darin die www.conf datei, indem man die Zeile mit dem Verweis auf die neue Config Datei hinzufügt. Anschließend legt man eine www.conf Date im root ordner des Servers (außerhalb des containers) an und fügt die 4 Zeilen mit den pm.max children ein. Aber wird nicht bei jedem neuen build des containers die www.conf im docker auf die ursprüngliche Version zurückgesetzt? Würde mich über eine Antwort freuen... raphael_unterrainer(AT)hotmail.com
User: Zinnik Hallo ich habe ein Problem mit der nextcloud im docker auf einer qnap nas. Ich kann kein letsencrypt zertifikat erstellen. Kannst du mir helfen?


