> Полный список статей есть в [llms.txt](https://docs.f3cloud.com/llms.txt). Markdown-версия есть у каждой страницы, достаточно добавить .md к её адресу. Эта страница в Markdown: [https://docs.f3cloud.com/ru/docker/nextcloud-installation.md](https://docs.f3cloud.com/ru/docker/nextcloud-installation.md).

# Nextcloud на VPS – своё облако для файлов через Nextcloud All-in-One

Установка Nextcloud на VPS официальным способом Nextcloud All-in-One в Docker. Парольная фраза AIO, домен и сертификат Let's Encrypt, выбор дополнительных компонентов, первый вход, панель администратора, команды occ и резервные копии. Проверено на Debian 12 с Nextcloud AIO 14.3.0 и Nextcloud 34.0.4.

**Nextcloud** – это облачное хранилище, которое работает на вашем собственном сервере. Как в Google Drive или Яндекс Диске, в нём можно хранить файлы, синхронизировать их между устройствами и делиться ссылками, а вдобавок вести календари, контакты, редактировать документы и созваниваться. Разница в том, что все данные хранятся на вашем VPS, а не у стороннего сервиса. В этой статье мы установим Nextcloud официальным способом **Nextcloud All-in-One**, подключим домен с сертификатом, зайдём в облако и разберём, как им управлять. Все шаги мы повторили на тестовом сервере с Debian 12. На момент проверки версия AIO **14.3.0**, а сам Nextcloud **34.0.4**.

***

## Как устроен Nextcloud All-in-One

Nextcloud состоит из нескольких программ. Есть само веб-приложение на PHP, база данных PostgreSQL, кэш Redis, веб-сервер, а для документов и звонков нужны ещё отдельные службы. Раньше всё это приходилось ставить и связывать вручную. **Nextcloud All-in-One**, сокращённо AIO, делает это за вас. Вы запускаете один управляющий контейнер, он показывает веб-панель, а уже через неё скачивает, настраивает и запускает все остальные компоненты, каждый в своём контейнере Docker.

У AIO два веб-интерфейса, и их важно не путать. **Панель AIO** работает на порту `8080` и нужна только для управления, то есть для установки, обновлений, резервных копий и включения компонентов. **Сам Nextcloud** открывается по вашему домену на обычном порту `443`, и именно с ним работают пользователи. Сертификат Let's Encrypt для домена AIO получает сам, поэтому HTTPS настраивать вручную не нужно.

Nextcloud требователен к ресурсам, больше всего к диску. На нашем тестовом сервере образы контейнеров AIO заняли около 12 ГБ, из них почти 7 ГБ пришлось на офисный пакет. Все запущенные контейнеры вместе использовали около 2,5 ГБ памяти, и почти половину из них снова занимал офисный пакет.

***

## Что понадобится

* **Сервер** с Debian 12 или Ubuntu 24.04 и **не меньше 4 ГБ памяти**, например тариф [**DE-RZ9-2**](https://f3cloud.com/ru#cloud-vps). Для своих файлов закладывайте место сверх тех 12 ГБ, которые займут сами программы. Если сервера ещё нет, закажите его по [инструкции](https://docs.f3cloud.com/ru/client-area/order-vps.md).
* **Docker**. Как его установить, рассказано в статье про [Docker и Docker Compose](https://docs.f3cloud.com/ru/docker/docker-installation.md).
* **Домен или поддомен**, например `cloud.example.com`, с записью A на IP-адрес сервера. Как её создать, описано в статье про [привязку домена](https://docs.f3cloud.com/ru/vps/domain-to-vps.md).
* **Свободные порты 80 и 443**. На сервере не должно быть другого веб-сервера, который их занимает, иначе AIO не сможет работать в обычном режиме.

***

## Шаг 1. Запустите управляющий контейнер

Подключитесь к серверу по SSH и выполните официальную команду запуска AIO.

```bash
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
```

Docker скачает образ и запустит контейнер. Имя `nextcloud-aio-mastercontainer` менять нельзя, на него опирается механизм обновлений AIO.

AIO использует несколько портов. Через `443` работает сам Nextcloud, `8080` занимает панель AIO, `80` нужен для перенаправления на Nextcloud и получения сертификата панели, а `3478` по TCP и UDP нужен для звонков в Nextcloud Talk.

> **Docker открывает порты в обход UFW.**
>
> Порты, которые публикует Docker, доступны из интернета, даже если в брандмауэре UFW для них нет правила. Мы проверили это на тестовом сервере. Панель AIO на порту `8080` открылась снаружи, хотя в UFW этот порт открыт не был. Поэтому не рассчитывайте закрыть панель через UFW, её защищает только парольная фраза. Подробнее об этой особенности рассказано в статье про [Docker](https://docs.f3cloud.com/ru/docker/docker-installation.md).

***

## Шаг 2. Сохраните парольную фразу

Откройте в браузере панель AIO по IP-адресу сервера, например `https://203.0.113.10:8080`. Разработчики AIO советуют заходить на этот порт именно по IP-адресу, а не по домену. Сертификат здесь самоподписанный, поэтому браузер покажет предупреждение, его нужно принять.

На первой странице AIO показывает **парольную фразу** из восьми слов. Это ключ от панели управления.

<figure><img src="https://docs.f3cloud.com/img/nextcloud-aio-passphrase.png" alt="Страница All-in-One setup с парольной фразой, фраза скрыта"><figcaption><p>Парольная фраза показывается только один раз, здесь она скрыта</p></figcaption></figure>

> **Запишите фразу сразу.**
>
> Мы проверили, что при повторном открытии страницы фраза уже не показывается. Сохраните её в менеджере паролей, прежде чем идти дальше.

Нажмите **Open Nextcloud AIO login**, вставьте фразу и войдите.

***

## Шаг 3. Укажите домен

AIO попросит домен, по которому будет открываться Nextcloud. Введите его в поле и нажмите **Submit domain**.

<figure><img src="https://docs.f3cloud.com/img/nextcloud-aio-domain.png" alt="Панель Nextcloud AIO, поле для домена и кнопка Submit domain"><figcaption><p>Домен вводится один раз при установке</p></figcaption></figure>

Перед тем как принять домен, AIO проверяет, что он действительно указывает на этот сервер и что порт `443` открыт. Если проверка не прошла, AIO покажет подсказки в правом верхнем углу. Чаще всего причина в том, что запись A ещё не обновилась или порт закрыт брандмауэром.

> **Нет своего домена.**
>
> В панели есть раздел **Don't have a domain? Get a free one from deSEC**. Через него AIO может бесплатно зарегистрировать поддомен в зоне `dedyn.io` и сам следить за его записью.

***

## Шаг 4. Выберите компоненты и запустите установку

После проверки домена AIO покажет кнопку установки и список **Optional containers**, дополнительных компонентов.

<figure><img src="https://docs.f3cloud.com/img/nextcloud-aio-options.png" alt="Панель AIO перед установкой, кнопка Download and start containers и выбор офисного пакета"><figcaption><p>Кнопка установки и выбор офисного пакета</p></figcaption></figure>

По умолчанию у нас были включены:

* **Nextcloud Office** на основе Euro-Office для работы с документами прямо в браузере. Вместо него можно выбрать вариант на основе Collabora Online, одновременно работает только один;
* **Nextcloud Talk** для голосовых и видеозвонков;
* **Imaginary** для превью картинок в форматах HEIC, HEIF, PDF, SVG, TIFF, WebP и других;
* **Nextcloud Whiteboard**, общая доска.

Ненужное можно выключить и нажать **Save changes**. Например, если вам нужно только хранилище файлов, отключите офисный пакет. Он занимает больше всего места и памяти. Позже компоненты можно включить или выключить в той же панели.

Когда всё выбрано, нажмите **Download and start containers**. На нашем сервере AIO скачал и запустил все контейнеры примерно за 4 минуты. Когда установка закончится, у каждого контейнера появится зелёная отметка **Running**, а вверху страницы будут логин и начальный пароль администратора.

<figure><img src="https://docs.f3cloud.com/img/nextcloud-aio-running.png" alt="Панель AIO после установки, начальный логин admin, пароль скрыт, все контейнеры Running"><figcaption><p>Все контейнеры запущены, пароль администратора скрыт</p></figcaption></figure>

***

## Шаг 5. Войдите в Nextcloud

Скопируйте **Initial Nextcloud password** и нажмите **Open your Nextcloud**. Откроется Nextcloud по вашему домену уже с настоящим сертификатом. На нашем сервере AIO сам получил сертификат Let's Encrypt. Войдите с логином `admin` и скопированным паролем.

При первом входе Nextcloud покажет приветственные окна. Их можно пролистать или закрыть. В разделе **Файлы** уже лежат примеры документов и папок, их можно удалить.

<figure><img src="https://docs.f3cloud.com/img/nextcloud-files.png" alt="Раздел Файлы в Nextcloud 34 с папками Documents, Photos и Templates"><figcaption><p>Облако готово, можно загружать файлы</p></figcaption></figure>

Сразу смените пароль администратора на свой в личных настройках и создайте отдельные учётные записи для себя и близких. Работать под `admin` каждый день не стоит.

***

## Как управлять Nextcloud после установки

**Панель AIO.** Пока Nextcloud работает, прямой вход в панель AIO по парольной фразе заблокирован. Мы проверили это. Страница входа пишет **The direct login is blocked since Nextcloud is running**.

<figure><img src="https://docs.f3cloud.com/img/nextcloud-aio-login-blocked.png" alt="Страница входа AIO с сообщением The direct login is blocked since Nextcloud is running"><figcaption><p>Пока Nextcloud работает, панель открывается только через сам Nextcloud</p></figcaption></figure>

Чтобы попасть в панель, войдите в Nextcloud как администратор и откройте страницу `https://ваш-домен/settings/admin/overview`. Вверху будет кнопка **Open Nextcloud AIO Interface**. После перехода по ней на странице входа AIO можно будет ввести парольную фразу.

**Команды occ.** Для обслуживания у Nextcloud есть консольная утилита `occ`. В AIO она запускается внутри контейнера.

```bash
docker exec --user www-data nextcloud-aio-nextcloud php occ status
```

Команда покажет версию и состояние Nextcloud. Так же запускаются и другие команды `occ`, например проверка настроек `occ setupchecks`.

**Резервные копии.** В панели AIO есть раздел **Backup and restore**. Укажите папку на сервере, куда сохранять копии, например `/mnt/backup`, и нажмите **Submit backup location**. AIO покажет пароль шифрования копий. Сохраните его так же надёжно, как парольную фразу, без него восстановить данные из копии не получится. По документации AIO в этом же разделе можно включить ежедневное резервное копирование с последующим автоматическим обновлением контейнеров, Nextcloud и его приложений.

***

## Частые вопросы

<details>

<summary>The direct login is blocked since Nextcloud is running</summary>

Это не ошибка, а защита панели AIO. Откройте её через Nextcloud кнопкой **Open Nextcloud AIO Interface** на странице `https://ваш-домен/settings/admin/overview`. Если войти в Nextcloud не получается, AIO на этой же странице подсказывает команду `docker stop nextcloud-aio-apache`, после которой вход по фразе снова откроется.

</details>

<details>

<summary>Домен не проходит проверку</summary>

1. Проверьте, что запись A домена указывает на IP-адрес сервера, например командой `dig cloud.example.com +short`. Подробнее о проверке DNS рассказано в статье про [nslookup и dig](https://docs.f3cloud.com/ru/network/nslookup-dig.md).
2. Убедитесь, что порт `443` не занимает другой веб-сервер, например командой `ss -tlnp | grep ':443'`.
3. Если запись только что создана, подождите, пока она обновится.

</details>

<details>

<summary>В проверке настроек предупреждение о default phone region</summary>

Nextcloud хочет знать страну по умолчанию для номеров телефонов. Мы увидели это предупреждение сразу после установки. Задайте страну командой ниже, вместо `RU` укажите код своей страны.

```bash
docker exec --user www-data nextcloud-aio-nextcloud php occ config:system:set default_phone_region --value="RU"
```

</details>

<details>

<summary>Потерялся пароль администратора Nextcloud</summary>

Начальный пароль показывается в панели AIO, пока вы его не смените. Если вы уже сменили пароль и забыли его, задайте новый командой `occ`.

```bash
docker exec -it --user www-data nextcloud-aio-nextcloud php occ user:resetpassword admin
```

</details>

***

## Наши ресурсы

**Telegram-канал:** [https://t.me/f3cloud_news](https://t.me/f3cloud_news)\
**Официальный сайт:** [https://f3cloud.com](https://f3cloud.com/ru)
