Облачното съхранение е удобно, но изисква да поверявате достъпа до файловете, ограниченията за място и контрола върху акаунтите на външен доставчик. 

Самостоятелното хостване на Nextcloud предлага възможността да управлявате собствен частен облак на сървър, който контролирате. При правилна конфигурация можете сигурно да съхранявате, синхронизирате и достъпвате файлове през браузър, десктоп клиент или мобилно приложение, без да е необходим платен абонамент за Nextcloud. 

В следващите редове ще демонстрираме как да хоствате Nextcloud самостоятелно на Ubuntu VPS с Nextcloud All-in-One (AIO).

Ако използвате Cloud VPS от Delta.BG, можете да инсталирате Nextcloud директно от нашия Marketplace, без да преминавате ръчно през всички стъпки по първоначалното внедряване.

Основни изводи:

За да използвате собствен Nextcloud, инсталирайте Nextcloud All-in-One (AIO) чрез Docker на VPS, домашен сървър, NAS или виртуална машина. Ако искате услугата да бъде достъпна през интернет, настройте домейн или поддомейн с HTTPS и предвидете достатъчно дисково пространство както за файловете, така и за резервните копия. Поддържайте сървъра и софтуера актуални, защитете администраторския достъп и ограничете достъпа до интерфейса за управление на AIO. Съхранявайте резервно копие извън основния сървър и периодично проверявайте дали данните могат успешно да бъдат възстановени.

Какво е Nextcloud и как работи самостоятелното хостване?

Nextcloud е софтуер с отворен код, който ви позволява да създадете частен облак за съхранение, синхронизиране, споделяне и управление на файлове. Чрез допълнителни приложения той предлага и инструменти за календари, контакти, съвместна работа по документи, видеоразговори и комуникация в екип.

Когато хоствате Nextcloud самостоятелно, инсталирате софтуера на сървър, който контролирате, вместо да използвате външна услуга за облачно съхранение. 

В нашето ръководство е използван VPS сървър. Той изпълнява приложението Nextcloud и съхранява неговите данни, а вие и останалите оторизирани потребители се свързвате чрез защитен уеб адрес, десктоп приложение или мобилно приложение.

Този подход ви дава по-голям контрол върху мястото, където се съхраняват файловете, и върху конфигурацията на инсталацията. Трябва да знаете, че вие отговаряте за актуализациите на сървъра, защитата на достъпа, наблюдението на свободното пространство и поддържането на надеждни резервни копия.

Какво ви е необходимо преди самостоятелното хостване на Nextcloud?

Nextcloud може да работи на VPS, домашен сървър, NAS или самостоятелен сървър. Преди да започнете, уверете се, че разполагате със следното:

  • Сървър с административен достъп: Трябва да имате достъп до операционната система, за да инсталирате софтуер, прилагате актуализации, преглеждате системните логове и управлявате дисковото пространство. При Linux това обикновено означава SSH достъп със sudo права.
  • Достатъчно хардуерни ресурси: За малка инсталация за лична употреба са подходящи 2 CPU ядра, 4 GB RAM и SSD хранилище. При повече потребители, по-голям обем файлове, генериране на визуализации, редактиране на документи или видеоразговори ще са необходими повече ресурси.
  • Достатъчно свободно дисково пространство: Предвидете място не само за файловете, които ще съхранявате, но и за операционната система, Docker контейнерите, базата данни, актуализациите и резервните копия.
  • Домейн или поддомейн за публичен достъп: Използвайте домейн или поддомейн, например cloud.example.com, за защитен HTTPS достъп. Ако не разполагате със собствен домейн, Nextcloud AIO може да създаде безплатен адрес от типа *.dedyn.io чрез deSEC.
  • Подходяща мрежова конфигурация: При стандартна публична AIO конфигурация порт 443 трябва да бъде достъпен за Nextcloud. Порт 80 е необходим в определени конфигурации, например за автоматично издаване на сертификат за AIO интерфейса на порт 8443. При използване на reverse proxy, тунел или частна мрежа са необходими различни настройки.
  • План за резервни копия: Съхранявайте поне едно резервно копие извън сървъра, на който работи Nextcloud. Самостоятелното управление на системата ви дава повече контрол, но означава и че вие отговаряте за възстановяването на данните при проблем.

Самостоятелно хостване на Nextcloud с Docker и Nextcloud AIO

Стъпка 1: Свържете се с VPS сървъра

