Перейти к содержанию

Nextcloud

В этой статье

Информация

Nextcloud - серверное программное обеспечение с открытым исходным кодом. Позволяет создавать собственный облачный сервис для хранения данных и коллаборации. Он основан на языке программирования PHP и предоставляет возможность использовать различные базы данных, такие как MySQL, PostgreSQL и SQLite. Nextcloud поддерживает шифрование данных на уровне клиента, что обеспечивает безопасность при передаче данных через интернет. С помощью Nextcloud можно синхронизировать данные между различными устройствами и работать в режиме онлайн и офлайн. Nextcloud предлагает обширный набор инструментов для коллаборации, например, он предоставляет функции для обмена документами, управления задачами, календарями и контактами. Также Nextcloud может быть интегрирован с другими сервисами, такими как Google Drive, Dropbox и Microsoft OneDrive.

Nextcloud. Основные возможности

У Nextcloud множество особенностей, которые делают его эффективным инструментом для хранения и обработки данных:

  • Хранение файлов. Nextcloud позволяет хранить файлы на сервере и обеспечивает доступ к ним через веб-интерфейс или с помощью приложений для настольных компьютеров и мобильных устройств.
  • Синхронизация файлов. Возможность синхронизировать файлы между различными устройствами делает сервис удобным инструментом для работы в различных условиях.
  • Контроль версий. Nextcloud позволяет сохранять несколько версий одного и того же файла, что позволяет восстановить предыдущие версии, если это необходимо.
  • Доступ к файлам через веб-интерфейс. Nextcloud имеет веб-интерфейс, который позволяет получать доступ к файлам через браузер, что делает его удобным инструментом для работы на любом устройстве.
  • Управление календарями и задачами. Nextcloud позволяет создавать и управлять календарями и задачами, что делает его полезным организационным инструментом.
  • Управление контактами. Nextcloud позволяет создавать и управлять контактами, что делает его удобным инструментом для управления коммуникацией.
  • Доступ к файлам через приложения. Nextcloud имеет приложения для настольных компьютеров и мобильных устройств, которые позволяют получать доступ к файлам через них.
  • Расширяемость. Nextcloud имеет множество дополнительных приложений, которые можно установить и использовать для расширения функционала, таких как приложения для онлайн-коллаборации, редактирования документов, управления проектами и т. д.

Особенности сборки

ID Совместимые ОС VPS BM VGPU GPU Мин. ЦПУ (Ядер) Мин. ОЗУ (Гб) Мин. HDD/SDD (Гб) Доступно
16 Ubuntu 22.04 + + + + 2 4 40 Да

Примечание

Если не указано иное, по умолчанию мы устанавливаем последнюю релиз версию программного обеспечения с сайта разработчика или репозиториев операционной системы.

  • Nextcloud включен в состав ядра и его дополнительная установка не требуется. Мы предоставляем веб-интерфейс, посредством которого происходит установка и настройка сервиса.
  • Конфигурационные файлы расположены в:
    • /opt/nextcloud - установка настройка Nextcloud;
    • /opt/nginx - установка и настройка Nginx сервиса;
    • /opt/nextcloud/compose.yml - запуск docker compose, который запускает связку из контейнеров Nextcloud + Onlyoffice.
  • Генерация SSL-сертификата основана на сборке jonasal/nginx-certbot.
  • Данные команды могут быть необходимы для обновления версий контейнеров, правки конфигурационного файла.

    • Для остановки контейнеров необходимо выполнить команду
    cd /opt/nextcloud/
    

    Затем

    docker compose down
    
    • Для включения контейнеров необходимо выполнить команду
    cd /opt/nextcloud/
    

    Затем

    docker compose up -d
    
  • При выполнении docker compose up -d запускается compose.yml файл, который скачивает и запускает следующие контейнеры:

    • db - контейнер, скачивается PotgreSQL и проводятся следующие настойки:
      • создается база Nextcloud;
      • создается пользователь Nextcloud;
      • пароль от SSH (приходит в письме на вашу электронную почту при готовности сервера к работе после развертывания ПО);
      • стандартный порт 5432.
    • redis - контейнер, хранение обращений к Nextcloud в памяти и только после запись в базу данных PostgreSQL;
    • app - контейнер, сервис Nextcloud прописаны следующие параметры:
      • Доступ к приложению осуществляется из веб-браузера или мобильного приложения по ссылке https://nextcloud(id сервера).hostkey.in (например, https://nextcloud16094.hostkey.in);
      • логин: admin;
      • пароль: от ssh;
    • onlyoffice-document-server - контейнер, сервис OnlyOffice работает на 80 порту.

    Внимание

    Этот контейнер запускается от 6 минут. В это время можно зайти в веб-интерфейс Nextcloud, заливать и скачивать файлы, но возможность редактировать документы появится только через 6 минут или более после выполнения docker compose up -d (требуется некоторое время для запуска ряда компонентов).

    • nginx - контейнер, сервис Nginx, принимающий запросы на 80 и 443 порту и перенаправляет запросы на контейнер Nextcloud.

