Nextcloud инструкция пользователя на русском

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

Во-первых, открытая архитектура Nextcloud позволяет добавлять на сервер дополнительные приложения, которые помогут легко организовать удаленную работу отдела или компании — сможете не только хранить данные, но и вести совместные проекты, ставить задачи, проводить видеовстречи и конференции. А также общаться с коллегами и «расшаривать» материалы, в том числе сотрудникам других отделов или компаний, у которых есть свой Nextcloud.

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

Если хотите организовать персональное хранилище на базе Nextcloud, можете самостоятельно установить ПО на виртуальный или физический сервер или заказать у нас VDS c готовым рецептом NextCloud.

Содержание:

  • Подготовка
  • Как подключить SSL-сертификат
  • Начало работы
  • Как добавить учетные записи
  • Как настроить дополнительные инструменты
    • календарь
    • контакты
    • диск
    • задачи
  • Заключение

Подготовка

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

Рецепт доступен для заказа на серверах с виртуализацией KVM. Операционные системы — Centos, Ubuntu или Debian. Не забудьте в предустановленном ПО выбрать Nextcloud.

Если у вас уже есть сервер, подходящий этим параметрам и вы готовы его полностью очистить для установки Nextcloud, то рецепт можно установить в панели VMmanager.

Если вы используйте VMmanager 5, перейдите в раздел УправлениеВиртуальные машины — выберите машину и нажмите сверху Переустановить. Далее выберите версию ОС, нужный рецепт и нажмите Ok. После этого система удалит все файлы, которые есть на сервере, и установит рецепт.

Если вы используйте VMmanager 6, перейдите в раздел Виртуальные машины — выберите машину и нажмите МенюПереустановить ОС.

Далее выберите версию ОС, нужный рецепт и нажмите кнопку «Переустановить». После этого система удалит все файлы, которые есть на сервере, и установит рецепт.

Как подключить SSL-сертификат

Вы можете пропустить эту часть статьи, если используете Nextcloud для ознакомительных целей и не собираетесь хранить здесь важную информацию (например, для самообучения, тестов, хранилища «ненужных» файлов). 

Однако, если вы с помощью данного приложения хотите перевести свою компанию «на удалёнку», либо планируете работать с конфиденциальной информацией, то рекомендуем подключить SSL-сертификат, который обеспечит шифрование трафика для его безопасности.

Что для этого нужно: домен (подойдет любой, принадлежащий вам или наш технический домен), уже направленный (например, так) на IP вашего сервера с NextCloud, а также  SSL-сертификат, уже выпущенный на этот домен.

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

Для начала разместим сертификат и приватный ключ на сервере.

Откроем новый файл любым текстовым редактором, например:
nano /etc/ssl/certs/nextcloud.crtca

В этот файл последовательно скопируем содержимое файла .crt (сертификат) и .ca-bundle (цепочка), именно в таком порядке. Сохраняем изменения и выходим.

Затем аналогично создадим файл ключа, например:
nano /etc/ssl/certs/nextcloud.key

Туда скопируем содержимое приватного ключа (.key) и сохраним изменения.

Затем нужно подключить SSL в самом конфигурационном файле веб-сервера. Редактируем конфиг любым текстовым редактором, например так:
nano /etc/nginx/conf.d/default.conf

upstream php-handler {
    server 127.0.0.1:9000;
    #server unix:/var/run/php/php7.2-fpm.sock;
}

server {
    listen 80;
    listen 443 ssl;
    ssl_certificate "/etc/ssl/certs/nextcloud.crtca";
    ssl_certificate_key "/etc/ssl/certs/nextcloud.key;
    listen [::]:80;
    server_name vashdomen.ru;
    root /var/www/nextcloud;

    client_max_body_size          512M;
    client_body_buffer_size       128m;
    fastcgi_connect_timeout       600;
    fastcgi_send_timeout          600;
    fastcgi_read_timeout          600;
    send_timeout                  600;

    add_header Referrer-Policy "no-referrer" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Download-Options "noopen" always;
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Permitted-Cross-Domain-Policies "none" always;
    add_header X-Robots-Tag "none" always;
    add_header X-XSS-Protection "1; mode=block" always;

    fastcgi_hide_header X-Powered-By;

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location = /.well-known/carddav {
      return 301 $scheme://$host:$server_port/remote.php/dav;
    }
    location = /.well-known/caldav {
      return 301 $scheme://$host:$server_port/remote.php/dav;
    }


    fastcgi_buffers 64 4K;
    gzip on;
    gzip_vary on;
    gzip_comp_level 4;
    gzip_min_length 256;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;

    location / {
        rewrite ^ /index.php;
    }

    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
        deny all;
    }
    location ~ ^/(?:.|autotest|occ|issue|indie|db_|console) {
        deny all;
    }

    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|oc[ms]-provider/.+).php(?:$|/) {
        fastcgi_split_path_info ^(.+?.php)(/.*|)$;
        set $path_info $fastcgi_path_info;
        try_files $fastcgi_script_name =404;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
        fastcgi_param PATH_INFO $path_info;
        fastcgi_param modHeadersAvailable true;
        fastcgi_param front_controller_active true;
        fastcgi_pass php-handler;
        fastcgi_intercept_errors on;
        fastcgi_request_buffering off;
    }

    location ~ ^/(?:updater|oc[ms]-provider)(?:$|/) {
        try_files $uri/ =404;
        index index.php;
    }

    # Adding the cache control header for js, css and map files
    # Make sure it is BELOW the PHP block
    location ~ .(?:css|js|woff2?|svg|gif|map)$ {
        try_files $uri /index.php$request_uri;
        add_header Cache-Control "public, max-age=15778463";
        add_header Referrer-Policy "no-referrer" always;
        add_header X-Content-Type-Options "nosniff" always;
        add_header X-Download-Options "noopen" always;
        add_header X-Frame-Options "SAMEORIGIN" always;
        add_header X-Permitted-Cross-Domain-Policies "none" always;
        add_header X-Robots-Tag "none" always;
        add_header X-XSS-Protection "1; mode=block" always;

        access_log off;
    }

    location ~ .(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ {
        try_files $uri /index.php$request_uri;
        access_log off;
    }

}

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

После этого убеждаемся что ошибок в конфиге нет:
nginx -t

Если получаем результат:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

То можем применить конфиг nginx командой:
systemctl reload nginx

После этого сертификат будет работать.

Если у вас Centos 8

В этом случае потребуется выполнить еще две команды:
firewall-cmd --permanent --add-port=443/tcp
и затем
firewall-cmd --reload

Теперь Nextcloud работает по защищенному HTTPS-соединению.

Начало работы

После разворачивания рецепта вы можете пройти в интерфейс NextCloud, введя в адресную строку браузера ip-адрес сервера.

Увидите окно авторизации:

Изначально есть только один доступ — администратора. По умолчанию имя пользователя — admin, пароль вы сможете найти в файле /root/Nextcloud-script-final.txt, подключившись к серверу по SSH. 

После авторизации появится приветственное окно с краткой информацией о продукте, важным в нём будет предпоследний слайд:

Он содержит ссылки на приложения для всех ПК и мобильных устройств — можно установить себе на компьютер или смартфон и получить быстрый доступ к хранилищу (подробнее об этом в разделе Диск). Также указаны полезные ссылки с инструкцией о том, как подключить дополнительные функции, о них расскажем дальше.

Внимание! Хоть приложение и имеет русский язык, некоторые элементы, а также все инструкции и справочная информация на английском языке.

Сейчас наше «облачное» приложение имеет базовую функциональность (не больше чем файловое хранилище). Но мы можем установить для него множество надстроек, т.е. дополнительных приложений. Что и сделаем. Идем в правый верхний угол и кликаем на иконку пользователя, далее выбираем пункт Приложения:

Откроется окно приложений:

Выбираем раздел «Пакеты приложений» и увидим большой список программ. На заголовок каждого можно нажать и узнать о нём подробнее. Мы остановимся на пакете «Основной набор приложений»: можно выбрать как отдельные элементы в нём, так и весь пакет в целом — он вполне может быть полезен, поэтому нажимаем «Включить все». Потребуется ввести пароль администратора, после чего запустится установка, а по её завершению иконки приложений появятся в верхней панели.

Как добавить учётные записи

Для коллективного использования Nextcloud требуется добавить учётные записи для каждого пользователя, которому хотим дать доступ к нашему облачному приложению. Сделать это можно, нажав в правом верхнем углу на иконку администратора и выбрав пункт «Пользователи»:

Для удобства можно создать дополнительные группы, чтобы регулировать уровень доступа. По умолчанию есть группа «Администраторы» с полным доступом к приложению, но вы можете создать, например, группу «Сотрудники» и добавлять туда пользовательские учетные записи с ограниченным доступом, например, тех, кому пользоваться приложениями можно, а менять настройки Nextcloud уже нельзя:

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

Как настроить дополнительные инструменты

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

Календарь

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

Зайти в календарь можно в верхней панели приложений:

Импорт готового календаря