Намерете публичния IP адрес на сървъра в контролния панел на вашия VPS доставчик. След това се свържете чрез SSH от Terminal, PowerShell или друг SSH клиент:

ssh root@YOUR_SERVER_IP

Въведете паролата или потвърдете SSH ключа си, когато бъдете подканени.

Стъпка 2: Актуализирайте сървъра

Актуализирайте списъка с пакети на Ubuntu и инсталирайте наличните обновявания, преди да добавите Docker или Nextcloud:

sudo apt update && sudo apt upgrade -y

Актуализирайте сървъра

Стъпка 3: Проверете дали портове 80 и 443 вече се използват

Nextcloud AIO използва портове 80 и 443 за валидиране на сертификати и защитен уеб достъп. Проверете дали друга услуга вече ги използва:

sudo ss -tulpn | grep -E ':80|:443'

Проверете дали портове 80 и 443 вече се използват

Ако командата не върне резултат, най-вероятно портовете са свободни.

Ако видите Nginx, Apache, Caddy или друг процес, все още не изпълнявайте стандартната AIO команда за инсталация. Това означава, че на VPS сървъра вече има конфигуриран уеб сървър или обратен прокси сървър (reverse proxy) и за AIO е необходима отделна конфигурация.

Стъпка 4: Конфигурирайте защитната стена

Първо разрешете SSH достъпа, за да не се окажете блокирани извън сървъра:

sudo ufw allow OpenSSH

Първо разрешете SSH достъпа, за да не се окажете блокирани извън сървъра

Разрешете HTTP и HTTPS трафика за Nextcloud:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Разрешете HTTP и HTTPS трафика за Nextcloud

Активирайте firewall-а и проверете активните правила:

sudo ufw enable
sudo ufw status

Активирайте firewall-а и проверете активните правила

Интерфейсът за управление на Nextcloud AIO използва порт 8080. Имайте предвид, че портовете, публикувани от Docker, могат да заобикалят стандартното филтриране на UFW, тъй като Docker управлява собствени правила на защитната стена. Не разчитайте само на UFW, за да ограничите достъпа до интерфейса за управление на AIO.

Ако е възможно, ограничете достъпа до порт 8080 чрез защитната стена на вашия VPS доставчик или чрез друг мрежов слой, така че до него да имат достъп само доверени IP адреси.

Стъпка 5: Премахнете конфликтни Docker пакети

Nextcloud AIO изисква Docker Engine, инсталиран чрез стандартните пакети на Docker. Docker инсталации чрез Snap не се поддържат.

Премахнете пакетите, които могат да влязат в конфликт с официалната Docker инсталация:

sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)

Премахнете конфликтни Docker пакети

Нормално е Ubuntu да съобщи, че част от тези пакети не са инсталирани.

Стъпка 6: Добавете официалното Docker хранилище

Инсталирайте инструментите, необходими за добавянето на ключа за подписване и софтуерното хранилище на Docker:

sudo apt install -y ca-certificates curl

Добавете официалното Docker хранилище

Създайте директория за ключовете на хранилищата:

sudo install -m 0755 -d /etc/apt/keyrings

Създайте директория за ключовете на хранилищата

Изтеглете GPG ключа на Docker:

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

Изтеглете GPG ключа на Docker

Разрешете четенето на ключа:

sudo chmod a+r /etc/apt/keyrings/docker.asc

Разрешете четенето на ключа:

Добавете стабилното Docker хранилище:

sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

Добавете стабилното Docker хранилище

Обновете индекса на пакетите:

sudo apt update

Обновете индекса на пакетите

Стъпка 7: Инсталирайте Docker Engine

Инсталирайте Docker Engine и необходимите Docker плъгини:

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Инсталирайте Docker Engine

Стартирайте тестовия Docker контейнер, за да потвърдите, че инсталацията работи:

sudo docker run hello-world

Стартирайте тестовия Docker контейнер

Ако командата върне съобщение „Hello from Docker!“, Docker е готов за работа.

Стъпка 8: Стартирайте основния контейнер на Nextcloud AIO

Изпълнете официалната команда на Nextcloud AIO:

sudo docker run \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 80:80 \
--publish 8080:8080 \
--publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
ghcr.io/nextcloud-releases/all-in-one:latest

Стартирайте основния контейнер на Nextcloud AIO

Това стартира основния AIO контейнер. Той ще управлява останалите контейнери, необходими за Nextcloud, включително базата данни и уеб услугата.

