Установить на имеющееся железо Proxmox VE.
Поднять виртуальную машину на Ubuntu.
Установить на ВМ необходимое ПО.
Арендовать VPS-сервер, установить необходимое ПО.
Связать по VPN-сети VPS-сервер и нашу виртуальную машину.
Зарегистрировать домен и настроить на направление на IP-адрес VPS-сервера.
Зачем тут VPS-сервер? Мой провайдер не предоставляет возможности получить публичный IP-адрес, так что для меня это был единственный вариант достучаться до моего сервера из вне.
Что я хочу получить в итоге:
Nextcloud-сервер, до которого я могу достучаться из любого места, где есть интернет. Пользовательские данные Nextcloud хранятся на Raid-массиве так, чтобы при сбое операционной системы я смог вытащить эти данные без лишней возни. Nextcloud в основном используется для хранения данных со смартфона (фото, видео, контакты).
Файл-сервер с доступом по Samba, FTP и web-морде для хранения других данных (рабочие проекты, фильмы, музыка, программы и др.). Данные хранятся на том же Raid-массиве.
1. Как установить Proxmox?
ВАЖНО: для установки операционной системы я взял отдельный диск, на котором не будут храниться пользовательские данные. На момент установки был подключен только этот диск.
«Proxmox Virtual Environment — это платформа с открытым исходным кодом для корпоративной виртуализации. Благодаря встроенному веб-интерфейсу вы можете легко управлять виртуальными машинами и контейнерами, программно-определяемым хранилищем и сетями, кластеризацией высокой доступности и несколькими готовыми инструментами с помощью одного решения» - говорит нам официальный сайт данного продукта. Переходим туда по адресу https://www.proxmox.com/en/downloads, скачиваем Proxmox VE 8.3 ISO Installer (или другую доступную версию) и с помощью Rufus записываем образ на флешку.
Далее, как и при установке любой другой операционной системы, грузимся с флешки.
Выбираем Install Proxmox VE, далее принимаем Лицензионное соглашение.
Здесь выбираем диск, на который будет установлен Proxmox. Я ничего не менял, оставил все как есть
Выбираем страну, часовой пояс
Вводим пароль, который будет использован для доступа к Proxmox
Далее вводим данные сети и IP-адрес нашего сервера.
Далее ждем установки и перезагрузки компьютера. После этого можем отключить монитор от нашего сервера и убрать сервер в его законное место. Садимся за наш компьютер или ноутбук с любимой и понятной Windows и переходим в браузере по адресу https://<IP-адрес>:8006, где IP-адрес тот, который вводили при установке Proxmox. В открывшемся окне вводим имя пользователя: root, и пароль тот, который указывали при установке. После предупреждения о том, что у вас нет подписки нас встречает нас такое окно:
Далее нам нужно поменять коммерческие репозитории на бесплатные. Для этого либо подключаемся к нашему серверу по SSH (скачиваем приложение Putty, в поле Host name вводим IP-адрес нашего сервер жмем Open, в открывшемся окне вводим root и наш пароль), либо на странице управления Proxmox жмем на нашу ноду (название нашего сервера под Datacenter), справа выбираем Shell. Далее вводим
nano /etc/apt/sources.list.d/pve-enterprise.list
Приводим содержимое файла в такой вид:
Открываем следующий файл командой:
nano /etc/apt/sources.list.d/ceph.list
apt update && apt upgrade -y
Закончим дела с железом. Здесь я подключил все свои HDD к серверу, собрав из говна и палок такой стенд:
Кулера подключил к разъему корпусных кулеров на материнской плате.
После подключения HDD к серверу создаем ZFS Raid1 из наших HDD. Почему ZFS? Потому что сам Proxmox рекомендует использовать эту систему. По поводу разницы между Raid1, Raid2, Raid3...: индекс 1, 2, 3 говорит о том, при отказе скольких дисков работоспособность массива и целостность данных не будет нарушена. При этом общий объем дискового пространства будет равна на: Объем Raid-массива = (Объем одного диска * количество дисков) - (Объем одного диска * индекс Raid). Т.е., я взял 5 HDD объемом 1 Тб каждая, создал ZFS Raid1, получил объем дискового пространства равный 3,87 Тб. При этом при выходе из строя одного из HDD я смогу его поменять без потери данных. Создаем Raid-массив. Для этого жмем на нашу ноду (название нашего сервера под Datacenter), справа выбираем раздел Disks. Увидим все диски, подключенные к серверу:
Здесь у меня уже создан Raid-массив, разделы на дисках размечены. Если вы используете б/у диски, у вас так же могут быть размечены разделы. Чтобы очистить диск выбираем его и жмем вверху Wipe. Очищаем все диски, из которых мы хотим создать Raid-массив. Далее в разделе Disks переходим в подраздел ZFS и жмем вверху Create ZFS.
Здесь ввел название массива, выбрал диски, из которых необходимо создать Raid-массив, Raid Level я выбрал RAIDZ, остальное оставил как есть. Жмем Create. Все, наш Raid-массив создан.
2. Ставим Ubuntu, MariaDB, NGINX, Nextcloud.
Теперь создадим первую виртуальную машину. Переходим по адресу: https://ubuntu.com/download/server и скачиваем Ubuntu Server 24.04. После скачивания в панели управления Proxmox переходим в хранилище local (для этого раскрываем ноду (название нашего сервера под Datacenter)), где переходим ISO Images -> Upload -> выбираем скачанную Ubuntu -> Upload. После того, как образ загрузился на наш сервер в правом верхнем углу в панели управления жмем Create VM.
Node - единственная нода, которая у нас есть
VM ID - ID виртуальной машины, ставится автоматом
Name - название виртуальной машины, на наше усмотрение
ISO image - выбираем скачанный образ Ubuntu 24.04
Во вкладке System я оставляю все как есть.
Storage - выбираю local-lvm
Disk size - 10 GiB мне на этой машине хватает.
Type - выбираю kvm64. Далее.
Во вкладке Memory ставлю не менее 2048 MiB памяти.
Во вкладке Network ничего не меняю, во вкладке Confirm жму Finish. Виртуальная машина создана. Теперь в моем ноде появилась виртуальная машина. Выбираю его и жму старт в правом верхнем углу. После этого подключаюсь к виртуальной машине по VNC - для этого жмем кнопку Console (рядом с кнопкой Start).
При установке Ubuntu 24.04 я никаких манипуляций, кроме как нажатия кнопок "Готово" и "Продолжить", не совершал. Разве что отметил, что необходимо установить OpenSSH-сервер.
После установки и перезагрузки виртуальной машины ввожу имя пользователя и пароль, который я указывал при установке Ubuntu и вижу IP-адрес, который мне выдал DHCP:
По указанному IP подключаюсь к виртуальной машину по SSH с помощью Putty.
Актуализирую списки пакетов в репозиториях:
sudo timedatectl set-timezone Europe/Moscow
sudo systemctl enable chrony
Устанавливаю сервер базы данных:
sudo apt install mariadb-server
Разрешаю автозапуск и запускаю сервис:
sudo systemctl enable mariadb
sudo systemctl start mariadb
Задаю пароль root-пользователя:
sudo mysqladmin -u root password
Подключаюсь к MariaDB, создаю базу данных и пользователя:
> CREATE DATABASE nextcloud DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
> GRANT ALL PRIVILEGES ON nextcloud.* TO nextcloud@localhost IDENTIFIED BY 'nextcloud';
Далее необходимо установить PHP и необходимые пакеты к нему. Последняя версия Nextcloud работает на PHP версии не ниже 8.3
Создаем переменную с номером версии PHP:
Добавляю необходимые репозитории:
sudo add-apt-repository ppa:ondrej/php
Устанавливаю PHP 8.3 и расширения:
sudo apt install php${PHP_VER}-fpm php${PHP_VER}-common php${PHP_VER}-zip php${PHP_VER}-xml php${PHP_VER}-intl php${PHP_VER}-gd php${PHP_VER}-mysql php${PHP_VER}-mbstring php${PHP_VER}-curl php${PHP_VER}-imagick php${PHP_VER}-gmp php${PHP_VER}-bcmath libmagickcore-6.q16-6-extra
После завершения установки немного изменяю конфигурацию PHP. Открываем файл:
sudo nano /etc/php/8.3/fpm/pool.d/www.conf
env[PATH] = /usr/local/bin:/usr/bin:/bin
и раскомментирую ее. Быстро найти строку в nano редакторе можно путем нажатия Ctrl+W и вставив туда эту строку. Сохраняю, выхожу из редактора. Редактирую PHP.ini:
sudo nano /etc/php/8.3/fpm/php.ini
Редактирую следующие строки:
opcache.enable_cli=1
opcache.interned_strings_buffer=32
opcache.revalidate_freq=1
Разрешаю автозапуск php-fpm и перезапускаю его:
sudo systemctl enable php8.3-fpm
sudo systemctl restart php8.3-fpm
Далее установлю web-сервер Nginx.
После установки можно в браузере можно перейти по IP-адресу виртуальной машины, должна открыться приветственная страница nginx.
Теперь скачаю Nextcloud. Для этого создаю каталог для скачивания:
Скачиваю последнюю версию Nextcloud с официального сайта:
Устанавливаю unzip для распаковки архива:
Распаковываю архив Nextcloud:
Перемещаю папку с Nextcloud в папку web-сервера:
sudo mv nextcloud /var/www
sudo chown -R www-data:www-data /var/www/nextcloud
Создаю виртуальный домен:
sudo nano /etc/nginx/sites-enabled/nextcloud.conf
Вставляю следующую конфигурацию:
server {
listen 80;
server_name nextcloud.local;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
root /var/www/nextcloud;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomai>
client_max_body_size 10G;
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 = /core/templates/403.php;
error_page 404 = /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location ^~ /.well-known {
location = /.well-known/carddav { return 301 /remote.php/dav/; }
location = /.well-known/caldav { return 301 /remote.php/dav/; }
location = /.well-known/webfinger { return 301 /index.php/.wel>
location = /.well-known/nodeinfo { return 301 /index.php/.well>
location ^~ /.well-known{ return 301 /index.php/$uri; }
try_files $uri $uri/ =404;
}
location / {
rewrite ^/.well-known/host-meta /public.php?service=host-meta l>
rewrite ^/.well-known/host-meta.json /public.php?service=host-m>
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_param HTTPS on;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires modified +30d;
access_log off;
}
}
где nextcloud.local - временный "локальный" URL-адрес Nextcloud-сервера.
sudo systemctl restart nginx
Для проверки работоспособности Nextcloud вношу в hosts компьютера, из которого я провожу проверку, следующую запись:
Путь к hosts: C:\Windows\System32\drivers\etc\hosts
Запись: 192.168.0.120 nextcloud.local
где 192.168.0.120 - IP-адрес моей виртуальной машины.
Перехожу по адресу http://nextcloud.local и открывается страница:
Страница первоначальной настройки Nextcloud-сервера.
Ничего здесь не делаю, просто закрываю страницу.
3. Проброс каталога из хоста в виртуальную машину
Хост - компьютер с установленным Proxmox.
Сервер, виртуальная машина, ВМ - виртуальная машина с Nextcloud.
Массив, Raid-массив - созданный в разделе 1 ZFS ZRAID
Напоминаю, что я создавал Raid-массив объемом 3,8 Тб для хранения пользовательских данных. На данный момент он доступен он только из хоста. Есть простой способ передать этот массив в виртуальную машину - из панели управления Proxmox создать виртуальный диск в этом массиве и подключить его к виртуальной машине. Однако этот способ меня не устроил, так как, если выйдет из строя HDD с установленным Proxmox или иным способом нарушится работоспособность этой операционной системы восстановление данных из виртуального диска будет непростым занятием. Поэтому решил передать в виртуальную машину каталог (файловую систему) в этом массиве.
Для этого прежде создаю файловую систему в нашем массиве (в терминале хоста):
sudo zfs create ZFSDATA/nc-data
где ZFSDATA - название нашего массива (можно посмотреть в панели управления Proxmox в разделе Disks->ZFS), nc-data - название файловой системы. Созданные файловые системы можно просматривать:
Далее действую по этой инструкции:
ВЫКЛЮЧАЮ ВИРТУАЛЬНУЮ МАШИНУ!
Создаю файл virtiofs_hook.conf
100: /ZFSDATA/nc-data
где: 100 - ID виртуальной машины, в которую необходимо передать каталог
Закрываю этот файл. Создаю второй файл virtiofs_hook.pl
#!/usr/bin/perl
use strict;
use warnings;
my $conf_file = '/var/lib/vz/snippets/virtiofs_hook.conf';
my %associations;
open my $cfg, '<', $conf_file or die "Failed to open virtiofs_hook.conf";
while (my $line = <$cfg>) {
chomp $line;
my ($vm_id, $paths_str) = split /:/, $line;
my @path = split /,/, $paths_str;
$associations{$vm_id} = \@path;
}
close $cfg or warn "Close virtiofs_hook.conf failed: $!";
use PVE::QemuServer;
use Template;
my $tt = Template->new;
print "GUEST HOOK: " . join(' ', @ArGV) . "\n";
my $vmid = shift;
my $conf = PVE::QemuConfig->load_config($vmid);
my $vfs_args_file = "/run/$vmid.virtfs";
my $virtiofsd_dir = "/run/virtiofsd/";
my $DEBUG = 1;
my $phase = shift;
my $unit_tpl = "[Unit]
Description=virtiofsd filesystem share at [% share %] for VM %i
StopWhenUnneeded=true
[Service]
Type=simple
RuntimeDirectory=virtiofsd
PIDFile=/run/virtiofsd/.run.virtiofsd.%i-[% share_id %].sock.pid
ExecStart=/usr/libexec/virtiofsd --log-level debug --socket-path /run/virtiofsd/%i-[% share_id %].sock --shared-dir [% share %] --cache=auto --announce-submounts --inode-file-handles=mandatory
[Install]
RequiredBy=%i.scope\n";
if ($phase eq 'pre-start') {
print "$vmid is starting, doing preparations.\n";
my $vfs_args = "-object memory-backend-memfd,id=mem,size=$conf->{memory}M,share=on -numa node,memdev=mem";
my $char_id = 0;
# Create the virtiofsd directory if it doesn't exist
if (not -d $virtiofsd_dir) {
print "Creating directory: $virtiofsd_dir\n";
mkdir $virtiofsd_dir or die "Failed to create $virtiofsd_dir: $!";
}
# TODO: Have removal logic. Probably need to glob the systemd directory for matching files.
for (@{$associations{$vmid}}) {
# my $share_id = $_ =~ s/^\///r =~ s/\//_/gr;
my $share_id = $_ =~ m/.*\/([^\/]+)/ ? $1 : ''; # only last folder from path
my $unit_name = 'virtiofsd-' . $vmid . '-' . $share_id;
my $unit_file = '/etc/systemd/system/' . $unit_name . '@.service';
print "attempting to install unit $unit_name...\n";
if (not -d $virtiofsd_dir) {
print "ERROR: $virtiofsd_dir does not exist!\n";
}
else { print "DIRECTORY DOES EXIST!\n"; }
if (not -e $unit_file) {
$tt->process(\$unit_tpl, { share => $_, share_id => $share_id }, $unit_file)
|| die $tt->error(), "\n";
system("/usr/bin/systemctl daemon-reload");
system("/usr/bin/systemctl enable $unit_name\@$vmid.service");
}
system("/usr/bin/systemctl start $unit_name\@$vmid.service");
$vfs_args .= " -chardev socket,id=char$char_id,path=/run/virtiofsd/$vmid-$share_id.sock";
$vfs_args .= " -device vhost-user-fs-pci,chardev=char$char_id,tag=$vmid-$share_id";
$char_id += 1;
}
open(FH, '>', $vfs_args_file) or die $!;
print FH $vfs_args;
close(FH);
print $vfs_args . "\n";
if (defined($conf->{args}) && not $conf->{args} =~ /$vfs_args/) {
print "Appending virtiofs arguments to VM args.\n";
$conf->{args} .= " $vfs_args";
} else {
print "Setting VM args to generated virtiofs arguments.\n";
print "vfs_args: $vfs_args\n" if $DEBUG;
$conf->{args} = " $vfs_args";
}
PVE::QemuConfig->write_config($vmid, $conf);
}
elsif($phase eq 'post-start') {
print "$vmid started successfully.\n";
my $vfs_args = do {
local $/ = undef;
open my $fh, "<", $vfs_args_file or die $!;
<$fh>;
};
if ($conf->{args} =~ /$vfs_args/) {
print "Removing virtiofs arguments from VM args.\n";
print "conf->args = $conf->{args}\n" if $DEBUG;
print "vfs_args = $vfs_args\n" if $DEBUG;
$conf->{args} =~ s/\ *$vfs_args//g;
print $conf->{args};
$conf->{args} = undef if $conf->{args} =~ /^$/;
print "conf->args = $conf->{args}\n" if $DEBUG;
PVE::QemuConfig->write_config($vmid, $conf) if defined($conf->{args});
}
}
elsif($phase eq 'pre-stop') {
#print "$vmid will be stopped.\n";
}
elsif($phase eq 'post-stop') {
#print "$vmid stopped. Doing cleanup.\n";
} else {
die "got unknown phase '$phase'\n";
}
exit(0);
Сохраняем и закрываем редактор. Делаем только что созданный файл исполяемым:
chmod u+x /var/lib/vz/snippets/virtiofs_hook.pl
Устанавливаем скрипт-подключение:
qm set 100 --hookscript local:snippets/virtiofs_hook.pl
где 100 - ID моей виртуальной машины.
Стартую виртуальную машину из под хоста:
qm start 100
где 100 - ID виртуальной машины
Смотрю файл конфигурации виртуальной машины:
cat /etc/pve/qemu-server/100.conf
где 100 - ID виртуальной машины
Должно выдать что-то подобное:
args: -object memory-backend-memfd,id=mem,size=2048M,share=on -numa node,memdev=mem -chardev socket,id=char0,path=/run/virtiofsd/100-nc-data.sock -device vhost-user-fs-pci,chardev=char0,tag=100-nc-data
...
...
...
Должен быть подобный раздел args. Если этого раздела нет, стоплю виртуальную машину и запуска его снова
qm 100 stop
Жду пока машина остановится...
qm 100 start
Из раздела args меня интересует аргумент tag, у меня он содержит значение "100-nc-data".
ПЕРЕХОЖУ В ТЕРМИНАЛ ВИРТУАЛЬНОЙ МАШИНЫ.
sudo apt install virtiofsd
Создаю папку для монтирования:
sudo mount -t virtiofs 100-nc-data /mnt/nc-data
где: 100-nc-data - значение аргумента tag, который я смотрел на хосте
/mnt/nc-data - созданная мной папка для монтирования.
Смотрю список смонтированных дисков
Эта команда должна показать смонтированный диск 100-nc-data.
Все, я пробросил файловую систему из хоста в виртуальную машину. Создаю в нем каталог для хранения данных Nextcloud:
sudo mkdir /mnt/nc-data/my
4. Аренда VPS и установка необходимых программ
Процесс аренды VPS я описывать не буду, у каждого поставщика он свой. Я арендовал самый дешевый VPS у Евробайт. VPS за 75 рублей предлагает ФёрстБайт. При заказе услуги в качестве операционной системы я выбрал Ubuntu 22. По данным, который предоставил поставщик услуг, лезу в терминал VPS. Обновляю пакеты:
sudo apt update
sudo apt upgrade
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Устанавливаю Nginx proxy manager
Для этого создаю каталог:
sudo nano docker-compose.yml
Вставляю в него следующее содержимое:
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Здесь интересует ports: дополнительно я открыл 21:21 для FTP, 8006:8006 для доступа к Proxmox удаленно. Если нужно, можно открыть дополнительные порты.
и жду пока все установится. После окончания установки перехожу по адресу: https://<IP-адрес VPS>:81, встречает страница входа в Nginx Proxy Manager (NPM). Вхожу по этим данным:
Email: admin@example.com
Password: changeme
И меняю E-mail и пароль на свои.
Далее устанавливаю NetBird.
NetBird создает Zero Trust сети по протоколу WireGuard. По сути - локальную сеть между удаленными машинами.
Переходу на официальный сайт NetBird, регистрируюсь. Перехожу в личный кабинет, жму кнопку Add peer, появляется инструкция по установке на разные системы. Смотрим Linux, копируем ссылку для быстрой установке:
и вставляем в терминал VPS. Жду конца установки. После установки ввожу команду:
Появляется ссылка для авторизации машины, которая выглядит так:
Копирую и вставляю в браузер. После перехода на страницу авторизации жму Confirm.
ДЕЙСТВИЯ ПО УСТАНОВКЕ NetBird НЕОБХОДИМО ПРОДЕЛАТЬ И НА ВИРТУАЛЬНОЙ МАШИНЕ!
5. Регистрация домена
Далее я зарегистрировал домен. В этом деле нет конкретных инструкций, но при регистрации в DNS-записи А необходимо указать IP-адрес VPS-сервера. В панели управления моего регистратора это выглядит так:
6. Последние действия
Когда до DNS-серверов дойдет информация о том, что зарегистрированный домен ссылается на IP-адрес VPS, переходим по адресу: https://<ВашДомен>:81, должна открыться входа в NPM. Захожу Hosts -> Proxy Hosts, жму Add Proxy Host. Вношу следующие данные:
где - nextcloud.MyDomain.ru - [nextcloud] - любой поддомен, [MyDomain.ru] - зарегистрированный нами домен;
Forward Hostname/IP - IP адрес виртуальной машины, выданный NetBird. Посмотреть его можно в личном кабинете NetBird, либо введя в терминале виртуальной машины:
Смотрим раздел с сетевым интерфейсом wt0:
3: wt0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1280 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 100.127.1.240/16 brd 100.127.255.255 scope global wt0
valid_lft forever preferred_lft forever
Перехожу во вкладку SSL, во вкладке "SSL Sertificate" выбираю "Request a new SSL Certificate", ставлю галочку "I Agree to the Let's Encrypt Terms of Service".
В терминале виртуальной машины:
Перехожу в терминал виртуальной машины и меняю конфигурацию виртуального домена:
sudo nano /etc/nginx/sites-enabled/nextcloud.conf
Строку с server_name nextcloud.local; на:
sudo systemctl restart nginx
Далее в браузере перехожу по адресу: nextcloud.MyDomain.ru и ввожу следующую где ввожу новое имя учетной записи, придумываю пароль.
В поле "Каталог с данными" ввожу:
/mnt/nc-data/my
(создавал в разделе 3)
Учетная запись, пароль, имя базы данных ввожу:
nextcloud
(БД создавал в разделе 2)