Если у вас есть готовый календарь в приложении iCalendar на macOS или iOS, вы можете экспортировать его в файл .ics и импортировать в календарь NextCloud в разделе Параметры и импортImport Calendar.

Еще один способ синхронизации календаря (если у вас Linux с рабочим столом GNOME) описан в разделе Диск

Создание нового календаря

Если вы не планируете загружать готовый календарь, то можете создать новый следующим образом:

  1. Нажмите на кнопку + Создать календарь в левой части экрана.
  2. Придумайте ему название, например, Work.
  3. Кликните на «галочку» — календарь будет создан, а все вносимые в него события будут доступны с любых устройств для всех пользователей, которых подключите к нему.

Подключить сотрудников к календарю можно вручную, добавляя каждого отдельно или всю группу, например, «Сотрудники». Но также можно «расшарить» календарь всем, кто пройдет по специальной ссылке — для этого нажмите кнопку Поделиться — Поделиться ссылкой. Пройдя по ссылке, все пользователи добавятся к календарю сами.

Контакты

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

Как добавить контакты

При первом доступе к приложению «Контакты» по умолчанию нам показывают пустую адресную книгу.

Чтобы добавить контакты в адресную книгу, вы можете использовать один из следующих методов:

  • Импорт контактов с использованием файла Virtual Contact File (VCF / Vcard)
  • Добавить контакты вручную

Наиболее быстрым и удобным способом будет первый — использовать VCF/Vcard.

Есть много способов формирования такого файла, оставим ниже ссылки на некоторые примеры:
Экспорт VCF с IPhone
Экспорт VCF из Outlook
Экспорт VCF на Android
Экспорт VCF из таблицы в Excel

Импорт контактов из VCF-файла

Для импорта контактов данным способом необходимо сделать следующее:

  1. Найдите кнопку «Параметры» в левой нижней части панели в приложении Контакты.
  2. Далее нажмите на кнопку «Импорт контактов», затем «Загрузить с ПК»
  3. Выберите ваш vcf/vcard-файл и импортируйте его.

После этого все контакты из файла появятся в адресной книге.

Еще один способ синхронизации контактов (если у вас Linux с рабочим столом GNOME) описан в разделе Диск

Добавление контактов вручную

Если вы не можете или не хотите импортировать виртуальные контакты, приложение «Контакты» позволяет добавлять контакты вручную.

Чтобы создать новый контакт:

  1. Нажмите кнопку + Новый контакт. В поле справа откроется пустая конфигурация нового контакта.
  2. Укажите новую контактную информацию и сохраните изменения.

Как редактировать или удалить контактную информацию

Приложение «Контакты» позволяет редактировать или удалять контактную информацию. Чтобы изменить или удалить контактную информацию:

  1. Перейдите к конкретному контакту, который вы хотите изменить.
  2. Выберите информацию в поле, которое вы хотите редактировать или удалить.
  3. Внесите изменения или нажмите на «корзину».

Нажав на кнопку «Параметры» (шестеренка) в нижней части левой боковой панели, вы получите доступ к настройкам приложения «Контакты». В этом поле отображаются все доступные адресные книги, определённые параметры для каждой адресной книги и можно создавать новые адресные книги, просто указав имя адресной книги. В настройках контактов вы также можете обмениваться, экспортировать и удалять адресные книги. Вы можете получить URL-адреса для CardDAV.

Диск

  • Установка приложения для работы с диском
  • Если нет возможности установить приложение
    • Доступ к файлам с помощью Linux
      • Через файловый менеджер
      • Если у вас Linux с GNOME
    • Доступ к файлам с помощью Windows
      • Подключение хранилища с помощью командной строки
      • Подключение хранилища с помощью проводника Windows
  • Общий доступ к файлам

Установка приложения для работы с диском

В самом начале, мы уже упоминали, что после установки нам будут предложены ссылки для установки приложений на различные устройства. Установка этих приложений значительно облегчат вам работу с Nextcloud и избавят от лишних настроек. Дублируем ссылку на скачивание клиента Nextcloud здесь: https://nextcloud.com/install/#install-clients

Их скачивание и установка не должны составить у вас труда. Перейдем сразу к моменту первого запуска приложения, видим приветственное окно и нажимаем «Войти»:

Вводим адрес (IP или домен), обязательно укажите протокол http или https (c шифрованием, при наличии установленного SSL-сертификата), нажимаем «Далее». После этого автоматически откроется страница в браузере с окном авторизации в Nextcloud, авторизуемся там. Если все сделали верно, появится подобное сообщение:

Нажимаем «Разрешить доступ», затем возвращаемся в приложение и видим экран начальной настройки:

Здесь мы выбираем, выгружать ли уже размещенные на сервере в вашей учетной записи файлы на ваше устройство или нет. Также выбираем папку, куда эти файлы будут выгружены и в эту же папку мы сможем помещать файлы со своего устройства, чтобы папка автоматически синхронизировалась с сервером и передала новые файлы. После настройки нажимаем «Подключиться».

Видим главное окно приложения:

В нем есть две вкладки: Учетная запись и События.

В учетной записи мы подключены к серверу и видим все папки, которые были указаны для синхронизации с сервером. Во вкладке «События» мы будем видеть все уведомления от Nextcloud из любых его инструментов: общих, Календаря, Доски, Диска и других.

Теперь ваше устройство синхронизировано с сервером.

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

Если нет возможности установить приложение

Nextcloud полностью поддерживает протокол WebDAV: вы можете добавить хранилище Nextcloud как сетевой диск на вашем устройстве и таким образом работать с файлами в Nextcloud через WebDAV — как будто они лежат на вашем ПК. Далее будет описано как подключить Linux и Windows к вашему серверу Nextcloud через WebDAV.

Доступ к файлам с помощью Linux

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

Через файловый менеджер

В любом десктопном Linux файловый менеджер способен подключаться по WebDAV. Используйте davs:// протокол для подключения файлового менеджера к общей папке Nextcloud.
У каждого пользователя в Nextcloud есть своя папка, ссылку на неё можно увидеть в параметрах хранилища:

Если вы — администратор или просто пользователь, которому дали доступ, порядок действий, описанный ниже, не отличается. 

Копируем ссылку и заменяем http на davs.

Если ваше соединение с сервером не защищено HTTPS, используйте dav:// вместо davs://

Получившуюся ссылку вставляем в адресную строку файлового менеджера:

Нажмите Enter, после чего появится окно авторизации, где нужно будет указать данные авторизации пользователя от Nextcloud.

После авторизации мы увидим папку пользователя на сервере:

Со своей папкой каждый пользователь сможет работать: загружать и выгружать файлы прямо с ПК на Linux.

Если у вас Linux с GNOME

Есть и второй способ, более простой и функциональный, если у вас или пользователей, которым вы даете доступ, на Linux установлена оболочка GNOME.

Рабочий стол GNOME имеет встроенную поддержку для календаря, контактов и задач Nextcloud, и файлов в том числе. Все они, если включить, синхронизируются с аналогичными в Linux приложениями: Календарем, Контактами и Файловым менеджером.

Подключить можно, выполнив следующие действия:

  1. В настройках GNOME откройте онлайн-аккаунты
  2. Под «добавить учетную запись» выберите Nextcloud.
  3. Введите домен вашего сервера Nextcloud, имя пользователя и пароль, затем кнопку Connect (Подключить).
  4. В следующем окне выберите доступ к ресурсам и нажмите крестик в верхнем углу, чтобы закрыть его.

После этого все отмеченные ресурсы Nextcloud будут синхронизированы с системой Linux. Файлы, в частности, будут отображаться как отдельный WebDAV-ресурс в Файловом менеджере.

Доступ к файлам с помощью Windows

Если у вас используется HTTPS-соединение, необходимо предварительно добавить настройку в Windows. Настраивается это в реестре Windows:

запустите «regedit» и перейдите к

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/WebClient/Parameters

Создайте или измените значение DWORD «BasicAuthLevel» (Windows Vista, 7, 8) или «UseBasicAuth» (Windows XP и Windows Server 2003) и установите для его значения данных значение 1 для соединений SSL (в Windows 10 параметр «BasicAuthLevel» по умолчанию установлен в значении 1). Значение 0 означает, что базовая аутентификация отключена, значение 2 разрешает как SSL, так и не SSL-соединения. Затем закройте редактор реестра и перезагрузите компьютер.

Подключение хранилища с помощью командной строки

  1. Откройте командную строку в Windows.
  2. Введите следующую строку в командной строке, чтобы подключить диск Nextcloud (дадим ему букву, например, Z):
    net use Z: https://<drive_path>/remote.php/dav/files/USERNAME/ /user:youruser yourpassword

    где <drive_path> — это URL-адрес вашего сервера Nextcloud. Если нет SSL-сертификата, то используйте http вместо https.

    Например:

    net use Z: http://nctest2.fvds.ru/remote.php/dav/files/root/ /user:root DjtE46oEx