Не инсталирайте отделен уеб сървър, PHP, сървър за бази данни, Certbot или друг Nextcloud Docker образ като част от тази AIO конфигурация. Тези компоненти могат да се припокриват с услугите, които AIO управлява.

Стъпка 9: Отворете страницата за настройка на AIO

В браузър отворете следния адрес:

https://YOUR_SERVER_IP:8080

Отворете страницата за настройка на AIO

Заменете YOUR_SERVER_IP с публичния IP адрес на VPS сървъра.

Браузърът ще покаже предупреждение за сертификата, тъй като този интерфейс за управление първоначално използва самоподписан сертификат. Уверете се, че IP адресът е този на вашия VPS, след което продължете към страницата.

За тази стъпка използвайте IP адреса на сървъра, а не домейн.

Стъпка 10: Изберете hostname за Nextcloud

Nextcloud се нуждае от hostname, за да използва надежден HTTPS сертификат. Ако вече притежавате домейн, можете да използвате отделен поддомейн, например:

cloud.example.com

Ако нямате собствен домейн, AIO предлага безплатен *.dedyn.io dynamic DNS hostname чрез интеграцията си с deSEC. Следвайте опцията, показана в AIO интерфейса, за да създадете или конфигурирате този hostname.

Резултатът ще бъде публичен адрес, подобен на:

your-instance.dedyn.io

Изберете hostname за Nextcloud

Използвайте този hostname за достъп до Nextcloud след приключване на настройката. Той трябва да се насочва към VPS сървъра и да остане публично достъпен на портове 80 и 443.

Стъпка 11: Завършете валидирането на hostname и HTTPS

Въведете избрания hostname в AIO интерфейса.

AIO проверява дали може да достигне VPS сървъра, след което заявява надежден HTTPS сертификат. За този процес е необходимо:

  • Hostname да сочи към публичния IP адрес на VPS сървъра;
  • Порт 443 да бъде достъпен за защитения Nextcloud достъп;
  • Ако използвате AIO интерфейса на порт 8443 с валиден сертификат, портове 80 и 8443 също трябва да бъдат достъпни;
  • Друг уеб сървър или reverse proxy да не използва необходимите портове, освен ако AIO не е конфигуриран да работи зад него.

Ако валидирането е неуспешно, проверете hostname, правилата на защитната стена, firewall настройките на VPS доставчика и достъпността на портовете, преди да опитате отново.

Завършете валидирането на hostname и HTTPS

Стъпка 12: Задайте местоположението на данните и резервните копия

По подразбиране Nextcloud AIO съхранява потребителските данни в Docker volume. Ако искате да използвате различно местоположение за Nextcloud data directory, то трябва да бъде зададено предварително при първоначалното стартиране на AIO чрез параметъра NEXTCLOUD_DATADIR.

От AIO интерфейса можете да конфигурирате местоположението за резервните копия.

Когато е възможно, използвайте бързо SSD или NVMe хранилище за данните на Nextcloud. Приложението извършва чести операции по запис на файлове и в базата данни, затова производителността на дисковото пространство има пряко отражение върху качванията, синхронизирането, визуализациите на файлове и общата бързина на системата.

AIO използва криптиран BorgBackup за процеса по архивиране. Запазете паролата за криптиране на резервните копия, показана по време на настройката, в мениджър на пароли или на друго сигурно място. Тя е необходима при възстановяване на резервно копие.

Стъпка 13: Стартирайте останалите Nextcloud контейнери

Завършете настройките на AIO и стартирайте Nextcloud контейнерите.

AIO ще изтегли и конфигурира услугите, необходими за инсталацията. Това може да отнеме няколко минути в зависимост от ресурсите на VPS сървъра и скоростта на мрежата.

Когато настройката приключи, AIO ще предостави постоянния адрес на Nextcloud, например:

https://your-instance.dedyn.io

Или, ако използвате собствен домейн:

https://cloud.example.com

Стартирайте останалите Nextcloud контейнери

Стъпка 14: Отворете Nextcloud и влезте като администратор

Отворете постоянния HTTPS адрес в браузъра.

Nextcloud AIO автоматично създава първоначалния администраторски акаунт по време на настройката. Използвайте администраторските данни за вход, предоставени от AIO интерфейса, за да влезете в Nextcloud.

Отворете Nextcloud и влезте като администратор

Съхранявайте администраторските данни за вход сигурно в мениджър на пароли. Този акаунт може да управлява потребители, приложения, хранилище, настройки за споделяне и други настройки на цялата инсталация.

