Nextcloud to rozwiązanie chmurowe open source, będące forkiem ownCloud, założone w 2016 roku przez byłego twórcę ownCloud, Franka Karlitscheka. Dzięki Nextcloud możesz prowadzić własną prywatną chmurę do plików, kalendarzy, kontaktów, czatu i wideorozmów – całkowicie pod swoją kontrolą, zamiast u zewnętrznego dostawcy.
Aby zapewnić optymalną wydajność, stabilność i funkcjonalność, zalecamy następującą konfigurację do hostingu serwera Nextcloud. Serwer Nextcloud nie jest kompatybilny z Windows ani macOS, przynajmniej bez dodatkowej wirtualizacji lub podobnych obejść.
Poniższe wymagania opierają się na oficjalnych wymaganiach systemowych Nextcloud oraz naszych własnych doświadczeniach. Jeśli nie spełniasz tych wymagań, mogą wystąpić problemy.
| Komponenty | Minimum | Zalecane |
|---|---|---|
| CPU | 1x 2 GHz | 4x 2+ GHz |
| RAM | 1 GB | 4+ GB |
| Pamięć | 10 GB | 50+ GB (w zależności od ilości przechowywanych danych) |
| Przepustowość | 100 Mbit/s (wysyłanie i pobieranie) | 500 Mbit/s (wysyłanie i pobieranie), zalecane przy wielu użytkownikach |
| Platforma | Opcje |
|---|---|
| System operacyjny | Ubuntu (22.04, 24.04), Debian (12, 13) |
| Baza danych | MariaDB 10.11+ (zalecane), PostgreSQL 14+, MySQL 8.0+, SQLite (tylko do testów i minimalnych instalacji) |
| Serwer WWW | Apache 2.4 z mod_php lub php-fpm (zalecane), alternatywnie Nginx z php-fpm |
| PHP | 8.3, 8.4, 8.5 (zalecane) |
Aby poznać najnowsze wymagania, zajrzyj do oficjalnej dokumentacji Nextcloud – Nextcloud regularnie aktualizuje wymagania dotyczące PHP i baz danych przy nowych wersjach głównych.
Do instalacji chmury na serwerze Linux potrzebne jest połączenie przez klienta SSH. Jeśli nie znasz SSH, zapoznaj się z tym przewodnikiem: Pierwszy dostęp (SSH)
Po nawiązaniu połączenia możesz zainstalować niezbędne pakiety potrzebne do instalacji Nextcloud. Obejmuje to instalację serwera WWW oraz PHP wraz z rozszerzeniami wymaganymi przez Nextcloud (m.in. gd, curl, mbstring, xml, zip, intl, bcmath, gmp, apcu).
Apache (serwer WWW) i PHP
🗄️ Ubuntu 24.04 (dostarczane z PHP 8.3):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 php php-cli php-fpm php-common php-mysql php-pgsql php-sqlite3 php-zip php-gd php-mbstring php-curl php-xml php-bcmath php-intl php-gmp php-imagick php-apcu
🗄️ Ubuntu 22.04 (domyślne PHP 8.1, za stare dla aktualnych wersji Nextcloud – wymaga PPA):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 software-properties-common
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update
sudo apt -y install php8.3 php8.3-cli php8.3-fpm php8.3-common php8.3-mysql php8.3-pgsql php8.3-sqlite3 php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-intl php8.3-gmp php8.3-imagick php8.3-apcu
🗄️ Debian 13 „trixie" (dostarczane z PHP 8.3):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 php php-cli php-fpm php-common php-mysql php-pgsql php-sqlite3 php-zip php-gd php-mbstring php-curl php-xml php-bcmath php-intl php-gmp php-imagick php-apcu
🗄️ Debian 12 „bookworm" (domyślne PHP 8.2, za stare dla aktualnych wersji Nextcloud – wymaga repozytorium zewnętrznego):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 lsb-release apt-transport-https ca-certificates wget
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
sudo apt -y install php8.3 php8.3-cli php8.3-fpm php8.3-common php8.3-mysql php8.3-pgsql php8.3-sqlite3 php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-intl php8.3-gmp php8.3-imagick php8.3-apcu
Sprawdzenie wersji PHP:
php -v
Nextcloud wymaga memory_limit = 512M lub więcej. Ustaw tę wartość w odpowiednim pliku php.ini (np. /etc/php/8.3/apache2/php.ini lub /etc/php/8.3/fpm/php.ini) i zrestartuj Apache lub PHP-FPM.
Następny krok to wybór typu bazy danych do przechowywania danych Nextcloud. Wybierz jedną z poniższych opcji i wykonaj tylko kroki dla wybranej bazy.
Instalacja pakietu:
sudo apt-get install mariadb-server
Podczas instalacji zostaniesz poproszony o ustawienie hasła root. Jeśli nie pojawi się takie zapytanie, domyślne hasło jest puste. To niebezpieczne i należy je natychmiast zmienić!
Następnie połącz się z serwerem bazy danych i utwórz wymaganą bazę:
mysql -u root -p
CREATE DATABASE nextcloud;
Potem utwórz użytkownika z dostępem do bazy Nextcloud:
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'TWOJE_HASLO_TUTAJ';
Nie pomijaj tego kroku, nie używaj użytkownika root do Nextcloud. To niebezpieczne i naraża dane!
Na koniec przyznaj nowemu użytkownikowi odpowiednie uprawnienia:
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
Po zakończeniu wyjdź z bazy poleceniem exit i kontynuuj kolejne kroki.
Instalacja pakietu:
sudo apt-get install mysql-server
Podczas instalacji zostaniesz poproszony o ustawienie hasła root. Jeśli nie pojawi się takie zapytanie, domyślne hasło jest puste. To niebezpieczne i należy je natychmiast zmienić!
Następnie połącz się z serwerem bazy danych i utwórz wymaganą bazę:
mysql -u root -p
CREATE DATABASE nextcloud;
Potem utwórz użytkownika z dostępem do bazy Nextcloud:
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'TWOJE_HASLO_TUTAJ';
Nie pomijaj tego kroku, nie używaj użytkownika root do Nextcloud. To niebezpieczne i naraża dane!
Na koniec przyznaj nowemu użytkownikowi odpowiednie uprawnienia:
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
Po zakończeniu wyjdź z bazy poleceniem exit i kontynuuj kolejne kroki.
Instalacja pakietu:
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
Następnie połącz się z serwerem bazy danych i utwórz bazę oraz użytkownika:
sudo -u postgres psql
CREATE USER nc_user WITH ENCRYPTED PASSWORD 'TWOJE_HASLO_TUTAJ';
CREATE DATABASE nextcloud OWNER nc_user;
Nie pomijaj tego kroku, nie używaj superużytkownika postgres do Nextcloud. To niebezpieczne i naraża dane!
Po zakończeniu wyjdź z bazy poleceniem \q. Dane połączenia PostgreSQL wpisz w instalatorze webowym lub bezpośrednio w pliku config.php:
<?php
$CONFIG = array(
'dbtype' => 'pgsql',
'dbname' => 'nextcloud',
'dbuser' => 'nc_user',
'dbpassword' => 'TWOJE_HASLO_TUTAJ',
'dbhost' => 'localhost',
'dbtableprefix' => '',
);
SQLite nadaje się wyłącznie do testów lub bardzo małych instalacji jednoosobowych – twórcy Nextcloud zdecydowanie odradzają używanie do produkcyjnego środowiska wieloużytkownikowego (m.in. z powodu braku współbieżności przy równoczesnym dostępie).
Instalacja pakietu:
sudo apt-get install sqlite3 php8.3-sqlite3
Nextcloud automatycznie tworzy plik bazy SQLite podczas instalacji, nie jest potrzebne ręczne tworzenie bazy. Konfiguracja w config.php wygląda tak:
<?php
$CONFIG = array(
'dbtype' => 'sqlite3',
'dbname' => 'nextcloud',
'dbtableprefix' => '',
);