Подключение хранилища с помощью проводника Windows

  1. Перейдите в Windows Explorer (Проводник).
  2. Щелкните правой кнопкой мыши запись «Этот компьютер» и выберите « Подключить сетевой диск …» в раскрывающемся меню.
  3. Выберите букву диска, которую вы назначите хранилищу Nextcloud.
  4. Нажмите на ссылку “Подключение к веб-сайту…”
  5. Укажите адрес вашего Nextcloud, а затем /remote.php/dav/files/USERNAME/. Например:
    https://example.com/nextcloud/remote.php/dav/files/USERNAME/

  6. Введите имя пользователя и пароль от Nextcloud
  7. Завершите оформление, после чего диск с сервера Nextcloud будет открываться у вас прямо в проводнике Windows

Общий доступ к файлам

Несмотря на то, что у каждого пользователя своя личная папка, которую выше мы прикрепляли к своему устройству, достаточно часто требуется поделиться файлами или иметь общий доступ к файлам вместе с другими пользователями. Сделать это можно следующим образом:

Возле нужного файла нажимаем кнопку “Поделиться”:

После этого справа появится меню настройки общего доступа, можно выбрать разные варианты, самый удобный и простой — сделать ссылку для общего доступа:

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

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

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

Задачи

Отметим, что в целом эту функцию может выполнять и вышеупомянутый Календарь, однако если требуется более подробное структурирование задач и отслеживание их выполнения, вы можете воспользоваться инструментом Deck.

На скриншоте отмечена кнопка +Создать рабочую доску, а также кнопки «Поделиться» и «Параметры» для уже готовых досок. 

«Поделиться» — способ дать доступ к доске определенным пользователям или группе сразу:

В «Параметрах» можно переименовать доску, добавить ее в архив, удалить или изменить некоторые другие её свойства.

В созданной доске каждый имеющий доступ пользователь может добавлять, редактировать и удалять задачи:

Сначала создаются списки с категориями задач, в каждый список можно добавлять карточки с конкретными задачами (примерное оформление вы видите на скриншоте выше). К каждой задачи можно ставить метки статуса, прикреплять сотрудника, устанавливать срок, добавлять описание и вложенные файлы.

Заключение

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

Надеемся, что Nextcloud окажется для вас полезным и удобным инструментом.

Флешки понемногу отживают своё. Проще делиться файлом через Яндекс.Диск или Дропбокс, чем скидывать на флешку и куда-то нести. Благо даже в глухомани можно словить 2G, интернет доступен везде.

Чем же отличается Nextcloud от остальных коллег по цеху? Тем, что это личная облачная флешка. Вы арендуете сервер для себя, ставите эту софтину и пользуетесь в своё удовольствие.

Диск Nextcloud, открытый в браузере Vivaldi
Диск Nextcloud

Если вопрос приватности стоит не на первом месте, становится непонятно, чем такое решение лучше того же Яндекс.Диска, Облака Мейл.ру или OneDrive, ведь ими можно пользоваться бесплатно и без ковыряния в конфигурационных файлах: зарегистрируйся и пользуйся сколько хочешь. А тут настраивать надо!

Но если копнуть глубже, выясняется, что Nextcloud — целая платформа для хранения любых данных. Она даёт возможность избавиться от цифрового «рабства», отвязаться от Гугла и прочих корпораций, храня списки контактов и событий в календаре на подконтрольном только вам серверу. Никто не сможет использовать ваши данные для показа рекламы, копаться в файлах и отслеживать действия.

Nextcloud на телефоне
Nextcloud на телефоне

«Из коробки» доступно хранение трёх видов информации:

  • файлов (и каталогов),
  • контактов,
  • событий календаря.

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

  • ведение заметок (доступны аналоги Google Keep, но полноценной замены Evernote нет),
  • прослушивание музыки в веб-плеере,
  • чат и проведение видеоконференций (аналог Skype),
  • интеграция с сервисами для редактирования документов прямо в браузере.

В каталоге найдутся и другие расширения, но их качество оставляет желать лучшего. Например, на момент написания заметки у плагина интеграции Google Drive 17 нерешённых проблем.

Некоторым багам больше четырех месяцев
Некоторым багам больше четырех месяцев

Стабильность важна, когда дело касается хранения данных, поэтому придётся обходиться минимумом или пилить собственные расширения.

Кстати: сервера всемирно известного хостинга Digital Ocean подходят для организации собственного облака. Вы можете получить аккаунт с бонусными 200$ на счете через мою реферальную ссылку.

2 Сценарии использования

Приведу три сценария, в которых пригодится Nextcloud. На самом деле вариантов использования этого облака больше, но я человек простой, мне не нужны какие-то особенные запросы, поэтому более специфичные случаи не рассматривал.

1. Хранение файлов с доступом из разных мест. На ПК подключается сетевой диск, на телефоне используется приложение. Все действия можно делать и через браузер. Облачная флешка всегда будет под рукой, лишь бы интернет работал.

Хранилище Nextcloud можно подключить как сетевой диск
Хранилище Nextcloud можно подключить как сетевой диск

Лайфхак: можно расширить объём места, отводимого под хранение файлов, любым облачным сервисом, поддерживающим протокол WebDAV. При желании можно всё зашифровать через EncFS, чтобы данные были в безопасности.

У Nextcloud есть клиенты для Windows и Linux, но до удобства использования Яндекс.Диска и Дропбокса им далеко. Работать с файлами можно, каталоги синхронизируются с локальными, но в целом проще подключить сетевой диск, ведь место на жёстком диске ПК не резиновое.

2. Совместная работа с документами, организация задач. Один сервер может обслуживать много пользователей. Лишь бы места и производительности хватило.

Увы, в NextCloud нет редактора документов, как в Гугл Диске, но можно установить и настроить связанный редактор. Их несколько, самый популярный — Collabora Online Development Edition (об этом расскажу ниже).

Хотя некоторые предпочитают платную интеграцию с Onlyoffice — мощной системой, включающей в себя полноценный облачный офис с CRM, почтовым сервером и прочими фишками. Вариант подходит для крупных организаций с высокими требованиями к безопасности, не приветствующих сторонние сервисы.

ONLYOFFICE - Apps - App Store - Nextcloud

Onlyoffice

Без интеграций в облаке доступен разве что аналог Блокнота из Windows, но пользоваться им можно только в крайнем случае — очень уж примитивен этот текстовый редактор.

Без расширений в Nextcloud можно редактировать только текстовые документы
Без расширений в Nextcloud можно редактировать только текстовые документы

Для качестве замены Evernote в каталоге Nextcloud доступно аж четыре приложения:

  • Carnet — хранилище заметок, похож на Google Keep.
  • Deck — планировщик задач, аналог Трелло.
  • Notes — простой сервис текстовых заметок.
  • Tasks — составление списков задач.

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

Заметки Carnet
Заметки Carnet

Менеджер задач Deck возможностями похож на известный сервис Trello. Интеграция с группами пользователей сделана хорошо, можно планировать работу команд людей, назначая группам задачи.

Сервис планирования задач Deck
Сервис планирования задач Deck

Приложения ведения дел и заметок Notes и Tasks, по моему мнению, дополняют друг друга: один для ведения текстовых заметок, второй для составления to-do списков, в которых каждый пункт можно отмечать галочкой. Просто и эффективно.

3. Синхронизация контактов и ежедневника. На телефонах с Android можно заменить сервисы от Google на синхронизацию через NextCloud. Пока поддерживается хранение адресной книги и событий в календаре.

В календаре можно хранить список дел и важных дат (у меня пустой, так как не пользуюсь)
В календаре можно хранить список дел и важных дат (у меня пустой, так как не пользуюсь)

С помощью NC можно создать миниатюрную цифровую экосистему для членов семьи или сотрудников организации.

3 Способы установки

Доступны три версии:

  1. Готовый комплект — сервер с софтом и расширенной технической поддержкой от разработчиков Nextcloud.
  2. Бесплатный аккаунт с 5 Гб места.
  3. Набор файлов для самостоятельной установки.

За готовый инстанс NextCloud Enterprise просят от 36 евро на пользователя в год на самом дешёвом тарифе. Это на самом деле не дёшево ни разу, потому что итоговая цена наверняка будет выше. Так что оставим Enterprise вариант для компаний, готовых себе это позволить.

С бесплатным аккаунтом ситуация неоднозначная. Получить его можно на странице https://nextcloud.com/signup/ . Предоставляется 5 Гб места на облачном диске, приложения поставить нельзя (некоторые предустановлены), шифрование включить нельзя. Зато интегрирован текстовый редактор Collabora Online.

Остается устанавливать Nextcloud самостоятельно. Это не бесплатно, но денег будет уходить не так уж много.

О том, как выбрать хостинг, я рассказал в заметке «Как выбрать VPS хостинг – несколько советов».
Не можете поставить сами? Купите сторонний сервер и наймите админа, всё равно дешевле предложения авторов.

Внутренне NextCloud ничем не отличается от большинства сайтов, написанных на языке программирования PHP. При желании можно установить на дешёвый shared хостинг за 99 рублей в месяц. Нужны только поддержка PHP, MySQL и место на жёстком диске. Хотя страницы на шареде будут открываться крайне медленно, «поиграться» можно.

