Nextcloud – Skrypt Instalacyjna dla systemów Linux

Ten skrypt został przygotowany pod czystą (minimalną) instalację systemów Linux takich jak:
Debiana 11/12, Entepreise Linux 9, Ubuntu Server 22, Fedora Server 39 na architekturze procesorów AMD64 (x86_64).
Zaktualizuje on system operacyjny, zainstaluje potrzebne pakiety i wstępnie skonfiguruje wszystko do uruchomienia Nextcloud.
Wśród nich są Apache (serwer WWW), MariaDB (serwer baz danych), PHP (język programowania),
NTP (usługa synchronizacji czasu) i Redis (serwer cache).
Generowana jest także nowa usługa cron dla Nextcloud, która uruchamia się co 5 minut.
Do Nextcloud zostanie dodany nowy użytkownik z uprawnieniami administracyjnymi, jego dane uwierzytelniające znajdziesz po zakończeniu pracy skryptu (hasło jest generowane losowo).

Po instalacji możesz korzystać z przeglądarki internetowej, aby uzyskać dostęp do Nextcloud za pomocą lokalnego adresu IP.
Protokoły HTTP i HTTPS są domyślnie włączone (generowany jest certyfikat localhost).
Jeżeli masz już domenę, której chcesz użyć to możesz to zrobić dodając ją jako argument do komendy uruchamiającej skrypt. Pamiętaj jednak, że domena musi być wcześniej ustawiona na adres IP Twojego serwera, oraz Twoje urządzenia sieciowe (routery) muszą być już poprawnie skonfigurowane. W innym wypadku generowanie certyfikatów SSL się nie powiedzie.

Link do skryptu: https://github.com/nicrame/Linux-Scripts/blob/master/nextcloud-ins.sh

Aby zainstalować użyj tej komendy:

sudo sh -c "wget -q https://github.com/nicrame/Linux-Scripts/raw/master/nextcloud-ins.sh && chmod +x nextcloud-ins.sh && ./nextcloud-ins.sh"

Lub – jeżeli posiadasz skonfigurowaną domenę:

sudo sh -c "wget -q https://github.com/nicrame/Linux-Scripts/raw/master/nextcloud-ins.sh && chmod +x nextcloud-ins.sh && ./nextcloud-ins.sh -dm=mojadomena.com"

