Инициатива #SaveFirst
поддержка онлайн-проектов, которые помогают людям в период кризиса COVID-19
Подробнее

NextCloud: знакомство и быстрый старт

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

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

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

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

Содержание:

Подготовка

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

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

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

Как подключить 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-адрес сервера.

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

Изначально есть только один доступ — администратора. Учётной записью администратора будет имя пользователя root и пароль этого пользователя, указанный в Инструкции к серверу.

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

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

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

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

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

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

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

Для коллективного использования 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.

Диск

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

В самом начале, мы уже упоминали, что после установки нам будут предложены ссылки для установки приложений на различные устройства. Установка этих приложений значительно облегчат вам работу с 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 окажется для вас полезным и удобным инструментом.