Чтобы понять, насколько полезен в быту Nextcloud, я решил поставить его на сервер за 3,99 евро в месяц (цена не актуальна, сервис подорожал в 2020-м), хостинг Scaleway. 2 ядра ЦП, 2 Гб ОЗУ, 50 Гб довольно быстрого диска — неплохие возможности за когда-то низкую стоимость.

Тарифы начального уровня от Scaleway
Тарифы начального уровня от Scaleway. Старый скриншот, сейчас цены и услуги другие!

Специально для тех, кому не интересно ковыряться с файлами конфигурации, Scaleway предлагает готовый образ ownCloud — это почти то же самое, что и Nextcloud. Последний отпочковался от него из-за расхождения во взглядах разработчиков. Почти всё, что написано здесь, касается обоих продуктов.

Выбор готовой системы для VPS
Выбор готовой системы для VPS

Если же нужен именно Nextcloud, можно поставить Docker (доступен практически на любом хостинге VPS) и установить туда искомый образ. Вот только в готовых образах Nextcloud работает на жадным до ресурсов вебсервере Apache. То есть на дешёвом VPS облако как бы работает, но при одновременном подключении более двух пользователей ОЗУ уже не хватает, сервер MySQL отключается, страницы начинают сыпать 50* ошибками. Мне это не понравилось и я решил заморочиться, задействовав Ubuntu 18.04 и Nginx.

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

Итак, существует три способа установки NextCloud:

  1. Установка готового контейнера Docker.
  2. Установка образа snap командой sudo snap install nextcloud в операционных системах, поддерживающих подобный способ (Ubuntu 18.04).
  3. Распаковка из архива с самостоятельной настройкой серверного софта.

Третий вариант — для упорных, которым необходим полный контроль над системой и максимальная производительность.

4 Доменное имя или цифровой адрес?

При желании можно купить домен, чтобы облако открывалось по красивой ссылке вместо цифрового IP. Это ещё рублей 200 в год для зоны .ru. Можно и бесплатно, если найти домен третьего уровня.

Про особенности покупки доменного имени я рассказывал в заметке «Покупка домена: как придумать имя, где купить дешевле и что настроить».

5 Шаг 1. Установка веб-сервера

Самое главное — вместо Apache нужен Nginx, способный выдержать сотни и тысячи запросов в секунду.

Чтобы не ковыряться в файлах конфигурации и ставить софт вручную, я использую Webinoly. Вместе с ней ставится веб-сервер Nginx с PHP новейшей версии и сервер баз данных MariaDB.

В инструкции ниже буду упоминать именно Webinoly, но в целом выбор панелей управления сервером велик и вам ничто не мешает использовать что-то другое или всё сделать вручную. Инструкция (в том числе актуальные примеры конфигурационных файлов) от авторов NC здесь. Далее будет мой вариант настройки, отличающийся тем, что я создаю конфиги Nginx через Webinoly, дабы сэкономить время.

6 Шаг 2. Распаковка NextCloud

NC написан на мегапопулярном языке программирования PHP, каких-то экзотических настроек для запуска не требует. Самое важное — обеспечить «маршрутизацию» для нужных адресов. Если что не так, потом в настройках увидите сообщения и рекомендации.

Сначала создаём каталог и конфигурацию сайта. В Webinoly генерация конфигурационных файлов выполняется командой

sudo site адрес_или_ip -mysql=default

Webinoly создаст необходимую площадку для запуска сайта и услужливо покажет имя базы данных и логин с паролем к ней. Запишите их — пригодятся.

Затем, если купили домен и внесли в настройки DNS домена запись типа A с ip-адресом сервера, можно подключить сертификат для шифрования по протоколу HTTPS:

sudo site адрес_или_ip -ssl=on

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

Если всё прошло успешно, появится надпись «SSL have been successfully enabled for site ***!». В противном случае будет указана ошибка, из-за чего не удалось получить сертификат Let’s Encrypt. Но по идее ошибок быть не должно, ведь мы запросили сертификат для «пустого» сайта.

Затем нужно скачать и распаковать архив с файлами NextCloud.

Так как я создал каталог через Webinoly, у меня это /var/www/имя_сайта/htdocs. Перехожу в него в консоли, подключившись к серверу по SSH из-под учётной записи с правами root:

cd /var/www/имя_сайта/htdocs

После качаю архив утилитой wget (если её нет, ставить так: sudo apt install wget).

wget https://download.nextcloud.com/server/releases/nextcloud-(версия).zip

Посмотреть свежую версию можно и нужно на странице загрузки NC: https://nextcloud.com/install/#instructions-server.

Распаковываю архив:

unzip nextcloud-20.0.4.zip nextcloud/* -d /var/www/имя_сайта/htdocs

Так как всё распаковалось в подкаталог /nextcloud, нужно переместить содержимое в корневой каталог сайта. Если этого не сделать, будут проблемы с получением сертификата SSL (особенность конфига Webinoly). Заодно можно удалить бесполезный теперь архив.

cd nextcloud/
mv * ..
mv .* ..
cd ..
rm -d nextcloud
rm nextcloud-(версия).zip

Далее требуется назначить правильные права на файлы и каталоги и указать их владельца. Обычно всё запущено от имени www-data.

sudo chown -R www-data:www-data /var/www/имя_сайта/htdocs/*
sudo find /var/www/имя_сайта/htdocs/* -type f -exec chmod 664 {} +
sudo find /var/www/имя_сайта/htdocs/* -type d -exec chmod 775 {} +

Перед тем, как вставлять команды выше, трижды перепроверьте пути! Указав неверный путь к месту хранения сайта, вы можете поломать права доступа к системным файлам.

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

nano /etc/nginx/sites-enabled/адрес_сайта

Вместо редактора nano может быть vi, mcedit или что-то ещё. Путь тоже может отличаться. Рекомендую установить Midnight Commander для удобной навигации по каталогам (apt install mc).

Дефолтное содержимое конфигурации сайта будет примерно таким (его создает Webinoly):

# WebinolySSLredirectStart - HTTP to HTTPS Redirect
server {
listen 80;
listen [::]:80;
server_name АДРЕС_САЙТА;
return 301 https://$host$request_uri;
}
# WebinolySSLredirectEnd
# WebinolyNginxServerStart
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name АДРЕС_САЙТА;
# WebinolySSLstart
ssl on;
ssl_certificate /etc/letsencrypt/live/АДРЕС_САЙТА/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/АДРЕС_САЙТА/privkey.pem;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/АДРЕС_САЙТА/chain.pem;
# WebinolySSLend
access_log /var/log/nginx/АДРЕС_САЙТА.access.log we_log; 
error_log /var/log/nginx/АДРЕС_САЙТА.error.log;
root /var/www/АДРЕС_САЙТА/htdocs;
index index.php index.html index.htm;
include common/php.conf;
include common/locations.conf;
include common/headers-http.conf;
include common/headers-https.conf;
include common/headers-html.conf;
include /var/www/адрес_сайта/*-nginx.conf;
}
# WebinolyNginxServerEnd

Нужно заменить на такой:

# WebinolySSLredirectStart - HTTP to HTTPS Redirect
server {
	listen 80;
	listen [::]:80;
	server_name АДРЕС_САЙТА;
	return 301 https://$host$request_uri;
}
# WebinolySSLredirectEnd
# WebinolyNginxServerStart
server {
	listen 443 ssl http2;
	listen [::]:443 ssl http2;
	server_name АДРЕС_САЙТА;
	# WebinolySSLstart
	ssl on;
	ssl_certificate /etc/letsencrypt/live/АДРЕС_САЙТА/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/АДРЕС_САЙТА/privkey.pem;
	ssl_stapling on;
	ssl_stapling_verify on;
	ssl_trusted_certificate /etc/letsencrypt/live/АДРЕС_САЙТА/chain.pem;
	# WebinolySSLend
	access_log off; 
	error_log /var/log/nginx/АДРЕС_САЙТА.error.log;
	root /var/www/АДРЕС_САЙТА/htdocs;
	
	#if ($request_method !~ ^(DELETE|PROPFIND|PUT|GET|HEAD|POST|OPTIONS|REPORT|MKCOL|MOVE|PROPPATCH|COPY|PATCH)$ ) {
	#return 405;
	#}
	
	index index.php
		
	add_header X-Content-Type-Options nosniff;
	add_header X-XSS-Protection "1; mode=block";
	add_header X-Robots-Tag none;
	add_header X-Download-Options noopen;
	add_header X-Permitted-Cross-Domain-Policies none;
	add_header Referrer-Policy no-referrer;
	add_header Strict-Transport-Security 15552000;
	fastcgi_hide_header X-Powered-By;
	location = /robots.txt {
		allow all;
		log_not_found off;
		access_log off;
	}
	
	location ~ /.well-known {
		allow all;
	}
	location = /.well-known/carddav {
		return 301 $scheme://$host/remote.php/dav;
	}
	location = /.well-known/caldav {
		return 301 $scheme://$host/remote.php/dav;
	}
	
	error_page 403 /core/templates/403.php;
	error_page 404 /core/templates/404.php;
	
	send_timeout 120;
	keepalive_timeout 120;
	client_body_buffer_size 128k;
	client_max_body_size 512m; #максимальный размер загружаемого файла
	client_body_timeout 120;
	client_header_timeout 120;
	fastcgi_buffers 64 4K;
	gzip on;
	gzip_vary on;
	gzip_comp_level 4;
	gzip_min_length 256;
	gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
	gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
	location / {
		#rewrite ^ /index.php$uri;
		try_files $uri /index.php$uri$is_args$args;
	}
	location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
		deny all;
	}
	location ~ ^/(?:.|autotest|occ|issue|indie|db_|console) {
		deny all;
	}
	location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34]).php(?:$|/) {
		fastcgi_split_path_info ^(.+.php)(/.*)$;
		include fastcgi_params;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		fastcgi_param PATH_INFO $fastcgi_path_info;
		fastcgi_param HTTPS on;
		fastcgi_param modHeadersAvailable true;
		fastcgi_param front_controller_active true;
		fastcgi_param PHP_VALUE "
		max_execution_time=120
		default_socket_timeout=120";
		fastcgi_read_timeout 120s;
		fastcgi_pass php;
		fastcgi_intercept_errors on;
		fastcgi_request_buffering off;
	}
	
	location ~ ^/(?:updater|ocs-provider)(?:$|/) {
		try_files $uri/ =404;
		index index.php;
	}
	location ~ .(?:css|js|woff|svg|gif)$ {
		try_files $uri /index.php$uri$is_args$args;
		add_header Cache-Control "public, max-age=7200";
		add_header X-Content-Type-Options nosniff;
		add_header X-XSS-Protection "1; mode=block";
		add_header X-Robots-Tag none;
		add_header X-Download-Options noopen;
		add_header X-Permitted-Cross-Domain-Policies none;
		add_header Referrer-Policy no-referrer;
		access_log off;
	}
	location ~ .(?:png|html|ttf|ico|jpg|jpeg)$ {
		try_files $uri /index.php$uri$is_args$args;
		access_log off;
	}
}
# WebinolyNginxServerEnd

«АДРЕС_САЙТА» замените на свой домен или IP. Также обратите внимание на блок обработки *.php (который со множеством fastcgi_param) — у вас строка «fastcgi_pass» будет другой, если используется не Webinoly.

Затем выполните команды установки главного пользователя с правами администратора. Имя, логин и пароль для доступа к базе Webinoly сообщал при создании сайта.

sudo -u www-data php /var/www/АДРЕС_САЙТА/htdocs/occ maintenance:install --database "mysql" --database-name "ИМЯ_БАЗЫ" --database-user "ПОЛЬЗОВАТЕЛЬ_БАЗЫ" --database-pass "ПАРОЛЬ_К_БД" --admin-user "ВАШ_ЮЗЕР" --admin-pass "ПАРОЛЬ" --data-dir "/var/www/АДРЕС_САЙТА/htdocs/nc_data"
sudo -u www-data php /var/www/АДРЕС_САЙТА/htdocs/occ config:system:set trusted_domains 1 --value=АДРЕС_САЙТА
sudo -u www-data php /var/www/АДРЕС_САЙТА/htdocs/occ config:system:set overwrite.cli.url --value=https://АДРЕС_САЙТА

Финальный штрих — установка задачи в Cron сервера, чтобы команды обслуживания запускались по расписанию. Редактирование запускается командой sudo crontab -u www-data -e. Добавьте строку:

*/15 * * * * php /var/www/АДРЕС_САЙТА/htdocs/cron.php