Начало работы после развертывания Nextcloud

После оплаты заказа на указанную при регистрации электронную почту придет уведомление о готовности сервера к работе. В нем будет указан IP-адрес VPS, а также логин и пароль для подключения. Управление оборудованием клиенты нашей компании осуществляют в панели управления серверами и APIInvapi.

Данные для авторизации, которые можно найти или во вкладке Информация >> Тэги панели управления сервером или в присланном e-mail:

  • Ссылка для доступа к панели управления Nextcloud с веб-интерфейсом: в теге webpanel;
  • Логин: admin;
  • Пароль: приходит в письме на вашу электронную почту при готовности сервера к работе после развертывания ПО.

После перехода в панель управления Nextcloud необходимо ввести логин и пароль:

После успешной авторизации можно приступать к использованию сервиса:

Примечание

Подробная информация по основным настройкам Nextcloud содержится в документации разработчиков.

Внимание

Для заказа сервера с Nextcloud следует выбирать сервер в соответствии с рекомендациями разработчиков.

Изменение доменного имени

Перед началом работ по изменению доменного имени рекомендуется сделать резервную копию всех файлов, указанных в инструкции. Для создания резервных копий основных файлов выполните следующие команды:

  1. Создайте директорию для резервных копий

    mkdir -p /root/nextcloud_backup
    
  2. Копирование конфигурационного файла Nginx

    cp /opt/nginx/user_conf.d/nextcloud<ID сервера>.hostkey.in.conf /root/nextcloud_backup/
    
  3. Копирование файла Docker Compose

    cp /opt/nextcloud/compose.yml /root/nextcloud_backup/
    
  4. Копирование скрипта конфигурации

    cp /opt/nextcloud/set_configuration.sh /root/nextcloud_backup/
    
  5. Копирование конфигурационного файла Nextcloud

    cp /var/lib/docker/volumes/app_data/_data/config/config.php /root/nextcloud_backup/
    

Эти команды создадут резервные копии всех ключевых файлов, которые будут изменяться в процессе смены доменного имени. В случае возникновения проблем вы сможете восстановить исходную конфигурацию из резервных копий.

Восстановление из резервных копий и удаление после успешной миграции

Если процесс смены доменного имени прошел неудачно и вам нужно восстановить исходную конфигурацию, выполните следующие команды:

  1. Восстановление конфигурационного файла Nginx

    cp /root/nextcloud_backup/nextcloud<ID сервера>.hostkey.in.conf /opt/nginx/user_conf.d/
    
  2. Восстановление файла Docker Compose

    cp /root/nextcloud_backup/compose.yml /opt/nextcloud/
    
  3. Восстановление скрипта конфигурации

    cp /root/nextcloud_backup/set_configuration.sh /opt/nextcloud/
    
  4. Восстановление конфигурационного файла Nextcloud

    cp /root/nextcloud_backup/config.php /var/lib/docker/volumes/app_data/_data/config/
    
  5. Перезапуск контейнеров

    cd /opt/nextcloud
    
    docker compose down
    
    docker compose up -d
    
    6. Перезапуск nginx

    docker restart nginx-certbot
    
    Эти команды восстановят все файлы конфигурации в их исходное состояние и перезапустят необходимые сервисы.

Когда вы убедитесь, что смена доменного имени прошла успешно и все работает корректно (рекомендуется выждать не менее 24-48 часов для полного тестирования), вы можете безопасно удалить резервные копии:

  1. Проверить содержимое директории с резервными копиями

    ls -la /root/nextcloud_backup/
    
    2. Удалить всю директорию с резервными копиями

    rm -rf /root/nextcloud_backup/
    

Перед удалением рекомендуется проверить содержимое директории, чтобы убедиться, что вы удаляете именно те файлы, которые нужно.

Изменение конфигурационных файлов

  1. Подключитесь к серверу по SSH:

    ssh root@IP_АДРЕС
    
  2. Изменение имени хоста (опционально):

    hostnamectl set-hostname nextcloud_server
    
  3. Редактирование /etc/hosts:

    nano /etc/hosts
    
    Добавьте строку, связывающую новый домен с IP-адресом сервера:

    IP_АДРЕС ВАШЕ_ДОМЕННОЕ_ИМЯ
    
    (замените IP-адрес и доменное имя на ваши значения)

