Ustaw publiczny adres URL NextCloud, aby mógł się do siebie dodzwonić
Napraw ostrzeżenie Nextcloud o brakującym adresie wychodzącym, ustawiając jego kanoniczny adres URL i sprawdzając routing DNS, HTTPS i odwrotnego serwera proxy na samym serwerze.
Aby utworzyć niezawodną kopię zapasową w Nextcloud, wstrzymaj aktywność użytkownika, wyeksportuj bazę danych i użyj Restic do przechwycenia tego eksportu wraz z katalogami aplikacji i danych. Umieść zadanie w skrypcie należącym do użytkownika root i zaplanuj je za pomocą crona; zweryfikuj migawki i wykonaj testowe przywracanie, zanim zaczniesz korzystać z harmonogramu.
W tym przykładzie założono serwer Debian lub Ubuntu, bezpośrednią instalację Nextcloud w [brakuje nazwy użytkownika] /var/www/nextcloud, oddzielny katalog danych w /srv/nextcloud-data[brakuje nazwy użytkownika] oraz MariaDB. Zastąp te wartości rzeczywistymi ścieżkami i nazwą bazy danych. Kroki zostały sprawdzone pod kątem zgodności z dokumentacją Nextcloud 35 Administration Manual oraz Restic 0.19.1 w październiku 2026 roku.

Wskazówki dotyczące tworzenia kopii zapasowych Nextcloud wymieniają konfigurację, dane, bazę danych, motyw i wszelkie niestandardowe aplikacje jako ważne elementy, które należy zachować. Kopia zapasowa pełnego katalogu aplikacji zazwyczaj obejmuje konfigurację i dołączone aplikacje, ale sprawdź, czy aplikacje niestandardowe, motywy lub katalog danych znajdują się gdzie indziej na serwerze. Uwzględnij każdą oddzielną ścieżkę w poleceniu Restic.
Tryb konserwacji blokuje istniejące sesje i uniemożliwia nowe logowania podczas tworzenia kopii zapasowej. Dzięki temu baza danych i pliki są mniej podatne na zmiany w różnych momentach, ale jednocześnie usługa NextCloud jest niedostępna przez cały czas. W przypadku dużego magazynu danych zaplanuj zadanie w cichym oknie. Jeśli serwer ma zewnętrzne procesy robocze lub skrypty, które zapisują dane bezpośrednio w katalogu danych, należy je również wstrzymać.
Oficjalne instrukcje tworzenia kopii zapasowych Nextcloud wyjaśniają komponenty i opcje eksportu bazy danych. Ta procedura wykorzystuje bazę MariaDB; w przypadku PostgreSQL, MySQL lub SQLite należy użyć odpowiednich poleceń zrzutu (dump) i przywrócenia (restore) z sekcji dotyczącej bazy danych w tym podręczniku .
Zainstaluj Restic i klienta MariaDB, korzystając z zaufanego źródła pakietów swojej dystrybucji. Wybierz repozytorium na innym dysku lub zdalnym miejscu docelowym kopii zapasowej. Repozytorium przechowywane wyłącznie na serwerze Nextcloud nie chroni przed utratą tego serwera ani jego pamięci masowej. Nie umieszczaj repozytorium w żadnym z katalogów objętych kopią zapasową.
Restic szyfruje dane repozytorium, ale do ich przywrócenia potrzebne jest hasło repozytorium. Utwórz plik haseł i przechowuj jego zabezpieczoną kopię poza serwerem, na przykład w zatwierdzonym menedżerze haseł. W przypadku utraty hasła, zaszyfrowane repozytorium nie będzie mogło zostać odczytane. Unikaj umieszczania hasła bezpośrednio w wierszu poleceń, pliku crontab lub skrypcie.
sudo install -d -m 700 /root/.config/restic
sudo install -m 600 /dev/null /root/.config/restic/nextcloud-password
sudo install -m 600 /dev/null /root/.config/restic/nextcloud.env
Bezpiecznie umieść wybrane hasło Restic w pliku haseł. W pliku środowiskowym wpisz lokalizację repozytorium i ścieżkę dostępu do pliku haseł:
RESTIC_REPOSITORY=/mnt/backup/nextcloud
RESTIC_PASSWORD_FILE=/root/.config/restic/nextcloud-password
W przypadku zdalnego zaplecza należy użyć udokumentowanego adresu URL repozytorium i danych uwierzytelniających tego zaplecza, przechowywanych z ograniczonymi uprawnieniami. Dokumenty Restic dotyczące konfiguracji repozytorium i obsługiwanej zmiennej środowiskowej pliku haseł znajdują się w podręczniku przygotowania repozytorium . Nowe repozytorium należy zainicjować raz, a nie przy każdym uruchomieniu:
set -a
. /root/.config/restic/nextcloud.env
set +a
restic init