Напоминаю, что путь к файлу cron.php будет другой, как и пользователь www-data.

Теперь можно зайти в облако Nextcloud через браузер, чтобы проверить работоспособность.

Диск в Nextcloud
Диск в Nextcloud

Включите в настройках — «Основные настройки» Cron вместо AJAX.

На этом можно остановиться, поставить приложение Nextcloud на телефон и пользоваться всеми прелестями доступа к файлам из любой точки земного шара и с любого устройства.

А можно пойти дальше и расширить возможности.

7 Шаг 3. Допиливание

1. Кэширование

NC работает с APCu, Memcache и Redis. Рекомендую использовать только Redis, так меньше проблем (Memcache при кэшировании запрашивает неоправданно много места в ОЗУ):

sudo apt install redis-server php-redis
phpenmod redis

Затем отредактируйте файл /config/config.php. Привожу готовый файл, чтобы было понятнее, где редактировать. Пожалуйста, не копируйте его целиком, так как в вашем конфиге есть уникальные строки.

<?php
$CONFIG = array (
'instanceid' = 'здесь_ваше_значение',
'passwordsalt' = 'здесь_ваше_значение',
'secret' = 'здесь_ваше_значение',
'trusted_domains' =  
array (
0 => 'localhost',
1 => 'АДРЕС_САЙТА',
),
'datadirectory' = '/var/www/АДРЕС_САЙТА/htdocs/nc_data',
'dbtype' = 'mysql',
'version' = '14.0.1.1',
'overwrite.cli.url' = 'https://АДРЕС_САЙТА',
'dbname' = 'nc_tx8_ru',
'dbhost' = 'localhost',
'dbport' =  '',
'dbtableprefix' =  'oc_',
'dbuser' =  'здесь_ваше_значение',
'dbpassword' =  'здесь_ваше_значение',
'installed' =  true,
'memcache.local' = '\OC\Memcache\Redis',
'memcache.locking' =  '\OC\Memcache\Redis',
'filelocking.enabled' =  'true',
'bulkupload.enabled' => true,
'redis' => 
array (
'host' = '127.0.0.1',
'port' = 6379,
'dbindex' =  0,
'timeout' = 1.5,
),
);

Также обратите внимание на один момент: если вдруг у вас начал зависать клиент NextCloud для Windows (буквально не отвечать на нажатия), опцию ‘bulkupload.enabled’ => true установите в false. Это вызовет повышенную нагрузку на сервер и является временным способом обхода проблемы, которая проявляется в разных версиях NC.

2. Перенос каталога /data для защиты данных

Без тщательной настройки Nginx допускает обращение по прямым именам файлов. Зная ваш логин и имя файла в вашем файловом хранилище можно получить доступ без пароля путем перебора имен файлов. Это не уязвимость, а особенность работы Nginx.

Исправить можно двумя путями:

  • Грамотно отредактировав конфиг Nginx.
  • Переместив каталог /data в другое место.

Просто переместите каталог data на уровень выше в htdocs, заодно переименовав:

mv /var/www/nc.tx8.ru/htdocs/nc_data /var/www/АДРЕС_САЙТА/СЛУЧАЙНОЕ_ИМЯ

И отредактируйте в /config/config.php значение «datadirectory».

'datadirectory' = '/var/www/АДРЕС_САЙТА/ЭТО_СЛУЧАЙНОЕ_ИМЯ',

Теперь перебором адресов к файлам не подобраться.

3. Шифрование на стороне сервера (не актуально)

На случай, если к содержимому диска сервера могут получить доступ посторонние, предусмотрено шифрование файлов.

Нюанс №1. Производительности сервера может не хватить и файлы начнут загружаться в час по чайной ложке. Советую включать шифрование только на полноценных серверах, не VPS с их лимитом ресурсов.

Нюанс №2 (дополнение в 2022 году). Шифрование на стороне сервера — это устаревшая функция Nextcloud. Теперь можно включать шифрование на стороне клиента (end-to-end encryption) и тогда содержимое файлов (не имена) будет поступать на сервер уже зашифрованным.

Зайдите в раздел «Приложения»:

Включите модуль шифрования:

Затем в «Настройки» — «Администрирование» включите шифрование на стороне сервера:

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

Если сомневаетесь, потянет ли ваш сервер шифрование, можно включить шифрование и загрузить файл весом мегабайт в 300 (через веб-интерфейс или WebDAV), поглядывая в консоль на запущенный htop:

Можно наблюдать в реальном времени, насколько нагружен ЦП. В момент окончания загрузки файла происходит шифрование, поэтому будет всплеск потребления ресурсов. Если 300-мегабайтный файл вызывает нагрузку ядра выше 50% больше пяти секунд — шифрование будет мешать. Это эмпирический метод, но для оценки его хватает.

4. Интеграция с Collabora Online

Для редактирования документов, не выхода за пределы браузера, в NextCloud есть приложения интеграции. Облако можно подружить с Onlyoffice, Microsoft Office Online и Collabora Online. Я остановился на последнем варианте как на самом доступном.

Collabora Online в Nextcloud
Collabora Online в Nextcloud

В последние пару лет Collabora Online допили до вменяемого состояния, добавили поддержку русского языка и решили много проблем с производительностью и стабильностью. Прокрутка документов все ещё бывает слишком неторопливой, интерфейс неказист, но пользоваться можно. Можно закричать «вот она, вот она, замена Гугл Дооокс!» и в принципе это будет правдой. С оговорками, ибо возможность совместного редактирования документов отсутствует.