Стъпка 15: Проверете дали Nextcloud работи

След като влезете, отворете приложението Files и качете малък тестов файл.

След това отворете или изтеглете файла, за да потвърдите, че качването, съхранението и достъпът работят правилно. Отворете и Administration settings, за да проверите дали Nextcloud показва предупреждения.

Вашата Nextcloud инсталация вече е достъпна чрез постоянния hostname:

https://your-instance.dedyn.io

Проверете дали Nextcloud работи

Адресът https://YOUR_SERVER_IP:8080 се използва за управление на AIO настройките, резервните копия и актуализациите. Това не е стандартният адрес за използване на Nextcloud.

Често срещани грешки при настройката на Nextcloud AIO и как да ги отстраните

Конфликти при Docker инсталацията или хранилищата

На сървъра може вече да има по-стари Docker пакети, Docker инсталация чрез Snap или дублирани записи за Docker хранилища. Премахнете конфликтните пакети, оставете една официална конфигурация на Docker хранилището и след това преинсталирайте Docker Engine, преди да внедрите AIO.

Портовете вече се използват

Стандартната AIO конфигурация изисква портове 80 и 443 за уеб трафик и валидиране на сертификати. Ако Apache, Nginx, Caddy или друга услуга вече използва някой от тези портове, спрете конфликтната услуга или използвайте документираната reverse proxy конфигурация на AIO.

Проблеми с домейна, DNS или TLS сертификата

Hostname трябва да сочи към публичния IP адрес на сървъра, а сървърът трябва да бъде достъпен от интернет през необходимите портове. Проверете DNS записите, правилата на защитната стена, настройките за сигурност на ниво доставчик и дали proxy или CDN не пречи на валидирането.

Контейнери, които остават в състояние starting или unhealthy

AIO услугите може да се нуждаят от няколко минути за стартиране, особено при нова инсталация. Ако даден контейнер не премине в състояние healthy, прегледайте логовете му в AIO интерфейса или на сървъра чрез Docker log командата, за да установите коя зависимост е причинила проблема.

Недостатъчно дисково пространство или памет

Nextcloud се нуждае от място за контейнерните образи, базата данни, визуализациите на файлове, актуализациите, резервните копия и потребителските данни. Проверете свободното дисково пространство с df -h и прегледайте използването на памет, преди да добавите функции с по-високи изисквания към ресурсите, като full-text search, антивирусно сканиране, редактиране на документи или записване на разговори.

Грешки в reverse proxy конфигурацията

Ако Nextcloud работи зад съществуващ proxy, той трябва да поддържа HTTPS и WebSockets и да препраща заявките към правилната AIO услуга. Следвайте документацията на AIO за reverse proxy, вместо да комбинирате стандартната deployment команда със съществуваща конфигурация на уеб сървър.

Проблеми с достъпа до администраторския акаунт

Използвайте Nextcloud потребителското име, създадено по време на първоначалната настройка, а не данните за вход във VPS сървъра, AIO паролата или паролата при доставчика на домейна. Ако загубите администраторската парола, можете да я нулирате от сървъра чрез Nextcloud occ командата.

Заключение

Самостоятелното хостване на Nextcloud ви дава частен и гъвкав начин да съхранявате, синхронизирате и споделяте файлове върху инфраструктура, която контролирате. Docker и Nextcloud All-in-One (AIO) улесняват първоначалното внедряване, но надеждната инсталация все пак изисква постоянна грижа за актуализациите, сигурността на администраторския достъп, наличното дисково пространство и тестваните резервни копия.

Тъй като тези отговорности зависят от сървъра, върху който работи Nextcloud, изборът на VPS ресурси, съобразени както с приложението, така и с бъдещото нарастване на файловете, е важна част от успешната инсталация. Cloud VPS услугата, която ние от Delta.BG предлагаме, предоставя пълен root достъп, изцяло NVMe дисково пространство и възможност за увеличаване на CPU и RAM при необходимост за самостоятелно хоствани приложения като Nextcloud. Включваме също 48-часови snapshots и Layer 3/4 DDoS защита, които допринасят за по-устойчива хостинг среда.

Ако използвате Cloud VPS от Delta.BG, можете да инсталирате Nextcloud директно от нашия Marketplace, без да преминавате ръчно през всички стъпки по първоначалното внедряване.

За помощ при избора на подходяща Cloud VPS конфигурация или за съдействие със системна администрация се свържете с нас на support@delta.bg или +359 2 4 288 288.