Dane uwierzytelniające MariaDB również wymagają ochrony. Skonfiguruj plik opcji klienta, który może odczytać użytkownik root, na przykład /root/.my.cnfz nazwą użytkownika bazy danych, hasłem i hostem, a następnie ustaw jego uprawnienia na 600. Poniższy skrypt przekazuje ten plik do mariadb-dump, aby hasło bazy danych nie pojawiało się w argumentach procesu.
Zapisz poniższe jako /usr/local/sbin/nextcloud-restic-backup. Dostosuj NC_DATA_DIRi DB_NAMEdopasuj config/config.php. Skrypt włącza tryb konserwacji, eksportuje MariaDB, tworzy kopię zapasową aplikacji, danych i tymczasowego zrzutu SQL, a następnie wyłącza tryb konserwacji, nawet jeśli późniejsze polecenie się nie powiedzie.
#!/usr/bin/env bash
set -Eeuo pipefail
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NC_DIR=/var/www/nextcloud
NC_DATA_DIR=/srv/nextcloud-data
DB_NAME=nextcloud
RESTIC_ENV=/root/.config/restic/nextcloud.env
DB_CNF=/root/.my.cnf
set -a
source "$RESTIC_ENV"
set +a
exec 9>/run/lock/nextcloud-restic.lock
flock -n 9 || exit 0
mountpoint -q /mnt/backup || {
echo "Backup target is not mounted" >&2
exit 1
}
install -d -m 700 /var/backups/nextcloud
STAGE_DIR=$(mktemp -d /var/backups/nextcloud/db.XXXXXX)
maintenance_on=0
cleanup() {
if [[ "$maintenance_on" -eq 1 ]]; then
sudo -u www-data php "$NC_DIR/occ" maintenance:mode --off ||
logger -t nextcloud-restic "Could not disable maintenance mode"
fi
rm -rf "$STAGE_DIR"
}
trap cleanup EXIT
trap 'exit 130' INT
trap 'exit 143' TERM
sudo -u www-data php "$NC_DIR/occ" maintenance:mode --on
maintenance_on=1
mariadb-dump --defaults-extra-file="$DB_CNF" --single-transaction --default-character-set=utf8mb4 "$DB_NAME" > "$STAGE_DIR/nextcloud.sql"
test -s "$STAGE_DIR/nextcloud.sql"
restic backup "$NC_DIR" "$NC_DATA_DIR" "$STAGE_DIR" --tag nextcloud
Ustaw właściciela i uprawnienia tak, aby tylko użytkownik root mógł edytować lub uruchamiać skrypt, a następnie przetestuj go ręcznie podczas przerwy konserwacyjnej. To mountpointsprawdzenie zapobiega sytuacji, w której brakujący dysk kopii zapasowej automatycznie wysyła duże repozytorium do lokalnego systemu plików serwera. Jeśli repozytorium jest zdalne, a nie zamontowane lokalnie, zastąp to sprawdzenie niezawodnym sprawdzeniem zaplecza.
Sprawdź ścieżki przed pierwszym uruchomieniem. Jeśli folder danych znajduje się już w katalogu /var/www/nextcloud, nie zakładaj, że przykładowa ścieżka jest poprawna; użyj rzeczywistego katalogu danych z konfiguracji NextCloud. Sprawdź również, czy niestandardowe aplikacje lub motywy przechowywane poza katalogiem aplikacji są wyraźnie uwzględnione.