Что интересно, CODE — это не онлайн-приложение, а форк LibreOffice с дополнениями, представляющими интерфейс в виде страницы. Раньше это ощущалось — интерфейс дико тормозил. Сейчас с этим лучше.

Инструкции, доступные в интернете, почему-то оказались не полными. Возможно, подразумевается, что владельцы серверов сами должны додуматься до некоторых моментов, и я тоже с этим успешно справился, но держать некие «тайные» знания при себе не хочу. Поэтому вот мой гайд.

Поставьте docker. Хотя я стараюсь избегать этот инструмент, потому что он даёт иллюзию безопасности там, где безопасности нет, здесь без контейнеризации не обойтись, потому что слишком уж много компонентов надо ставить в системе. Воспользуйтесь этой инструкцией для установки: Как установить и использовать Docker в Ubuntu 18.04. Шага №1 будет достаточно.

Затем создайте домен для Collabora Online. Он необходим, так как CODE — отдельный сервис вне Nextcloud, к которому нужно обращаться по протоколу HTTPS. Так как у меня на сервере Webinoly, делаю так:

site office.domain.com -html
site office.domain.com -ssl=on

Естественно, IP на поддомен office должен быть прописан в записях DNS, иначе сертификат для работы HTTPS не получить. Вы можете выделить домен или поддомен любого уровня — без разницы какого, лишь бы хоть какой-то имелся.

Затем нужно отредактировать файл /etc/nginx/sites-available/тут_домен_сайта , прописав там правила для каталогов, которые будут использоваться онлайн-редактором. Вот готовый вариант конфигурационного файла, вам нужно лишь заменить доменное имя:

# WebinolySSLredirectStart - HTTP to HTTPS Redirect
server {
	listen 80;
	listen [::]:80;
	server_name office.domain.com;
	return 301 https://$host$request_uri;
}
# WebinolySSLredirectEnd
# WebinolyNginxServerStart
server {
	listen 443 ssl http2;
	listen [::]:443 ssl http2;
	server_name office.domain.com;
	# WebinolySSLstart
	ssl_certificate /etc/letsencrypt/live/office.domain.com/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/office.domain.com/privkey.pem;
	ssl_stapling on;
	ssl_stapling_verify on;
	ssl_trusted_certificate /etc/letsencrypt/live/office.domain.com/chain.pem;
	# WebinolySSLend	
	access_log off;
	error_log /var/log/nginx/office.domain.com.error.log;
	
	root /var/www/office.domain.com/htdocs;
		
	index  index.html index.htm;
	location / { try_files $uri $uri/ =404; }
	
	# static files
    location ^~ /loleaflet {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }
    # WOPI discovery URL
    location ^~ /hosting/discovery {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }
    # Capabilities
    location ^~ /hosting/capabilities {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }
    # main websocket
    location ~ ^/lool/(.*)/ws$ {
        proxy_pass http://localhost:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 36000s;
    }
    # download, presentation and image upload
    location ~ ^/lool {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }
    # Admin Console websocket
    location ^~ /lool/adminws {
        proxy_pass http://localhost:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 36000s;
    }
	
	include common/auth.conf;
	
	# WebinolyCustom
	# WebinolyCustomEnd
	
	include common/locations.conf;
	include common/headers-http.conf;
	include common/headers-https.conf;
	include common/headers-html.conf;
}
# WebinolyNginxServerEnd

Сохраните, проверьте правильность конфигов командой nginx -t , затем командой service nginx reload примените новые настройки веб-сервера.

С тем, чтобы запустить контейнер, в котором будет работать Collabora Online Development Edition, у меня, как и у некоторых других админов серверов, возникли трудности: с параметрами по умолчанию CODE отказывался работать. Это странно, но уж как есть. Ошибок было две:

  1. «Socket #25 SSL BIO error: error:1408F09C:SSL». Решается с помощью «-e ‘extra_params=—o:ssl.enable=false —o:ssl.termination=true’». Причина в том, что к контейнеру нужно обращаться по HTTP протоколу, что по умолчанию запрещено. Извне к Nginx обращение идёт по защищённому каналу, но внутри нам это не нужно, потому что придётся решать вопросы проброса сертификата Let’s Encrypt и его своевременного обновления.
  2. Ошибка «/usr/bin/loolmount: Operation not permitted». Почему-то в официальной документации забыли «—privileged», чтобы у контейнера появились права на создание форков процесса loolwsd.

Итак, весь процесс установки Collabora Online Development Edition на сервер сводится к выполнению одной-единственной строки:

docker run --name 'collabora' -t -d -p 127.0.0.1:9980:9980 -e 'domain=nextcloud\.domain\.com' -e 'dictionaries=en ru' -e 'extra_params=--o:ssl.enable=false --o:ssl.termination=true' -e "username=admin" -e "password=12345" --restart always --privileged --cap-add MKNOD --cap-add SYS_CHROOT --cap-add FOWNER collabora/code

Не забудьте изменить nextcloud\.domain\.com на адрес своего облака. Не домена, где находится онлайн-офис, а именно облака, сохранив слеши «\» перед точками. Пароль для админки 12345 смените на что-то безопасное.

После запуска можете проверить, доступна ли админка CODE по адресу https://domain.com/loleaflet/dist/admin/admin.html

Установите интеграцию с Collabora Online в приложениях Nextcloud:

Установка Collabora Online в Nextcloud

А также указать в настройках облака путь до поднятого сервиса:

Этого достаточно, чтобы документы, таблицы и презентации в Nextcloud можно было создавать и редактировать, не ставя какие-то другие программы или сервисы.

8 Опыт использования

Впервые я обратил внимание на Nextcloud в июне 2016 года, когда немецкий разработчик Фрэнк Карлитшек ушёл из основанной им компании ownCloud Inc и представил общественности Nextcloud — форк продукта, над которым работал ранее.

Чтобы понять, почему он так поступил, я установил ownCloud и Nextcloud параллельно, сравнил их возможности и… снёс. Пользоваться ими было решительно невозможно. Они тормозили и глючили. Это странно, учитывая их нацеленность на энтерпрайз — компаниям стабильность нужна как воздух. С тех пор оба продукта развиваются параллельно, но вроде как в Nextcloud больше возможностей, разработчики открытого софта сконцентрировались на нём.

Сейчас (в 2023 году) Nextcloud работает почти стабильно. Ну то есть работает так, как заявлено разработчиками, но иногда бывают проблемы с, например, зависанием клиентской программы для Windows и Linux. Хотелось бы большего функционала, например, нормальных встроенных редактора и просмотрщика фотографий, но продукт и так сложный, нельзя ожидать их немедленного появления.

9 Итог

Сейчас валютой стали личные данные пользователей. Совершается натурально-цифровой обмен между людьми и корпорациями: мы им рассказываем о потаённом, они предоставляют сервис. Такие продукты, как Nextcloud, дают возможность реже торговать информацией о себе.

А что делаете вы для защиты своих данных?

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

Как установить Nextcloud читайте в предыдущей статье.

Админка

Basic settings

Убедитесь, что пройдены все основные проверки безопасности. Это выглядит вот так. Если есть предупреждения — вернитесь к инструкции по настройке и проверьте, что всё сделано правильно.

Sharing

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

Theming

Здесь можно придать Nextcloud индивидуальности: задать имя, подпись, картинку на фон, и даже поменять цвет оформления. Делается по желанию.

Encryption

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

Приложения

Приложения — это дополнения, которые расширяют функции облака. Вот что я поставил для себя:

Two Factor TOTP Provider

Позволяет настроить двухфакторную авторизацию в аккаунт с помощью одноразовых кодов через приложение Google Authenticator или FreeOTP. Обязательно настройте этот способ входа для аккаунта администратора, желательно — для пользователя тоже. Сделать это можно в разделе Personal, в самом низу страницы.

Calendar, Contacts

Их мы будем использовать вместо календаря и контактов Google, об этом в следующей статье.

Deck

Управление проектами в стиле Канбан.

Notes

Текстовые заметки, можно удобно синхронизировать с телефоном, расскажу в следующей статье.

OPDS catalog

Сервер-библиотека для доступа к книгам. Работает с приложениями типа FBreader.

Passman

Хранилище паролей для сайтов в браузере. Есть плагин для Chrome.

Phone Sync

Односторонняя синхронизация SMS-сообщений с телефона в облако. Читайте в следующей статье про мобильный 🙂

Tasks

Простой список дел с привязкой к календарю.

Пользователи

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

  1. Откройте раздел Users
  2. В верху введите имя и пароль пользователя
  3. Нажмите на Groups, добавьте новую группу Users
  4. Нажмите Create
  5. Назначьте квоту места, чтобы случайно не переполнить сервер

Теперь у вас есть пользователь с ограниченными правами — то, что нужно для повседневного использования. Именно с обычным пользователем мы и будем дальше работать. Выйдите из учётной записи администратора и зайдите как новый пользователь.