Настройка Nginx

  1. Найдите и отредактируйте файл конфигурации Nginx:

    nano /opt/nginx/user_conf.d/nextcloud<ID сервера>.hostkey.in.conf
    
    Замените все экземпляры старого доменного имени (nextcloud<ID сервера>.hostkey.in) на новое (ВАШЕ_ДОМЕННОЕ_ИМЯ):

    • Строка 4: server_name nextcloud<ID сервера>.hostkey.in;server_name ВАШЕ_ДОМЕННОЕ_ИМЯ;
    • Строка 15: server_name nextcloud<ID сервера>.hostkey.in;server_name ВАШЕ_ДОМЕННОЕ_ИМЯ;
    • Строка 17: ssl_certificate /etc/letsencrypt/live/nextcloud<ID сервера>.hostkey.in/fullchain.pem;ssl_certificate /etc/letsencrypt/live/ВАШЕ_ДОМЕННОЕ_ИМЯ/fullchain.pem;
    • Строка 18: ssl_certificate_key /etc/letsencrypt/live/nextcloud<ID сервера>.hostkey.in/privkey.pem;ssl_certificate_key /etc/letsencrypt/live/ВАШЕ_ДОМЕННОЕ_ИМЯ/privkey.pem;
    • Строка 19: ssl_trusted_certificate /etc/letsencrypt/live/nextcloud<ID сервера>.hostkey.in/chain.pem;ssl_trusted_certificate /etc/letsencrypt/live/ВАШЕ_ДОМЕННОЕ_ИМЯ/chain.pem;
  2. Переименуйте конфигурационный файл:

    mv /opt/nginx/user_conf.d/nextcloud<ID сервера>.hostkey.in.conf /opt/nginx/user_conf.d/ВАШЕ_ДОМЕННОЕ_ИМЯ.conf
    
  3. Перезапустите Nginx-контейнер:

    docker restart nginx-certbot
    

Настройка Nextcloud

  1. Редактирование файла Docker Compose:

    nano /opt/nextcloud/compose.yml
    
    Замените все экземпляры старого доменного имени на новое (ВАШЕ_ДОМЕННОЕ_ИМЯ). Обратите внимание на строки, содержащие:

    • Строка 40: - OVERWRITECLIURL=https://nextcloud<ID сервера>.hostkey.in/
    • Строка 41: - OVERWRITEHOST=nextcloud<ID сервера>.hostkey.in
  2. Редактирование скрипта конфигурации Nextcloud:

    nano /opt/nextcloud/set_configuration.sh
    
    Замените все экземпляры старого доменного имени на новое. Особое внимание обратите на строки:

    • Строка 11: if ! grep -q "nextcloud<ID сервера>.hostkey.in" trusted_domain.tmp; then
    • Строка 13: docker exec -u www-data app-server php occ --no-warnings config:system:set trusted_domains $TRUSTED_INDEX --value="nextcloud<ID сервера>.hostkey.in"
    • Строка 23: docker exec -u www-data app-server php occ --no-warnings config:system:set onlyoffice StorageUrl --value="https://nextcloud<ID сервера>.hostkey.in/

Применение изменений

  1. Перейдите в директорию Nextcloud:

    cd /opt/nextcloud
    
  2. Остановите и удалите существующие контейнеры:

    docker compose down
    
    Эта команда остановит и удалит все контейнеры, определенные в файле compose.yml, но сохранит все данные в томах.

  3. Запустите контейнеры Nextcloud:

    docker compose up -d
    
  4. Запустите скрипт конфигурации:

    bash /opt/nextcloud/set_configuration.sh
    

Если скрипт выдает ошибку о том, что команда "maintenance:install" не определена, это нормально - Nextcloud уже установлен.

Проверка и отладка

  1. Проверьте, что Nextcloud доступен по новому доменному имени:

    Откройте в браузере https://ВАШЕ_ДОМЕННОЕ_ИМЯ

  2. Если возникают проблемы, проверьте логи:

    docker logs nginx-certbot
    docker logs app-server
    
  3. При необходимости, настройте trusted_domains вручную:

    docker exec -u www-data app-server php occ --no-warnings config:system:set trusted_domains 1 --value="ВАШЕ_ДОМЕННОЕ_ИМЯ"
    docker exec -u www-data app-server php occ --no-warnings config:system:set overwrite.cli.url --value="https://ВАШЕ_ДОМЕННОЕ_ИМЯ/"
    
  4. Если используется OnlyOffice, проверьте его настройки:

    docker exec -u www-data app-server php occ --no-warnings config:system:set onlyoffice StorageUrl --value="https://ВАШЕ_ДОМЕННОЕ_ИМЯ/"
    

Важные замечания

  • После внесения изменений обязательно очистите кэш браузера;
  • Все учетные данные пользователей остаются теми же, что и до смены доменного имени;
  • Если ваш DNS-провайдер требует время для обновления записей, может потребоваться некоторое время, прежде чем новое доменное имя начнет работать;
  • Убедитесь, что A-запись в DNS указывает на правильный IP-адрес вашего сервера;
  • PTR-запись (обратная DNS-запись) не является критичной для работы Nextcloud, но для полной согласованности может быть обновлена через панель управления

Заказ Nextcloud с помощью API

Для установки данного ПО с использованием API следуйте этой инструкции.