Wszystkie dostępne argumenty skryptu (można, ale nie trzeba dopisywać do komendy startowej):
-lang – obsługa wielu języków, obecnie dostępne: Arabski (ar), Chiński (zh), Francuski (fr), Hindi/Indyjski (hi), Polski (pl), Hiszpański (es) i Ukraiński (uk). Opcja pozostawiona  bez zdefiniowania po prostu nie doda pakietów systemowych i nie skonfiguruje wstępnie Nextcloud (pozostanie domyślny język przeglądarki www).
-mail – adres email konta administracyjnego.
-dm – domena, której chcemy używać, skrypt skonfiguruje serwer www aby domena wskazywała na Nextcloud, doda ją jako zaufany adres dla samego NC, oraz skonfiguruje usługę certyfikatów SSL (Let's encrypt) aby działało bezpieczne połączenie httpS. Domena musi być wcześniej już skonfigurowana tj. wskazywać na adres IP, na którym udostępniamy usługę. Router także powinien być już wcześniej skonfigurowany (to znaczy, przekierowywać ruch z zewnątrz na port 80 i 443 serwera, na którym działa Nextcloud).
-nv – wersja Nextcloud, której chcemy użyć. Dostępne są wersje 24, 25, 26, oraz 27. Starsze wersje mają dostosowaną instalacje i konfigurację PHP dopasowaną do wersji NC. Brak wybranej opcji zainstaluje najnowszą na dany moment wersję skryptu.

Należy zwrócić uwagę, aby definiować argumenty za znakiem sumy (=).

Przykładowe użycie skryptu z wszystkimi opcjami:

sudo sh -c "wget -q https://github.com/nicrame/Linux-Scripts/raw/master/nextcloud-ins.sh && chmod +x nextcloud-ins.sh && ./nextcloud-ins.sh -lang=pl -mail=[email protected] -dm=mojadomena.com -nv=24"

Przetestowane z Nextcloud v24-V30.

Historia zmian:
V 1.11.3 – 12.09.2024
– Nextcloud Hub 9 (v30) jest teraz domyślnie instalowany (najnowsza wersja).
– Zaktualizowano domyślne wersje do najnowszych wydań przy użyciu parametru -nv.
– Dodano kilka poleceń, aby upewnić się, że PHP 8.3 jest używane jako wersja domyślna.
– Drobne zmiany i poprawki.
V 1.11.2 – 16.05.2024
– Nowe argumenty: -backup (tworzenie kopii zapasowej) i -restore (który może być użyty z argumentem „list", aby wyświetlić wcześniej utworzone kopie zapasowe, lub z nazwą pliku, aby użyć go do przywrócenia z niego).
– Zmodyfikowano nazwy plików kopii zapasowych, aby wyświetlały więcej danych (datę, godzinę i wersję Nextcloud, której kopia zapasowa jest tworzona).
V 1.11 – 16.05.2024
– Aktualizacja dokumentacji wewnątrz skryptu.
– Pierwsza próba utworzenia funkcji kopii zapasowej/przywracania.
V 1.10 – 19.04.2024
– Nextcloud Hub 8 (v29) jest teraz domyślnie instalowany (najnowsza wersja).
– PHP 8.3 używane jako domyślna wersja.
– Naprawiono błąd, który nie pozwalał na instalację starszych wersji NC (i PHP 7.4).
V 1.9.2 – 13.03.2024
– Sprawdzenie, czy parametr „fdir" jest skonfigurowany dla już istniejącego katalogu i poinformowanie, jeśli nie.
– Poprawiono spacje w nazwach katalogów zapisywanych w fstab, skonfigurowanych z argumentem -fdir (fstab nie obsługuje spacji w nazwach katalogów).
V 1.9.1 – 12.03.2024
– Pewne aktualizacja opisu i kilka zmian w kodzie, które nie wpływają na sposób działania skryptu.
– Dodanie kodu instalacyjnego PHP 8.3 (obecnie wyłączonego) dla przyszłych wersji NC.
V 1.9 – 04.03.2024
– Nowy argument pozwalający skonfigurować lokalizację katalogu „data", w którym przechowywane są pliki użytkownika (korzysta z mount/fstab w celu zapewnienia zgodności z mechanizmami bezpieczeństwa).
V 1.8.1 – 07.02.2024
– Pierwsze wydanie z obsługą dystrybucji Fedora Server 39 i Ubuntu Server LTS (22).
V 1.8 – 04.02.2024
– Pierwsze wydanie z obsługą Rocky Linux (9) oraz innych dystrybucji Enterprise Linux
– Trochę więcej optymalizacji kodu.
V 1.7.1 – 01.02.2024
– Czyszczenie kodu źródłowego skryptu (jest mniejszy o 1/4!).
– Dodano opcję "maintenance window start" do konfiguracji (w związku z dzisiejszym wydaniem wersji 28.0.2).
V 1.7 – 30.01.2024
– Poprawki dla generowania miniatur/podglądu.
– Wyłączenie trybów uśpienia/hibernacji w systemie operacyjnym.
– Dodanie obsługi protokołu HTTP2.
– Mała poprawka bezpieczeństwa.
– Ulepszenia opisów w źródle skryptu.
V 1.6.4 – 04.01.2024
– Dodano instalacje modułu bz2 dla PHP (w związku z wydaniem Nextcloud Hub 7).
– Drobne poprawki.
V 1.6.3 – 04.11.2023
– Szersze testy działania.
– Drobne poprawki.
V 1.6.2 – 04.08.2023
– Więcej języków jest teraz obsługiwanych poprzez parametr "-lang=" (Arabski (ar), Chiński (zh), Francuski (fr), Hindi/Indyjski (hi), Polski (pl), Hiszpański (es) i Ukraiński (uk)).
V 1.6.1 – 03.08.2023
– Drobne poprawki.
V 1.6 – 03.08.2023
– Nowa zmienna umożliwiająca instalację starszej wersji Nextcloud (użytkownicy zgłaszali problemy z NC27).
– Skrypt zmienia nazwę po zakończeniu pracy (więc polecenie instalatora zawsze odnosi się do najnowszej wersji).
– Skrypt jest przygotowany na kilka przyszłych aktualizacji (aż do Nextcloud v28).
V 1.5.5 – 12.07.2023
– Lepszy opis zmiennych używanych w przypadku błędu.
V 1.5.4 – 07.07.2023
– Naprawiono kilka problemów logicznych.
– Dodano wsparcie dla Debiana 12.
– Dodano wsparcie dla Nextcloud Hub 5 (v27).
V 1.5.3 – 15.04.2023
– Używanie starszej wersji PHP (8.1) do procesu aktualizacji przed jej usunięciem (Nextcloud nie kończy procesu aktualizacji na nigdy nie zainstalowanej wersji PHP).
– Sprawdza aktualnie zainstalowaną wersję Nextcloud i zaktualizuj ją tyle razy, ile potrzeba (do wersji 26) – podczas aktualizacji ze skryptu w wersji 1.4 lub starszej.
V 1.5.2 – 05.04.2023
– Instalacja i włączenie aplikacji twofactor_webauthn dla większego bezpieczeństwa (testowane z Yubikey).
V 1.5.1 – 05.04.2023
– Aktualizacja z wersji 1.4 i niższych dodana do skryptu.
V 1.5 – 25.03.2023
– Używa Nextcloud Hub 4 (v26).
– Ponownie włączenie opcache (wygląda na to, że teraz działa dobrze).
– Używa PHP w wersji 8.2.
– Instaluje ddclient (dynamiczny klient DNS – https://ddclient.net/).
– Instaluje miniupnpc i uruchamia dla portów 80 i 443 by je otworzyć (nie powinno być to konieczne, ale…).
– Dodano więcej zmiennych do użycia (język, e_mail).
– Instalator tworzy teraz plik z numerem wersji dla przyszłych aktualizacji.
– Instalator wykrywa, czy używane były starsze wersje skryptu i w następnym wydaniu zaktualizuje wszystko (w tym nextcloud).
V 1.4.3 – 24.02.2023
– Zezwolenie na opcję konfiguracji samopodpisanego certyfikatu w nextcloud (czasami może być potrzebna).
V 1.4.2 – 10.02.2023
– Całkowite wyłączenie opcache z powodu wielu segfaultów, nawet gdy JIT jest całkowicie wyłączony.
V 1.4.1 – 08.02.2023
– Opcache jit cache w php został wyłączony z powodu wielu zgłaszanych segfaultów.
V 1.4 – 31.01.2023
– Poprawki dzięki użytkownikowi "maybe" z portalu hejto.pl (ufw, redis, chmods itp.) Dziękuję!
V 1.3 – 30.01.2023
– Poprawka instalacji PHP 8.1.
– Więcej danych przechowywanych w dzienniku dla lepszej obsługi błędów.
V 1.2 – 23.01.2023
– Kilka poprawek wydajności (lepsze wsparcie dla dużych plików).
V 1.1 – 04.08.2022
– Wbudowano wsparcie dla dodawania nazwy domeny jako argumentu linii poleceń (z obsługą let's ecnrypt).
– Dodano zadanie crontab dla certbot (Let's encrypt – odświeżanie certyfikatu) i poszerzono opisy.
V 1.0 – 20.06.2022
– Pierwsze wydanie bazujące na prywatnym skrypcie (dla EL).