В следующей статье расскажу, как настроить синхронизацию со смартфоном.

Введение

В статье мы расскажем, что такое Nextcloud, как скачать и установить его на свой сервер с дистрибутивом Ubuntu 22.04. Перед установкой подготовим все необходимые зависимости и конфигурации. А также выпустим бесплатный SSL-сертификат от сервиса Let’s Encrypt.

Что такое Nextcloud

Nextcloud — бесплатная и открытая облачная система для хранения данных и совместной работы. Это альтернатива популярным облачным сервисам вроде Dropbox или Google Drive. Но в отличие от этих сервисов, Nextcloud можно установить на свой сервер. Это означает, что вы будете полностью контролировать свои данные, не передавая их третьим лицам. Пользоваться сервисом можно как через браузер, так и установив клиентское приложение на компьютер (Windows, MacOS, Linux) или телефон (Android, iOS).

Кроме того, Nextcloud поддерживает множество плагинов (приложений) для расширения функционала. Вот несколько примеров:

  1. Calendar. Позволяет управлять своим расписанием, поддерживает синхронизацию с другими календарями через CalDAV.
  2. Files. Синхронизация файлов между устройствами, есть поддержка протокола WebDAV.
  3. Contacts. Управление контактами и адресной книгой с возможностью синхронизации через CardDAV.
  4. Mail. Интеграция электронной почты с облачным хранилищем.
  5. Notes. Заметки и списки с возможностью синхронизации на разных устройствах.
  6. Talk. Чат, аудио и видео звонки между пользователями Nextcloud.
  7. Tasks. Планировщик задач, интегрированный с календарем и поддерживающий синхронизацию с другими устройствами.
  8. Document Viewer. Онлайн-редактор документов, позволяющий создавать и редактировать текстовые файлы, таблицы и презентации.
  9. External storage support. Интеграция и перенос данных из других облачных хранилищ, таких как Google Drive или Dropbox.
  10. Two-Factor Authentication (2FA). Усиление безопасности аккаунта за счет подключения двухфакторной аутентификации.
  11. News. RSS-ридер для чтения новостей и блогов.
  12. Group folders. Создание общих папок и управление доступом к ним для разных групп пользователей.

Social. Интеграция социальных сетей и обмен подписками на федеративные платформы, такие как Mastodon.

Создание сервера в облачной платформе Selectel

Для начала создадим виртуальную машину, на которой будем устанавливать и настраивать Nextcloud. В панели управления Selectel зайдем в раздел Облачная платформа, Серверы и нажмем кнопку Создать сервер.

создание сервера nextcloud

Укажем имя сервера и выберем источник — образ Ubuntu 22.04 TLS. Затем необходимо выбрать количество виртуальных процессоров, объем оперативной памяти и сетевого диска. Обязательно подключите к машине внешний статичный IP-адрес, чтобы сервер был доступен из интернета. Также загрузите свой SSH-ключ, чтобы удаленно подключаться к машине.

выбор конфигурации

После создания сервера нужно подождать несколько минут, пока виртуальная машина запустится и загрузится. После этого в разделе Серверы скопируйте IP-адрес машины и подключитесь к ней по SSH.

ip-адрес

Подготовка к установке

Для начала установим необходимые пакеты: веб-сервер Apache, базу данных MariaDB и различные модули для PHP:

sudo apt update
sudo apt install apache2 mariadb-server libapache2-mod-php php-gd
php-mysql php-curl php-mbstring php-intl php-gmp php-bcmath 
php-xml php-imagick php-zip unzip

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

Nextcloud хранит большинство своих настроек в базе данных. Поэтому создадим БД и пользователя, а Nextcloud после первого запуска уже сам создаст нужные ему таблицы, индексы и представления. Чтобы подключиться к нашему локальному серверу, воспользуемся простой консольной утилитой mysql.

    sudo mysql

Теперь создадим пользователя и БД. Введите следующие команды, но обязательно поменяйте пароль на более сложный. Также можно указать другое имя пользователя и БД при необходимости.

    CREATE USER 'nextcloud_user'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud_user'@'localhost';
FLUSH PRIVILEGES;

MariaDB настроена, выходим из командной строки SQL:

    quit;

Установка и настройка Nextcloud

Теперь мы готовы к установке Nextcloud. Скачиваем самую последнюю версию и распаковываем ее:

    wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip

Затем переместим распакованное приложение директорию /var/www:

    sudo cp -r nextcloud /var/www

И сменим владельца каталога, чтобы Apache мог корректно обрабатывать все вложенные файлы:

    sudo chown -R www-data:www-data /var/www/nextcloud

Настройка веб-сервера Apache

Теперь необходимо настроить Apache. Для начала создадим файл /etc/apache2/sites-available/nextcloud.conf с настройками виртуального хоста.

В качестве доменного имени мы будем использовать cloud.my-domain.com, а вам необходимо указать свой домен:

    <VirtualHost *:80>
  DocumentRoot /var/www/nextcloud/
  ServerName  cloud.my-domain.com

  <Directory /var/www/nextcloud/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews

    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
</VirtualHost>

Чтобы Apache начал использовать этот файл конфигурации, выполните в shell-консоли команду:

    a2ensite nextcloud.conf

Далее активируем несколько модулей Apache, которые необходимы Nextcloud для корректной работы:

    a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime

Перезапустим Apache, чтобы применить все выполненные настройки: 

    service apache2 restart

Получение TLS-сертификата

Nextcloud уже готов к работе, но сейчас сейчас он работает по протоколу HTTP и не шифрует трафик. Чтобы повысить защиту сервера, выпустим и установим бесплатный TLS-сертификат от сервиса Let’s Encrypt. Для начала установим утилиту certbot, которая автоматически выпускает и обновляет TLS-сертификаты.

    sudo apt-get install -y certbot

Запросим сертификат с помощью команды (не забудьте в параметре указать свое доменное имя):

    sudo certbot --nginx -d chat.my-domain.com

Далее Certbot попросит ввести адрес электронной почты и согласиться с условиями использования. На этот адрес будут приходить письма с информацией об окончании срока сертификата. Сертификаты Let’s Encrypt действуют 90 дней. Чтобы обновить сертификат автоматически, добавьте cron-задание или systemd-таймер, который будет запускать следующую команду:

    sudo certbot renew --quiet

Теперь необходимо включить соответствующие модули в Apache, чтобы он начал использовать SSL-сертификаты:

    a2enmod ssl
a2ensite default-ssl

И еще раз перезапустим Apache, чтобы он применил новые настройки:

    service apache2 reload

Инициализация облака Nextcloud и начальный интерфейс

Откроем в браузере страницу https://cloud.my-domain.com и увидим окно первоначальной настройки Nextcloud. Создадим учетную запись администратора, а также укажите название БД, пользователя и пароль, которые мы заводили на этапе настройки MariaDB. При необходимости также можете поменять каталог, где будут размещаться пользовательские данные.

окно входа nextcloud

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

интерфейс nextcloud

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

Заключение

Мы установили и настроили облако Nextcloud на собственном сервере. Установили все необходимые зависимости, подготовили MariaDB и Apache к установке, защитили сервер бесплатным SSL-сертификат от Let’s Encrypt для шифрования трафика.

  • Главная

  • Инструкции

  • Ubuntu

  • Установка NextCloud на Ubuntu 20.04

Blog

Об этом не все знают, но первоначально Nextcloud был частью проекта OwnCloud. За небольшой промежуток времени NC вырос и в 2016 году отделился. С того момента Nextcloud стал самостоятельным проектом с открытым исходным кодом. Благодаря этому любой заинтересованный пользователь может создать свое личное облачное хранилище, самостоятельно разместить ПО и собрать индивидуальное решение.

После установки Nextcloud в вашем распоряжении будет рабочее пространство с почтовыми программами, схожими с Gmail, различными документами (вроде Google Docs) и возможностью делиться файлами (как это позволяет Dropbox). Также календарь с заметками, планировщики задач и другие полезные вещи, которые помогают структурировать информацию.

Установка И Использование Nextcloud В Ubuntu 20.04 (1)

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

Способы установки NC:

  1. Через систему управления контейнерами Docker .
  2. Через пакет приложений snap. Он поддерживают любые дистрибутивы Linux. Мы будем использовать дистрибутив Ubuntu 20.04.
  3. Ручная установка на сервер.

Второй метод был выбран по нескольким причинам. Во-первых, он наиболее эффективный, доступный и быстрый. Во-вторых, существенную роль сыграли преимущества Snap-пакетов. Они полностью укомплектованы, содержат в себе все зависимости и автоматически обновляются. Чтобы все заработало, достаточно утилиты (менеджер пакетов snapd). Установить этот пакет можно прямо из Snap Store. Единственный минус этой системы в том, что пакет занимает много места на диске.

Мы будем использовать облачный сервер с Ubuntu.

Пошаговая инструкция установки NextCloud на Ubuntu 20.04