Po pomyślnym uruchomieniu ręcznym dodaj wpis crontab roota za pomocą sudo crontab -e. Ten przykład uruchamia zadanie codziennie o 2:30 w nocy, używając pełnej ścieżki skryptu i rejestrując dane wyjściowe w celu rozwiązywania problemów:
30 2 * * * /usr/local/sbin/nextcloud-restic-backup >> /var/log/nextcloud-restic.log 2>&1
Cron zapewnia ograniczone środowisko, więc skrypt ustawia wartość jawną PATHi sam wczytuje ustawienia Restic. Sprawdź, czy cron jest włączony w Twojej dystrybucji i czy ten czas nie pokrywa się z czasem uruchomienia zadania w tle w NextCloud lub innym zadaniem konserwacyjnym. Podręcznik crontab dla systemu Linux opisuje format harmonogramu i środowisko udostępniane przez cron.
Potwierdź, że zadanie zadziałało, sprawdzając /var/log/nextcloud-restic.log, czy wyjście zostało pomyślnie zakończone i wyświetlając listę ostatnich migawek:
sudo bash -lc 'set -a; source /root/.config/restic/nextcloud.env; set +a; restic snapshots'
sudo bash -lc 'set -a; source /root/.config/restic/nextcloud.env; set +a; restic check'
Standardowa weryfikacja struktury repozytorium Restic check. Pełny odczyt danych trwa dłużej i może wymagać znacznej przepustowości dla zdalnego repozytorium. Zaplanuj to restic check --read-dataokresowo lub użyj do sprawdzania fragmentów w czasie. Zobacz dokumentację integralności repozytorium--read-data-subset Restic .
Lista migawek nie jest testem przywracania. Przywróć ostatnią migawkę do osobnego katalogu roboczego za pomocą , a następnie sprawdź, czy pliki aplikacji, katalog danych i zrzut SQL są obecne. Nie przywracaj na żywo w ramach testu. W celu faktycznego odzyskania, przywróć pliki i bazę danych jako jeden dopasowany zestaw; instrukcje przywracaniarestic restore latest --target /tmp/nextcloud-restore-test Nextcloud obejmują kwestie związane z odtworzeniem bazy danych i synchronizacją klienta.
Ta konfiguracja zapewnia powtarzalne, szyfrowane migawki, ale cron nie monitoruje własnych awarii, a Restic nie decyduje o polityce przechowywania. Przejrzyj dziennik lub skonfiguruj alerty dotyczące nieudanych uruchomień, zachowaj osobną kopię danych uwierzytelniających repozytorium i regularnie testuj odzyskiwanie. Jeśli okno konserwacji jest zbyt długie, użyj skoordynowanych migawek systemu plików i eksportu spójnego z bazą danych, zaprojektowanego dla Twojej platformy pamięci masowej, zamiast tworzyć kopie zapasowe zmieniających się plików na żywo.

Napraw ostrzeżenie Nextcloud o brakującym adresie wychodzącym, ustawiając jego kanoniczny adres URL i sprawdzając routing DNS, HTTPS i odwrotnego serwera proxy na samym serwerze.
Skonfiguruj APCu i Redis przez lokalne gniazdo Unix na potrzeby buforowania i blokowania plików w usłudze Nextcloud, wraz z instrukcjami dla bieżących i starszych wersji usługi Nextcloud.
Sprawdź tryb cron Nextcloud, napraw usługę systemd i timer oraz zweryfikuj, czy zadania w tle są uruchamiane po uruchomieniu i co pięć minut.
Włącz niezawodne blokowanie plików Nextcloud, wybierz odpowiedni serwer Redis lub Valkey i sprawdź, czy ostrzeżenie zostanie usunięte bez ryzyka równoczesnych zmian w plikach.
Napraw typowe błędy skanowania Nextcloud dzięki bieżącym aktualizacjom, protokołom HTTPS i HSTS, precyzyjnemu zaufaniu do odwrotnego serwera proxy i sprawdzeniu względem serwera publicznego.
Skonfiguruj Nextcloud SSE dla pamięci masowej, która tego wymaga, chroń klucze szyfrujące i zmierz wpływ transferu i procesora przed zaszyfrowaniem istniejących plików.
Połącz wyszukiwarkę plików Nextcloud z Elasticsearch, zindeksuj zawartość dokumentów i wybierz konfigurację odpowiadającą Twoim potrzebom w zakresie serwera i bezpieczeństwa.
Skonfiguruj Nextcloud tak, aby usuwał usunięte pliki po upływie określonego czasu przechowywania, niezawodnie planował zadania w tle i unikał poleceń, które usuwają śmieci każdego użytkownika.
Wykonaj bezpieczną naprawę OCC w Nextcloud, przejrzyj zmiany w bazie danych i sprawdź, dlaczego ostrzeżenie może nadal się pojawiać.
Zezwól na przesyłanie większych plików przez przeglądarkę Nextcloud, dostosowując ustawienia PHP, Nginx lub Apache, tymczasowego miejsca przechowywania i limitu czasu — i sprawdź, który limit blokuje plik.