Ниже мы расписали все этапы установки, последовательность которых необходимо соблюдать:

  1.     Инсталлируем NextCloud в Ubuntu.
  2.     Создаем профиль (учетную запись пользователя).
  3.     Настраиваем доверенные домены.
  4.     Защищаем веб-интерфейс одним из методов (зависит от наличия доменного имени).
  5.     Тестируем.

Первый шаг

Для загрузки Nextcloud snap запустите команду с использованием утилиты sudo. Это позволит запускать программы без привилегий пользователя root и получить права администратора. 

sudo snap install nextcloud

Проверяем установку приложения:

snap changes nextcloud

Сообщение подтверждает, что установка NextCloud осуществилась:

ID Status Spawn Ready
Summary
4 Done today at 10:30 UTC today at 10:30 UTC
Install "nextcloud" snap

Такое сообщение должно появиться и у вас.

Второй шаг

После установки NextCloud создаем аккаунт с логином и паролем.

sudo nextcloud.manual-install username password

Следом приходит сообщение, что запись настроена правильно. Теперь все права для работы с базой данных переданы пользователю username.

Nextcloud was successfully installed

Третий шаг

Переходим к настройке доменного имени. Так NC будет воспринимать HTTP-запросы, которые поступают не только сервера localhost. Допустим, сервер доступен по адресу 192.168.0.15, но мы хотим, чтобы он был доступен по адресу «mycloud.com». Для этого мы изменяем запись trusted_domains в файле config.php. По умолчанию адрес домена в NextCloud дополняется файлом с расширением «index.php».

Проверим, какие настройки у нас есть сейчас:

sudo nextcloud.occ config:system:get trusted_domains

Вывод:

localhost

Из сообщения видим, что пока массив trusted_domains содержит только localhost. Попробуем добавить еще запись в массив, увеличив номер индекса на один и изменив значение value. Для этого скопируйте и вставьте в свою командную строку команду:

sudo nextcloud.occ config:system:set trusted_domains 1 --value= mycloud.com

Вывод:

System config value trusted_domains => 1 set to string mycloud.com

Проверяем, сколько значений содержит массив сейчас:

sudo nextcloud.occ config:system:get trusted_domains

Результат (в нашем случае должно быть два домена):

localhost
mycloud.com

Используя данный алгоритм, можно добавлять доверенные домены и IP-адреса. Следующим шагом необходимо защитить веб-интерфейс. Порт 80 предназначен для сайтов с незашифрованным HTTP-трафиком, а 443 используется для сайтов с защищенным соединением. Как защитить свои данные, вы узнаете ниже.

Четвертый шаг

Чтобы между браузером и сервером (между клиентом и сервером) обеспечить безопасное соединение, необходимо произвести настройку SSL. При использовании SSL-сертификатов HTTPS заменяет HTTP в URL-адресе. SSL-сертификат информируют пользователей сайта о том, что соединение защищено, и сайту можно доверять. Подробнее об SSL мы писали в статье «Что такое SSL-сертификат и для чего он нужен».

Теперь о его получении. В начале этого руководства мы упоминали про два развития событий, которые зависят от привязки доменного имени к серверу.

Первый — когда серверу присвоено доменное имя. В этом случае рекомендуем пройти бесплатную сертификацию SSL от Let’s Encrypt. Ниже вы найдете подробную инструкцию как это сделать. Во втором варианте есть возможность произвести настройку сертификата с собственной подписью. Чем они отличаются друг от друга? Интернет-браузеры не доверяют самоподписанному сертификату по умолчанию, и при подключении внешнего посетителя выдает сообщение: «Сертификат безопасности не является доверенным!».

Сертификация от Let’s Encrypt

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

Открываем порты брэндмауэра:

sudo ufw allow 80,443/tcp

Затем запрашиваем сертификат:

sudo nextcloud.enable-https lets-encrypt

И подтверждаем соответствие своего сервера условиям для запроса сертификата. В конце этого сообщения вопрос. Чтобы продолжить, вводим «Y»:

In order for Let's Encrypt to verify that you actually
own the domain(s)
for which you're requesting a certificate,
there are a number of requirements of which you need to be aware:

 1. In order to register with the Let's Encrypt ACME server, you must agree to the currently-in-effect Subscriber Agreement located here: https://letsencrypt.org/repository/ By continuing to use this tool you agree to these terms. Please cancel now if otherwise.
2. You must have the domain name(s) for which you want certificates pointing at the external IP address of this machine.
3. Both ports 80 and 443 on the external IP address of this machine must point to this machine (e.g. port forwarding might need to be setup on your router).

Have you met these requirements? (y/n)

В следующей строке указываем email, который потребуется для важных уведомлений.

Please enter an email address (for urgent notices or key recovery):

После чего, чтобы завершить, необходимо ввести само доменное имя.

Please enter your domain name(s) (space-separated): mycloud.com

Если все команды заданы верно, то сервер запросит SSL-сертификат и перезапустит веб-сервер Apache для NextCloud.

Attempting to obtain certificates... done Restarting apache... done

Дальше можно выполнять вход в собственное облачное хранилище.

Самоподписанный сертификат SSL

Такой способ шифрует данные, но не подтверждает домен.

Для создания сертификата с собственной подписью запустите команду:

sudo nextcloud.enable-https self-signed

Сообщение об активации сертификата:

Generating key and self-signed certificate... done Restarting apache... done

Чтобы войти в NC, открываем веб-порты брандмауэра:

sudo ufw allow 80,443/tcp

Пятый шаг

Этапы установки и настройки пройдены. Пора попробовать зайти на сервер. Для этого достаточно ввести в поисковую строку браузера доменное имя или IP-адрес. Мы попадем на главную страницу, где требуется ввод логина и пароля. Если веб-интерфейс защищен самоподписанным сертификатом, то первоначально появиться окошко с предупреждением о небезопасном подключении. Проигнорируйте данное сообщение. При наличии заверенного сертификата сразу открывается окно с приветствием. Закрыв это, сразу можно приступать к работе с файлами.

Работа над ошибками

Для корректной работы Nextcloud необходимо проверить приложение на наличие проблем. В раздел «Проверка безопасности и параметров» можно зайти через настройки или через адресную строку браузера:

https://ваш_домен/settings/admin/overview

После перехода сразу появится страница со списком проблем. Сейчас мы рассмотрим исправления ошибок NextCloud.

1) Не хватает памяти: зачастую для стабильной работы требуется увеличить лимит памяти до 512 МБ. Изначально предоставляется 128 МБ. Для этого входим на сервер при помощи терминала и изменяем настройку для memory_limit с 128 на 512:

sudo sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/7.4/apache2/php.ini

2) Необходимо настроить систему кэширования: требуется увеличить производительность сервера и настроить одно из средств кэширования (Memcache, APCu или Redis). У нас будет Memcache. После установки модуля откроем конфигурационный файл и настроим Memcache для сервера.

nano /var/www/nextcloud/config/config.php

Указываем параметры:


'memcache.distributed' => 'OCMemcacheRedis',
'memcache.local' => 'OCMemcacheRedis',
'memcache.locking' => 'OCMemcacheRedis',
'redis' => array(
         'host' => 'localhost',
         'port' => 6379,       ),

Затем необходимо перезапустить Apache и PHP-FPM:

sudo systemctl restart apache2 php7.4-fpm

3) Не указано месторасположение сервера: лучше сразу определить регион с той целью, чтобы проверять мобильные номера пользователей без использования кода страны. Для этого добавляем параметр «default_phone_region» в соответствии с ISO 3166-1.

sudo nano /var/www/html/nextcloud/config/config.php
'default_phone_region' => 'RU',

4) Отсутствие некоторых индексов в базе данных: распространенная ошибка, поскольку в связи с экономией времени индексы не добавляются автоматически

Создаем индексы с помощью команды add-missing-indices:

cd /var/www/html/nextcloud/
sudo -u www-data php occ db:add-missing-indices

5) Требуется преобразование индексов базы данных в big int с помощью команды convert-filecache-bigint:

cd /var/www/html/nextcloud/
sudo -u www-data php occ maintenance:mode –on
sudo -u www-data php occ db:convert-filecache-bigint
sudo -u www-data php occ maintenance:mode –off

Также можно получить дополнительную информацию о конкретных привязках:

snap info nextcloud

Какие службы и приложения содержит пакет snap:

cat /snap/nextcloud/current/meta/snap.yaml

Установка завершена

После устранения всех ошибок снова заходим в раздел с проверкой безопасности. Если все проверки пройдены и ошибок не обнаружено, то можно переходить к работе, настроить синхронизацию и обмениваться файлами. Узнать еще больше про облачные сервисы можно в блоге Timeweb Cloud.

Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать. 

Понравилась статья? Поделить с друзьями:
  • Nexpeak a203 инструкция на русском скачать бесплатно последняя версия
  • Nexium таблетки инструкция по применению цена
  • Nexium таблетки инструкция по применению взрослым от чего назначают
  • Nexium инструкция по применению на русском
  • Nexium 40 mg инструкция на русском языке