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

В настоящее время IT-компании все активнее используют облачные решения для управления файлами и совместной работы. Одним из таких решений является Nextcloud. 

Image14

Источник изображения: marksei.com

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

В данной инструкции мы рассмотрим важный аспект работы с Nextcloud — добавление и настройку пользователей. Инструкция полностью выполняется от аккаунта администратора.

cloud

Ниже перечислим типичные сценарии, при которых появляется потребность в добавлении новых пользователей Nextcloud:

  • Расширение команды сотрудников;
  • Необходимость предоставить партнерам и клиентам ограниченный доступ к определенным документам или проектам;
  • Групповая работа над проектами;
  • Появление в компании новых отделов и подразделений;
  • Замена сотрудника на нового.

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

Этап 1. Установка приложения «File access control»

File access control — это приложение для Nextcloud, которое предназначено для контроля доступа к хранилищу. Благодаря ему администратор может создавать группы правил для пользователей и управлять ими.

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

Image6

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

Приложение установлено и включено. К созданию и настройке правил мы вернемся на пятом этапе данной инструкции.

Этап 2. Добавление пользователей

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

  1. Для начала открываем пользовательское меню и переходим к вкладке «Пользователи».
  2. В открывшемся окне создаем группы для будущих сотрудников. Чтобы добавить группу пользователей, нажимаем на кнопку «Добавить группу» в левом меню.

Image1

В нашем случае были созданы три тестовые группы: «TestGroup1», «TestGroup2» и «TestGroup3».

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

  1. Чтобы добавить пользователя Nextcloud, кликаем по кнопке «Новый пользователь», как показано на картинке ниже.

Image8

  1. В открывшейся форме создания пользователя указываем необходимые данные о нем:
    • имя;
    • пароль;
    • группу.

Остальные данные заполняются по необходимости. После заполнения нажимаем кнопку «Создать пользователя».

На этом этапе создание новых пользователей закончено. У нас получилась следующая структура:

Image10

Здесь к первой группе относится TestUser1, ко второй — TestUser2, а к третьей — TestUser1 и TestUser3.

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

Этап 3. Установка меток для файлов и папок

На данном этапе необходимо создать и расставить метки для файлов и папок в своем хранилище.

  1. Переходим во вкладку «Файлы» нашего облачного хранилища и выбираем файл или каталог для добавления метки.
  2. Далее во вкладке «Действия» выбираем пункт «Метки», как показано на картинке ниже.

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

По окончанию данного этапа у нас получилось, что для каталогов «TestCatalog1», «TestCatalog2» и «TestCatalog3» были созданы метки «Mark1», «Mark2» и «Mark3» соответственно.

Image16

Этап 4. Предоставление доступа новым пользователям к файлам и папкам 

На данном этапе мы предоставим права доступа к файлам и каталогам новым пользователям Nextcloud, созданным на 2 этапе настоящей инструкции.

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

Image12

  1. В строке поиска вводим необходимую группу и выбираем ее. В нашем случае это будет «TestGroup1».
  2. Повторяем шаги 1-3 для каждого выбранного ранее каталога или файла.

Выполнив вышеописанные шаги мы предоставили доступ к файлам и каталогам всем новым пользователям, а именно:

  • Сотрудникам из «TestGroup1» доступен каталог «TestCatalog1».
  • Сотрудникам из «TestGroup2» доступен каталог «TestCatalog2».
  • Сотрудникам из «TestGroup3» доступен каталог «TestCatalog3».

Этап 5. Добавление обработки файлов

На заключительном этапе мы рассмотрим настройку обработки файлов. Для этого нам понадобиться приложение «File access control», которое мы установили на первом этапе настоящей инструкции.

  1. Для начала перейдем в пользовательское меню и выберем там пункт «Параметры сервера». 
  2. В открывшемся окне, в левом меню выбираем вкладку «Обработка файлов». Будьте внимательны, не спутайте ее с аналогичной вкладкой в разделе «Параметры пользователя».

Image15

  1. На данный момент нам доступна только одна обработка — это «Блокирование доступа к файлу». Вы можете изучить дополнительные обработки в магазине, либо при достаточном опыте написать собственную. 

Нажимаем на кнопку «Добавить обработку» и переходим к ее настройке.

Image11

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

Для первой обработки создадим два фильтра. Они продемонстрированы на картинке ниже.

Image2

Здесь ограничен доступ к файлам с меткой «Mark1» для тех пользователей, кто не включен в группу «TestGroup1».

  1. Теперь повторяем шаги 3-4 для остальных файлов. В нашем случае это те, что помечены метками «Mark2» и «Mark3».

Доступ к файлам с меткой «Mark2» был ограничен для групп «TestGroup1» и «TestGroup3»:

Image7

Доступ к файлам с меткой «Mark3» был ограничен для групп «TestGroup1» и «TestGroup2»:

Image3

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

Image9

Теперь войдем в систему под логином и паролем TestUser2, который относится к группе «TestGroup2», а затем попробуем открыть каталог «TestCatalog3».

Image5

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

Заключение

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

Содержание

1.1 Требования к веб-браузеру

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

  • Microsoft Internet Explorer

  • Microsoft Edge

  • Mozilla Firefox

  • Google Chrome / Chromium

  • Apple Safari

Вы можете подключиться к серверу Nextcloud с помощью любого веб-браузера. Просто укажите URL-адрес вашего сервера Nextcloud (например, cloud.example.com) и введите в поле Имя пользователя Ваш почтовый адрес и пароль:

Вход в систему |

1.2 Навигация по основному интерфейсу пользователя

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

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

Интерфейс пользователя Nextcloud содержит следующие поля и функции:
 

  • Меню выбора приложений (1): здесь вы найдете все свои приложения, доступные на вашем экземпляре Nextcloud. Нажатие на значок приложения перенаправит Вас в приложение.

  • Информация о приложениях (2): расположено на левой боковой панели, оно предоставляет фильтры и задачи, связанные с выбранным приложением. Например, когда вы используете приложения Файлы, у вас есть специальный набор фильтров для быстрого поиска ваших файлов, таких как файлы, к которым вам предоставлен доступ, и файлы, которыми вы поделились с другими.

  • Содержимое приложения (3): основное центральное поле в интерфейсе пользователя Nextcloud. В этом поле отображается содержимое или пользовательские функции выбранного приложения.

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

  • Кнопка Добавить (5): расположенная на панели навигации, кнопка Добавить позволяет создавать новые файлы, новые папки или загружать файлы. Вы также можете перетаскивать файлы и папки из файлового менеджера в окно файлового приложения (3), чтобы загрузить их в свой экземпляр.

  • Поле Поиск (6): нажмите на лупу в правом верхнем углу, чтобы найти файлы и записи текущего приложения.

  • Меню контактов (7): предоставляет обзор ваших контактов и пользователей на Вашем сервере

  • Кнопка смены вида просмотра (8): выглядит как четыре маленьких квадрата, которые переключают вид сетки для папок и файлов.

  • Кнопка Уведомления (9) позволяет просмотреть текущие уведомления, а также включить уведомления от браузера.

  • Меню настроек (10): нажмите на изображение своего профиля, расположенное справа от поля поиска, чтобы открыть меню настроек. (Подробнее в Меню персональных настроек)

  • Описание папки (Readme.md) (11) текстовый документ, отображаемы в верхней части выбранной папки, предназначенный для добавления описания

  • Недавние документы (12) отображает недавно добавленные либо измененные файлы

1.3 Работа с файлами через веб-интерфейс Nextcloud

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

 

1.3.1Фильтрация файлов

На левой боковой панели (подробнее Навигация по основному интерфейсу пользователя) содержится несколько фильтров для быстрой сортировки и управления файлами:

  * Все файлы (1) файлы и папки доступные Вам для редактирования и просмотра

  • Недавно измененные (2) — недавно загруженные либо файлы и папки с недавно внесенными изменениями 

  • Избранные (3) — файлы или папки добавленные в избранное для быстрого доступа

  • Опубликованные ресурсы (4) — файлы и папки с общим доступом

  • Метки (теги) (5) — осуществляется поиск фалов или папок по метке (тегу)

 

1.3.2 Создание или загрузка файлов и папок

Вы можете создать файл или папку либо загрузить файлы, нажав на кнопку Создать в приложении Файлы

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

Новый каталог создает новую папку в текущем расположении.

Новый текстовый документ создает новый текстовый файл и добавляет файл в вашу текущую папку. 

1.3.3 Перемещение файлов и папок

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

1.3.4 Выбор фалов и папок и групповые действия с ними

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

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

1.3.5 Дополнительное меню

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

1.3.6 Метки (теги) файлов

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

Затем Вы можете использовать Метки (теги) для фильтрации представления файлов.

1.3.7 Контроль версий

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

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

1.3.8 Комментарии

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

1.3.9 Обмен файлами

В Nextcloud Вы можете обмениваться файлами и папками. Доступны следующие типы:

  • Публичные ссылки (1) — для предоставления доступа к папке или файлу пользователям вне Вашего Nextcloud

  • Внутренние ссылки (2)- для предоставления доступа к папке или файлу пользователям и группам в пределах Вашего Nextcloud 

Так же вы можете добавить файл или папку к проекту (подробности в статье Карточки) (3)

1.3.9.1 Публичные ссылки

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

  • Метку (тег) для файла (подробнее в Метки (теги) файлов)

  • Разрешить редактирование

  • Скрыть загрузку — запрещает возможность скачать файл

  • Защитить паролем

  • Установить срок действия — устанавливает срок действия ссылки

  • Примечание для получателя

  • Shared to mail — открывает почтовое приложение по умолчанию для отправки ссылки по электронной почте

  • Закрыть доступ

  • Добавить другую ссылку — для создания множества общедоступных ссылок с разными правами

 
Меню создания публичных ссылок для папок отличается. Добавлены пункты действия:

  • Только для чтения — разрешить только просмотр и скачивание фалов

  • Разрешить прием и редактирование — разрешить просмотр, скачивание и загрузку фалов в папку

  • Хранилище — только для загрузки файлов, без возможности просмотра файлов, находящихся в папке

1.3.9.2Внутренние ссылки

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

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

  • Разрешить редактирование

  • Разрешить повторное открытие общего ресурса — разрешает получателю делиться ссылками на этот файл или папку с другими пользователями

  • Установить срок действия — устанавливает срок действия ссылки

  • Примечание для получателя

  • Закрыть доступ

Меню редактирования уровня доступа для папок отличается. Добавлены пункты действия:

  • Разрешить создавать — позволяет создавать и загружать получателю папки и файлы

  • Разрешить удалять — позволяет удалять получателю папки и файлы

1.3.9.3Значки статуса совместного использования

Папка или файл, к которым предоставлен общий доступ помечается значком общий доступ (1). Публичные ссылки помечаются цепочкой (2)

1.3.10 Изменение владельца файла или папки

Вы можете передавать файлы или папки во владение другим пользователям. Совместное владение переданными файлами или папками также будут перенесены. Перейдите в Настройки, перейдите во вкладку Общий доступ (подробнее Общий доступ), в поле Файлы нажмите на Выберите файлы или папку для передачи владельца и выберите файл либо папку. В поле Новый владелец выберите пользователя. Нажмите Передать.

1.4 Меню персональных настроек

Вы можете управлять своими персональными настройками. Чтобы получить к ним доступ перейдите в меню Настройки

1.4.1 Личная информация

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

  • Управление изображением вашего профиля

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

  • Список групп, членом которых вы являетесь

  • Полное имя (может не совпадать с вашим именем для входа в Nextcloud, которое уникально и не может быть изменено)

  • Адрес электронной почты

  • Номер телефона

  • Адрес

  • Смена пароля (не используется в случае централизованной аутентификации пользователей)

  • Выбор языка интерфейса Nextcloud

  • Выбор региональных стандартов

  • Ссылки на социальные сети

1.4.2 Безопасность

Во вкладке Безопасность доступны настройки:

Аутентификация без пароля – позволяет добавить аппаратное устройство (например, токены https://shop.nitrokey.com/shop), с помощью которого будет возможно входить в Ваш Nextcloud без запроса пароля

Активные устройства и сеансы – указаны устройства, использующие Ваш логин и пароля для входа в Nextcloud. Здесь Вы можете отозвать доступ, удалить доступные данные устройств, а также переименовать мобильное устройство

Создать пароль для приложения – позволяет создать единоразовый пароль для входа, так же создать QR код для мобильных приложений

1.4.3 События

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

  • Файлы — уведомления о предоставленных Вам другими пользователями папок и файлов, а также внесения изменений в общедоступных файлах и папок

  • Календари и задачи – уведомления о предстоящих событиях

  • Другие события – уведомления и добавлении Вас в группы, добавлении комментариев к файлам, папкам и карточкам

1.4.4 Клиенты для ПК и мобильных устройств

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

1.4.5 Доступность

Вкладка Доступность позволяет изменять внешний вид Вашего Nextcloud

1.4.6 Общий доступ

Вкладка Общий доступ имеет следующие пункты:

  • Федерация облачных хранилищ – позволяет настроить общий доступ с другими облачными хранилищами

  • Файлы – Вы можете передать во владение файлы и папки другому пользователю (подробнее Изменение владельца файла или папки)

  • Общий доступ – позволяет разрешить либо отклонить принимать общедоступные файлы или папки

1.5 Карточки

Карточки в Nextcoud — это инструмент для личного планирования и управления проектами в стиле Kanban.

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

  • Список — это столбцы Карточек на Вашей доске

  • Карточка – это задача, которую необходимо отслеживать

 
Для создания новой Доски перейдите в приложение Карточки — Добавить Доску

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

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

Перейдите на вновь созданную Доску для создания Списка задач, введите наименование Списка

 
Добавьте Карточку для отслеживания выполнения задач

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

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

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

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

Вкладка История позволяет отслеживать историю внесения изменений в ту или иную карточку

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

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

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

1.6 Календарь

Приложение Календарь позволяет создавать события. Вы можете создавать и использовать различные календари для различных типов событий, к примеру: работа, личное, общее, дни рождения и т.д. Если Вы уже добавили в приложении Карточки задачи со сроком исполнения, то они автоматически будут добавлены в Календарь (подробнее Карточки).

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

Для создания календаря перейдите в приложение Календарь и нажмите Создать календарь, выберите Новый календарь. Введите наименование календаря

Вы можете Изменить название, Изменить цвет, Скопировать закрытую ссылку (для предоставления доступа к календарю другому пользователю). Скачать (для импортирования календаря в сторонне приложение) либо Удалить календарь. Обратите внимание: удаление является необратимым действием.

Вы можете предоставить доступ к Календарю другим пользователям. Нажми те кнопку Поделиться, введите имя пользователя. Здесь же можно разрешить либо запретить редактирование календаря.

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

Для внесения более детальных описаний для События в Календаре выберите Событие и перейдите в Больше.

Во вкладке Подробности доступны следующие описания

  • Добавить местоположение (1)

  • Добавить описание (2)

  • Изменить Подтверждение События из выпадающего списка (3)

  • Изменить видимость События в опубликованных Календарях (4)

  • Указать учитывать ли событие при учете свободного времени (5)

  • Указать новую либо выбрать из выпадающего списка категорию (6) для структурирования и упорядочивания Событий в Календаре

  • Изменить цвет События (7)

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

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

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

1.7 Приложение Контакты

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

1.7.1 Управление контактами

Для добавления контакта нажмите на кнопку Новый контакт, введите необходимые данные контакта в соответствующие поля. Вы можете добавить недостающие поля, к примеру День рождения, нажав на кнопку Создать свойство, либо удалить поля нажав на кнопку с изображением урны. Для группировки Контактов, по какому-либо свойству, Вы можете добавлять их в группы. Вызвав дополнительное меню (три точки вверху справа) Вы можете скачать контакт в виде карточки .vcf, создать QR код для импортирования в мобильные устройства и так же удалить.

1.7.2 Управление адресными книгами

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

2. Мобильное приложение Nextcloud

Мобильное приложение доступно как для Android, так и для iOS. После установки запустите приложение Nextcloud, нажмите Войти, в поле Адрес сервера введите адрес, который Вам предоставили (например example.cloud.com), в окне Вход в систему нажмите Войти, в поле Имя пользователя введите Ваш почтовый адрес, в поле Пароль введите Ваш пароль. В окне Доступ к аккаунту нажмите Разрешить доступ.

2.1 Интерфейс приложения Nextcloud

Интерфейс пользователя мобильного приложения Nextcloud повторяет основные функции и поля веб-интерфейса Nextcloud:

  • **Меню приложения** (1): в левом верхнем углу вы найдете основное меню приложения.

  • Поле Поиск (2): для поиска начните ввод имени файла и приложение будет предлагать подходящие файлы или папки

  • Порядок сортировки файлов (3). Вы можете выбрать порядок сортировки файлов в приложении: по алфавиту, по дате создания, по размеру.

  • Содержимое приложения (4): основное центральное поле в интерфейсе пользователя мобильного приложения Nextcloud. В этом поле отображается содержимое или пользовательские функции.

  • Кнопка смены вида просмотра (5): выглядит как четыре маленьких квадрата, которые переключают вид сетки для папок и файлов

  • Кнопка Поделиться (6): позволяет делиться файлами и папками с другими пользователями. В случае если файл или папка уже является общедоступной, то будет отображена аватарка пользователя, имеющего доступ к файлу или папке (8)

  • Дополнительное меню (7): позволяет добавлять в Избранные, переименовывать, загружать, удалять, перемещать. синхронизировать и просматривать подробные сведения о файле либо папке.

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

 

2.2 Основное меню мобильного приложения Nextcloud

Основное меню приложения содержит следующие функции и возможности:

  • Все файлы (1) — файлы и папки доступные Вам для редактирования и просмотра;

  • События (2) — отображаются следующие события действий над файлами;

  • Избранные (3) — файлы или папки, добавленные в избранное для быстрого доступа;

  • Медиа (4) – фотографии и видеофайлы доступные Вам;

  • Опубликованные (5) — файлы и папки с общим доступом;

  • На устройстве (6) – отображаются загруженные на устройство файлы и папки;

  • Уведомления (7) – отображают приближающиеся или прошедшие события в календарях и карточках;

  • Состояние передачи (8) – отображает очередь передачи файлов и папок на сервер Nextcloud;

  • Удаленные файлы (9) – файлы, находящиеся в корзине;

  • Настройки (10) – настройки приложения;

  • Сообщество (11) – позволяет отправлять отчеты об ошибках.

2.3 Настройка приложения

Вам доступны следующие настройки:

  • Папка для хранения – позволяет выбрать из выпадающего списка место для хранения файлов

  • Оформление – позволяет изменить стиль оформления приложения

  • Код приложения – позволяет настроить блокировку приложения кодом либо системной блокировкой, в последнем случае будет использоваться та же система блокировки что и при блокировке самого мобильного устройства

  • Показывать скрытые файлы – включает возможность показывать скрытые файлы на устройстве

  • Показывать уведомление о сканировании медиафайлов – при обнаружении нового каталога с медиафалами приложение Nextcloud будет уведомлять Вас и предлагать синхронизировать с сервером Nextcloud

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

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

  • Резервное копирование контактов – позволяет запустить создание резервной копии контактов и настроить автоматическое резервное копирование.

  • Помощь – откроет страницу help.nextcloud.com – форум с обсуждением функционала и проблем Nextcloud

  • Рекомендовать другу – отправляет ссылку для установки приложения Nextcloud

3. Десктопное приложение Nextcloud Desktop Sync

Вы можете использовать клиентское приложение для настольных ПК, чтобы синхронизировать файлы между сервером Nextcloud и компьютером. Выберите один или несколько каталогов на локальном компьютере и всегда будете иметь доступ к своим файлам, где бы вы ни находились. Клиент Nextcloud Desktop Sync доступен для Windows, macOS и различных дистрибутивов Linux

3.1 Установка приложения

3.2 Настройка приложения

3.2.1 Настройка учетной записи

Откройте установленное Nextcloud Desktop Sync из области уведомлений, в появившемся окне нажмите Войти в Nextcloud, в поле Адрес сервера введите URL сервера Nextcloud, например https://company1.file24.kz , предоставленный Вам провайдером услуг. На следующем шаге откроется окно браузера, нажмите кнопку Войти, в поле Имя пользователя введите свой адрес почтового ящика, например yu.sharapov@testcustomer.kz , в поле Пароль введите пароль от почтового ящика и нажмите Войти, нажмите кнопку Разрешить доступ, при успешной аутентификации появится уведомление Аккаунт подключен. Перейдите в окно приложение Nextcloud, нажмите кнопку Пропустить настройку папок. Либо нажмите Подключиться в этом случае по умолчанию будет создана папка для синхронизации Nextcloud

Настройка учетной записи

3.2.2 Настройка списка каталогов для синхронизации

Откройте Nextcloud Desktop Sync, нажмите на кнопку с именем пользователя, выберите Параметры. В окне Параметры Nextcloud нажмите Добавить папку для синхронизации, в окне Добавление подключения синхронизации папки нажмите Выбрать, в окне Выбрать папку-источник выберете папку для синхронизации, нажмите Выбор папки, в окне Добавление подключения синхронизации папки нажмите Далее. Вы можете создать новую папку на сервере Nextcloud куда будет осуществляться синхронизация, либо выбрать из уже существующих папок на сервере, нажмите Далее. Для завершения настроек синхронизации нажмите Добавить подключение для синхронизации. В окне Параметры Nextcloud, будет отображаться статус синхронизации. Так же можно добавить несколько каталогов для синхронизации.

Настройка списка каталогов для синхронизации

3.2.3 Параметры Nextcloud Desktop Sync

Вызовите контекстное меню Nextcloud Desktop Sync нажав правой клавишей мыши на значок в панели уведомлений. Из появившегося меню доступны следующие настройки:

  • Открыть основное окно открывает основное диалоговое окно

  • Приостановить синхронизацию всех учетных записей приостанавливает процесс синхронизации файлов с сервером Nextcloud

  • Параметры отрывает параметры Nextcloud Desktop Sync

  • Закрыть Nextcloud завершает работу приложения Nextcloud Desktop Sync

Для перехода в параметры Nextcloud Desktop Sync перейдите в Параметры. В появившемся окне Параметры Nextcloud Вам доступны следующие настройки:

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

в поле Дополнительно
Запрашивать подтверждение синхронизации папок размером более выводит

На пути создания своего облачного сервиса пока мы освоились в системе Debian и создали веб-сервер. Теперь пришла пора для финального шага — создания и настройки персонального облака на базе сервера Nextcloud.


Оглавление

Часть 1. Настройка среды Debian для повседневного использования
Часть 2. Создание сервера — настройка LAMP в Debian
Часть 3. Создание персонального облака — установка и настройка Nextcloud
Часть 4. Актуализация 2018 – Debian 9 и Nextcloud 13
Часть 5. Актуализация 2019 – PHP 7.2, MariaDB 10.4 и Nextcloud 17


Быстрая навигация по главе

Предисловие
Подготовка сервера для установки Nextcloud
Установка Nextcloud
Организация места хранения данных Nextcloud
Настройка доступа к виртуальной машине Nextcloud из локальной сети
Настройка Nextcloud
Дополнительная «тонкая» настройка Nextcloud
Защита для Nextcloud
Синхронизация с облаком смартфонов
Синхронизация с облаком персонального компьютера
Послесловие


Предисловие

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

Изначально эта глава планировалась небольшой, так как я хотел ограничиться только описанием установки и настройки Nextcloud, по сути закончив эту историю о «простом входе в Linux под конкретную задачу». Но, подумав, что кому-то это может показаться интересным, потом всё же решил показать как я решил вопрос синхронизации папок своего домашнего компьютера, поэтому эта завершающая глава плавно перетекла из чётких инструкций что и как делать в, по сути, программирование. Этим объясняется некоторый «винегрет» в этой части – начинается она с работы и настройки в Linux, перетекая на уровень настроек сети и виртуального софта, а заканчивается строганием костылей в Windows. С другой стороны, этот цикл статей имеет название «История создания…» и я всё же решил рассказать её до конца.

Примечание
При дальнейшем чтении в конструкциях вида http:// 127.0.0.1 (https:// 127.0.0.1) пробел после http:// (https://) необходимо убирать при вводе в адресную строку браузера. Пробел вставлен при публикации этой статьи с целью воспрепятствовать автоматической конвертации движком сайта текста в ссылки.


Подготовка сервера для установки Nextcloud

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

Создаём директорию, в которой будут размещены файлы Nextcloud:
# mkdir /var/www/nextcloud

Я решил отказаться от HTTP, оставив доступ только по HTTPS. Для этого нужно настроить apache.

Открываем файл:
# nano /etc/apache2/sites-available/default-ssl.conf
И перед тегом добавляем следующее содержимое:

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

Отключаем конфигурацию HTTP:
# a2dissite 000-default.conf

Закрываем порт 80:
# ufw delete allow 80

И перезапускаем веб-сервер:
# service apache2 restart

Теперь нужно создать базу данных для nextcloud. Входим в mysql, введя пароль от суперпользователя mysql:
# mysql -u root -p

Создаём базу данных с названием nextcloud:
mysql> CREATE DATABASE `nextcloud`;

Создаём пользователя с именем nextcloud и тривиальным паролем nc123:
mysql> CREATE USER ‘nextcloud’@’localhost’ IDENTIFIED BY ‘nc123’;

Выдаём полный доступ пользователю nextcloud на базу nextcloud:
mysql> GRANT ALL PRIVILEGES ON `nextcloud`.* TO ‘nextcloud’@’localhost’;

Обновляем таблицу привилегий:
mysql> FLUSH PRIVILEGES;

Выходим из mysql:
mysql: mysql> exit

Помимо этого, необходимо установить дополнительные модули для PHP:
# apt-get install curl libcurl3 libcurl3-dev php5-curl
# a2enmod rewrite

В первой части этой истории нами были открыты порты для сетевого и почтового взаимодействия, но под нашу целевую задачу они не требуются и лучше их закрыть. Удаляем правила:
# ufw delete allow 138/udp
# ufw delete allow 139/udp
# ufw delete allow 139/tcp
# ufw delete allow 445/tcp
# ufw delete allow 25
# ufw delete allow 465
# ufw delete allow 110
# ufw delete allow 143
# ufw delete allow 993


Установка Nextcloud

Скачиваем файлы и распаковываем их в предназначенную директорию:
# wget download.nextcloud.com/server/releases/nextcloud-11.0.2.tar.bz2
# tar xjf nextcloud-11.0.2.tar.bz2 -C /var/www

Изменяем права на папку:
# chmod 755 /var/www/nextcloud

И назначаем владельцем этой папки веб-сервер, чтобы не было проблем с записью в неё:
# chown -R www-data:www-data /var/www/nextcloud

Всё! Сервис установлен, если набрать в браузере https:// 127.0.0.1/nextcloud, то откроется мастер установки. Но подождём с этим, предварительно подготовив место для хранения пользовательских данных.

Стоит упомянуть, что версия Nextcloud 11.0.2 на данный момент является довольно устаревшей и содержащей уязвимости, которых нет в более новых и актуальных версиях, поэтому если и устанавливать ветку 11.х, то лучше установить более свежую версию (на начало 2018 года — это версия 11.0.7).


Организация места хранения данных Nextcloud

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

По умолчанию синхронизируемый контент будет храниться в директории /var/www/nextcloud/nxcdata. Меня этот вариант сразу не устраивал по нескольким причинам. С одной стороны, я бы не хотел постоянного увеличения объёма файла виртуального диска. С другой стороны, хотелось бы иметь отдельное и независимое от виртуальной машины решение хранения данных. Самое простое, что сразу приходит в голову – использование USB-диска. В случае нехватки места диск можно просто заменить. В случае необходимости его можно подключить к другому компьютеру и скачать необходимые файлы. Мобильно и удобно. Однако USB 2.0 использовать не хотелось по причине относительно небольшой пропускной способности по современным меркам, а с USB 3.0 у меня ничего не получилось – софт виртуализации (WMVare и VirtualBox) никак не хотел нормально пробрасывать устройства, подключенные через контроллер USB 3.0.

Аппетиты, в процессе работы над созданием облака, у меня возросли и мне уже никак не меньше одного терабайта надо было, поэтому, в конце концов, я решил подключить к виртуальной машине обычный двухтерабайтный жесткий диск, который уже был размещён и подключен внутри компьютера. В случае необходимости он без проблем вытаскивается и подключается через имеющийся переходник SATA <-> USB 3.0.

Итак, основная идея — организовать постоянную точку для подключения директории с пользовательским контентом вне каталога /var/www/nextcloud, в которой создаётся символьная ссылка с названием nxcdata, ссылающаяся на реальный каталог с данными, который может быть подключен различными способами на различных носителях.

Создаём каталог:
# mkdir /mnt/nxcdata

Изменяем права:
# chmod 770 /mnt/nxcdata

Делаем владельцем веб-сервер:
# chown www-data:www-data /mnt/nxcdata

Я могу как угодно и где угодно располагать данные, главное – символьную ссылку на эту директорию размещать в директории /mnt/nxcdata и назвать её nxcdata, т.е. полный путь будет выглядеть как /mnt/nxcdata/nxcdata.

Сначала я протестировал решение для локальной папки, которую создал в домашнем каталоге.

Создал в нужном месте папку:
$ mkdir /home/user/nxcdata

Изменил права:
# chmod 755 /home/user/nxcdata

Сделал владельцем веб-сервер:
# chown -R www-data:www-data /home/user/nxcdata

Создал символьную ссылку:
# ln -s /home/user/nxcdata /mnt/nxcdata/nxcdata

Это решение было работоспособно, поэтому можно двигаться дальше. Внешний каталог для данных можно подключить двумя способами – через сервис VMWare Shared или напрямую как физический диск или раздел. Надо понимать, что первое решение возможно только при наличии установленных vmware tools, которые без проблем ставятся только при наличии графического интерфейса операционной системы (в ином случае придётся править установочные скрипты vmware tools). Если же отказаться от графического интерфейса, то остаётся только вариант подключения диска напрямую к виртуальной машине, но и с этим решением мне пришлось изрядно помучиться. Через некоторое время я всё же нашёл стабильно работающий вариант, с учётом которого был придуман универсальный скрипт, вобравший в себя оба варианта подключения.

Для папки, подключаемой через VMWare Shared Folders в разделе Shared Folders настройках виртуальной машины необходимо подключить необходимую папку из хостовой системы и дать ей название vmw-nxcdata. Эта папка может ссылаться на какую-то директорию на жестком диске или прямо на корневой каталог какого-то диска в хостовой системе.

Подключенная папка появится в виртуальной системе автоматически по пути /mnt/hgfs/vmw-nxcdata. Однако проблема в том, что веб-серверу будет недостаточно прав для записи файлов по этому пути и стандартными средствами системы переназначить права для этой директории не получится. Поэтому мне пришлось разобраться как вручную монтировать подобные ресурсы.

Создаём папку:
# mkdir /mnt/vmw-nxcdata

Выполняем монтирование, используя модуль vmhgfs, который установился вместе с vmware-tools:
# mount -t vmhgfs -o uid=www-data,gid=www-data,fmask=007,dmask=007 .host:/vmw-nxcdata /mnt/vmw-nxcdata

Монтирование нужно выполнять именно с такими параметрами для беспроблемной работы веб-сервера в будущем. Изначально я монтировал без указания uid/gid и масок, но ни к чему хорошему это потом не приводило, так как изменить права после монтирования уже не получалось. После выполнения монтирования может выдаваться: «Could not add entry to mtab, continuing», — однако монтироваться и работать будет.

Отлично, директорию мы примонтировали. Теперь можно разместить символьную ссылку на эту директорию в /mnt/nxcdata. Но не хотелось бы при каждом запуске или перезапуске сервера делать это вручную. Самый простой способ – в файле /etc/rc.local вписать вышеприведённую команду для монтирования до строчки «exit 0». Однако мне хотелось, чтобы при выключении виртуальной машины происходило автоматическое гарантированное размонтирование для надёжной сохранности данных. И я решил сделать всё на уровне сервисов и немного разобраться с механизмами init/update-rc, тем более мне было любопытно и это оказалось довольно интересно.

Смысл нижеследующих действий в том, чтобы создать системный сервис, который бы вызывался и выполнял заранее заданные команды при включении или выключении системы. Сервис описывается скриптом, составленным по определённым правилам и располагается в /etc/init.d. Блок INIT INFO располагается в самом начале скрипта и содержит служебную информацию, в которой хотелось бы отметить директивы Default-Start и Default-Stop – они задают уровни выполнения, на которых скрипт должен быть запущен или остановлен по умолчанию.

Уровни выполнения:

0 – выполнение скрипта при выключении системы
1 – выполнение скрипта при запуске системы в однопользовательском режиме
2 – выполнение скрипта при запуске системы в многопользовательском режиме
3 – 5 – зарезервировано
6 – выполнение скрипта при перезагрузке системы

После написания скрипта он задействуется, используя механизм update-rc, который, фактически, на скрипт создаёт ссылки в нужных каталогах /etc/rc0.d — /etc/rc6.d, содержимое которых соответствует выполняемым задачам по уровням запуска. Ссылки можно создавать и самостоятельно, но, в отличии от включения или отключения конфигураций веб-сервера apache, здесь нужно учитывать много нюансов, поэтому включать или отключать сервис нужно через update-rc.

Итак, создаём файл:
# nano /etc/init.d/nxcdata_automount.sh

И записываем в него следующее содержимое:

#!/bin/sh
# nxcdata_automount.sh 1.0

### BEGIN INIT INFO
# Provides: myscript
# Required-Start:
# Required-Stop:
# Default-Start: 1 2 3 4 5
# Default-Stop: 0 6
# Short-Description: nxcdata_automount.sh 1.0
# Description: nxcdata_automount.sh 1.0
### END INIT INFO

. /lib/lsb/init-functions

# Start actions
perform_start()
{
  log_daemon_msg «Start nxcdata_automount»
  sleep 30
  mount -t vmhgfs -o uid=www-data,gid=www-data,fmask=007,dmask=007 .host:/vmw-nxcdata /mnt/vmw-nxcdata
  #mount -t ntfs-3g -o uid=www-data,gid=www-data,fmask=007,dmask=007 /dev/sdb1 /mnt/sdb1
  #mount -t ext4 /dev/sdb1 /mnt/sdb1
  sleep 5
  service fail2ban restart
  log_end_msg 0
  return 0
}

# Stop actions
perform_stop()
{
  log_daemon_msg «Stop nxcdata_automount»
  umount /mnt/nxcdata
  log_end_msg 0
  return 0
}

case $1 in
  start)
    perform_start
    ;;

  stop)
    perform_stop
    ;;

  *)
    echo “Usage: /etc/init.d/myscript {start|stop}”
    exit 3
    ;;
esac

Обратите внимание на пару закомментированных команд в секции perform_start – это наш задел на будущее. Так же, после выполнения монтирования перезапускается сервис fail2ban.

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

После такого отвлечения продолжаем настройку далее. Создаём символьную ссылку:
# ln -s /mnt/vmw-nxcdata /mnt/nxcdata/nxcdata

Делаем наш скрипт исполняемым:
# chmod +x /etc/init.d/nxcdata_automount.sh

Добавляем скрипт в автозагрузку:
# update-rc.d nxcdata_automount.sh defaults

Перезагружаем систему и убеждаемся, что автомонтирование прошло успешно и по нужным путям всё доступно.

Для удаления скрипта нужно будет выполнить пару команд:
# update-rc.d -f nxcdata_automount.sh remove
# rm -f /etc/init.d/nxcdata_automount.sh

В случае монтирования диска не через VMWare Shared Folders, а напрямую следует выполнить действия аналогичные как и при монтировании через VMWare Shared Folders, но с учётом того, что в системе появляется полноценный второй диск. Как узнать букву диска?

Большинство блочных устройств Linux подключаются через интерфейс SCSI, поэтому в большинстве случаев диски будут начинаться с букв sd. Третья буква в имени диска означает его порядковый номер в системе и обозначается по алфавиту: sda — первый диск, sdb — второй диск, sdc — третий и так далее. Дальше следует цифра, которая определяет номер раздела на диске: sda1, sda2 и так далее. Самый простой способ увидеть все подключенные диски — посмотреть содержимое каталога /dev/ и отфильтровать устройства sd:

$ ls -l /dev/ | grep sd

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

Создадим директорию и смонтируем в неё диск:
# mkdir /mnt/sdb1
# mount -t ext4 /dev/sdb1 /mnt/sdb1

Создадим директорию для данных, выставим ей права и пользователя:
# mkdir /mnt/sdb1/nxcdata & chmod 770 /mnt/sdb1/nxcdata & chown -R www-data:www-data /mnt/sdb1/nxcdata

Далее необходимо так же создать скрипт для автомонтирования и откорректировать команду монтирования в скрипте (примеры подключения диска с NTFS и EXT4 в скрипте уже есть и закомментированы) и добавить скрипт в автозагрузку.

B cоздаём символьную ссылку на директорию с данными:
# ln -s /mnt/sdb1/nxcdata /mnt/nxcdata/nxcdata

По сути, вся эта морока с кучей директорий nxcdata призвана для одного: обеспечить простой перенос директории с данными в будущем — не нужно будет править конфигурацию в движке Nextcloud и вообще лезть в него — всё, что нужно будет сделать — подключить новый диск, перекопировать на него данные и пересоздать символьную ссылку, ведущую к новой директории с данными. При этом, все действия не выходят за каталог /mnt. Так всё усложнённо получилось эволюционно, просто я не захотел терять наработанные решения.

Как лучше выносить данные вне виртуальной машины? Поделюсь опытом на каком варианте я остановился и почему.

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

Проброс директории через VMWare Shared Folders работал стабильно и отлично. Такое решение полностью удовлетворило задачу синхронизации двух смартфонов. Всё отработало несколько дней, были прокачаны десятки гигабайт данных. Однако, когда я решил добавить в облако данные с компьютера, то внезапно обнаружилась проблема, связанная с длинными путями и именами файлов. В теории ограничение на длину имени файла или папки в NTFS составляет 255 символов, но на практике Windows API ограничивает до 244 символов. В теории ограничение на длину пути к файлу или папке в NTFS составляет 32767 символов, но на практике Windows API ограничивает до 245 символов. Учитывая то, что я большой любитель структурировать информацию, длина пути у меня может быть очень большой. Несокращённое название книг так же может легко составлять 100-150 символов с учётом пробелов. Данное ограничение – известная проблема VMWare Shared Folders, которая не вылечилась даже при использовании Windows 10 с всякими хитроумными ключами в реестре для снятия ограничения в 255 символов. Возможна причина в ограничениях vmhgfs. От этого удобного способа подключения пришлось отказаться. Причина установлена точно – проблема в виртуальной файловой системе, которая используется в механизме VMWare Shared Folders.

Следующее решение – подключение жесткого диска напрямую к виртуальной машине. Тут тоже не выходило всё гладко. Структура данных (или файловая система, причём это проявлялось и для NTFS и для EXT2/3/4) постоянно ломались то ли при «захвате» диска или его раздела софтом виртуальной машины, то ли при возврате его в хостовую систему даже если я переводил весь диск в режим offline на хостовой системе. При некоторых режимах я не то, чтобы записывать или читать данные — я даже не мог нормально отформатировать проброшенный жесткий диск или раздел. Однако работоспособный режим удалось найти: к виртуальной машине подключался физический жесткий диск с одним разделом, отформатированный в NTFS, в определённом режиме подключения: SATA/Independent/Persistent/Use individual partition. На жестком диске в должна находиться папка nxcdata, содержащая данные.


Настройка доступа к виртуальной машине Nextcloud из локальной сети

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

На картинке видно, что маршрутизатор подключен к интернету напрямую и сконфигурирован так, что автоматически раздаёт IP адреса подключенным устройствам в диапазоне 192.168.0.2-192.168.0.254. Адрес 192.168.0.2 получил наш компьютер, а 192.168.0.3 – второй компьютер, на котором мы делаем сервер. Однако на втором компьютере установлен софт виртуализации, который создал свой виртуальный маршрутизатор и сконфигурировал его DHCP на подсеть 192.168.233.0/24. Наш виртуальный сервер получил IP 192.168.133.138.

Я без проблем могу открыть сайт внутри виртуальной машины 192.168.233.138. Я без проблем могу открыть сайт с машины 192.168.0.3 просто введя нужный IP адрес в браузере – софт виртуализации уже позаботился о правильном конфигурировании сетевого окружения на хостовой машине. Но как мне добраться до сайта с компьютера 192.168.0.2? Если я введу IP адрес 192.168.233.138, то мне ничего не откроется, так как ни мой компьютер, ни реальный маршрутизатор ничего не знают об этой подсети. Если я введу адрес 192.168.0.3, то мне так же ничего не откроется, так как на этом компьютере реально нет никакого сайта – он внутри его виртуальной машины.

Для решения этого вопроса нужно настроить виртуальный маршрутизатор компьютера 192.168.0.3. Мы уже знаем, что обращение к сайтам идёт по портам 80 и 443. При обращении на эти порты к машине 192.168.0.3 нужно построить маршрутизацию так, чтобы запросы переправлялись на виртуальную машину 192.168.233.138. К счастью для этого у нас есть доступные инструменты. В VMWare Workstation есть инструмент Virtual Network Editor, который можно открыть из меню виртуальной машины (Edit -> Virtual Network Editor).

Этот инструмент позволяет довольно гибко управлять сетевыми параметрами. Нам нужно выделить виртуальную сетевую карту VMNet8 и щелкнуть по ставшей доступной кнопке «NAT Settings…». В открывшемся окне нужно добавить правила для создания нужной нам маршрутизации.

Указываем порт хостовой системы и затем прописываем IP адрес и порт виртуальной машины, куда следует перенаправлять запросы. Для проброса HTTPS траффика необходимо указать порт 443 хостовой системы и порт 443 и адрес 192.168.233.138 виртуальной машины. После создания правил нажимаем «OK» во всех окнах – виртуальное сетевое окружение переконфигурируется автоматически.

После этих изменений наши сайты начнут открываться и с машины 192.168.0.2 при обращении к адресу 192.168.0.3.

Подобные настройки для проброса портов есть не только у VMWare, но и у VirtualBox (Настройки → Сеть → выбрать требуемый адаптер → Дополнительно → Проброс портов). Однако в процессе экспериментов по подключению жесткого диска к этому этапу у меня оказался установленным бесплатный VMWare Player, в котором Virtual Network Editor не было. В интернете про проброс портов для VMWare Player я ничего не нашёл и пришлось воспользоваться пробной версией VMWare Workstation – при установке продукта даётся 30 дней его бесплатного использования. Через 30 дней продукт можно удалить, почистить реестр и установить заново, но такое внимание к серверу как-то избыточно и явно нежелательно. И тогда я пошёл на небольшую (или большую) хитрость. В наборе файлов VMWare Workstation присутствует утилита vmnetcfg, которая по сути и запускается через пункт Virtual Network Editor. Однако в наборе файлов VMWare Player её не было. Но при установке VMWare Player как-то же конфигурирует своё сетевое окружение? Я просто взял эту утилиту и скопировал в папку с VMWare Player, после чего запустил. Удивительно, но всё получилось. Возможно, тонкие сетевые настройки в среде VMWare Player работать не будут, но проброс портов обеспечивается, а большего мне и не нужно.

Для доступа к нашему серверу из интернета нужно аналогично пробросить порты на маршрутизаторе, который подключен к интернету. В прошивках подавляющего большинства маршрутизаторов есть секция Port Forwarding, в которой и можно настроить маршрутизацию, указав внешний порт и порт и IP адрес внутренней машины. Однако есть небольшой нюанс. Если провайдер нам выдал реальный IP адрес или мы его купили у него, то тогда проблем не будет – с компьютера из любой точки планеты вводим этот IP адрес, реальный маршрутизатор перенаправит траффик на компьютер с виртуальной машиной, на котором виртуальный маршрутизатор перенаправит траффик непосредственно в виртуальную машину. А вот что делать тому, у кого нет возможности получить реальный IP адрес и он получает динамические адреса или оказывается за NAT провайдера, получая «серые» IP адреса? Мне такую задачу решать не пришлось, так как у меня есть статичный «белый» IP. Тому, кому придётся решать такую задачу так или иначе придётся разбираться с этой проблемой. Я бы советовал посмотреть в сторону dyndns или freedns.afraid.org в случае динамических адресов, либо купить дешевый VDS попробовать придумать какую-то маршрутизацию самому, так как в любом случае без внешнего сервера с статичным IP адресом подобную проблему не решить.

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


Настройка Nextcloud

Теперь пришла пора открыть в браузере https:// 127.0.0.1/nextcloud внутри виртуальной машины, https:// 192.168.233.138/nextcloud с хостовой системы или, исходя из вышеописанной настроенной маршрутизации, https:// 192.168.0.3/nextcloud с любого компьютера в локальной сети.

Далее задаём логин/пароль для администратора, доступ к ранее созданной БД, а в качестве места хранения указываем полный путь к директории nxcdata: /mnt/nxcdata/nxcdata. Данный этап настройки ничем не отличается от установки какого-нибудь сайта.

В настройках админки я сделал следующие нехитрые изменения:

— Personal → выбрал русский язык и указал e-mail для администратора user@localhost
— Администрирование → Общий доступ → отключил все пункты
— Администрирование → Usage survey → отключил все пункты
— Администрирование → Дополнительные настройки → Управление файлами: «Максимальный размер загружаемого файла» установил в 25 GB
— Пользователи → создал группу users и добавил в неё нового пользователя user

После настройки нужно включить кеширование.

Открываем файл:
# nano /var/www/nextcloud/config/config.php

И в самый конец, перед «);» добавляем нижеследующее:

'memcache.local' => '\OC\Memcache\Memcached',
'memcache.distributed' => '\OC\Memcache\Memcached',
'memcached_servers' => array(
array('localhost', 11211),
),

Теперь нужно разрешить внешний доступ к сайту на уровне его «движка».

Открываем файл:
# nano /var/www/nextcloud/config/config.php

В секцию trusted_domains нужно в массив IP адрес сервера, добавить адрес, на котором установлен Nexcloud. Секция trusted_domains в нашем случае будет выглядеть следующим образом:

'trusted_domains' =>
array (
0 => '127.0.0.1',
1 => '192.168.233.138',
),

Теперь можно проверить работоспособность сервиса – открываем сайт и авторизуемся под пользователем user. Если авторизация прошла успешно, то значит сервис готов к бою – можно ставить приложение для синхронизации на компьютеры и смартфоны, для доступа ввести IP адрес 192.168.0.3 и реквизиты доступа аккаунта, созданные под каждое устройство.
К счастью или к сожалению, мне не пришлось пользовался всем потенциалом созданного сервиса, так как изначально мне нужна была система резервного копирования с верификацией и стартово я вообще хотел обойтись только subversion, но скорость коммитов особенно большого количества мелких файлов меня сильно опечалила. Я сделал всё на вырост, но попользоваться этим так и не собрался, а потом стало как-то совсем не до облака.

Более детальный обзор по использованию сервиса сделал пользователь wtigga в конце 2017 года в своей статье «Чем загрузить VPS: своё «облако» Nextcloud». В статье, с точки зрения пользователя, даётся обзор более нового сервера Nextcloud, 12-ой версии.


Дополнительная «тонкая» настройка Nextcloud

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

Я бы не сказал, что нижеизложенные решения правильны и красивы, но эти костыли работают по крайней мере для версии 11.0.2, иначе сервисом пользоваться было бы невозможно. В версии 12.х возможно что-то было улучшено и исправлено, поэтому я бы не рекомендовал эти настройки прописывать сразу в рамках стартовой настройки, в то время как для линейки 11.x их можно применять сразу.

Проблема 1

При синхронизации возникает ошибка типа «file is locked». Синхронизация останавливается. Проблема известна — необходимо очистить содержимое таблицы oc_file_locks выполнив из консоли mysql (при авторизации пользователя nextcloud) к ней следующий запрос:
mysql > DELETE FROM oc_file_locks WHERE 1

Так как такие ошибки нередки, то я не придумал ничего лучше, как создать скрипт и положить его прямо в папку суперпользователя:
# nano /root/empty_oc_file_locks

Содержимое скрипта:

#!/bin/bash
mysql -unextcloud > -pnc123 -D nextcloud  <<MY_QUERY
DELETE FROM oc_file_locks WHERE 1
MY_QUERY

Скрипт можно выполнять вручную, но это же не наш метод. Я решил запускать его автоматически каждые 15 минут используя cron (https://ru.wikipedia.org/wiki/Cron ).
Для этого нужно создать файл:
# nano /root/crontab

Со следующим содержимым:

*/15 * * * * root bash /root/empty_oc_file_locks

Теперь нужно внести изменения в планировщик:
# crontab /root/crontab

Проверить наличие изменений можно так:
# crontab -l

Проблема 2

При синхронизации по webDAV в логах (смотреть в панели администрирования, авторизовавшись администратором) могут появляться следующие ошибки:

Error PHP reset() expects parameter 1 to be array, null given at /var/www/nextcloud/apps/files_versions/lib/Storage.php#783
Error PHP ksort() expects parameter 1 to be array, null given at /var/www/nextcloud/apps/files_versions/lib/Storage.php#782
Error PHP Invalid argument supplied for foreach() at /var/www/nextcloud/apps/files_versions/lib/Storage.php#759
Error PHP Undefined index: by_file at /var/www/nextcloud/apps/files_versions/lib/Storage.php#759
Error PHP Undefined index: all at /var/www/nextcloud/apps/files_versions/lib/Storage.php#757

На этот раз сообщество ничем не помогло и пришлось вести следствие в одиночку. Причина крылась в ошибке «Undefined index… Storage.php#757», которая каскадно тянет ещё несколько ошибок. Смотрим на код этого файла. Вся проблема оказалась в квоте. На этой строчке в коде (Storage.php#757) вычисляется свободное место с учётом объёма архивных файлов. Что-то идёт не так при вычислении, хотя квота задана «неограничено». Для исправления ошибки в панели администрирования я задал «бесконечную, но числовую» квоту для каждого пользователя, например, 100TB.

Проблема 3

Проблема с синхронизацией файлов .htaccess – они просто не синхронизируются! Причём я был не одинок, на некоторых форумах задавали подобные вопросы. Однако готового решения я не встретил. Пришлось опять думать самому. В результате гугления, просмотра логов, анализа кода не придумал ничего лучше, как подправить файл движка nextcloud.
В файле /var/www/nextcloud/lib/private/Files/filesystem.php ищем следующую строку:

$blacklist = \OC::$server->getConfig()->getSystemValue('blacklisted_files', array('.htaccess'));

И приводим её к следующему виду:

$blacklist = \OC::$server->getConfig()->getSystemValue('blacklisted_files', array(''));


Защита для Nextcloud

Защитить наш сервис от подбора паролей к админке можно с помощью fail2ban. Для этого нужно описать характерное выражение, встречающееся в логах nextcloud при неудачной авторизации, по которому будет срабатывать соответствующий триггер.

Создаём файл:
# nano /etc/fail2ban/filter.d/nextcloud.conf

С нижеприведённым содержимым:

[Definition]
failregex={«reqId»:».*»,«remoteAddr»:».*»,«app»:«core»,«message»:«Login failed: ‘.*’ \(Remote IP: »\)»,«level»:2,«time»:».*»}
ignoreregex =

Открываем файл:
# nano /etc/fail2ban/jail.local

И в конец файла добавляем нижеприведённое:

# выявляем неудачные попытки ввода пароля к nextcloud
[nextcloud]
enabled = true
port = http,https
protocol = tcp
filter = nextcloud
logpath = /var/log/nextcloud.log

Перезагружаем сервис:
# service fail2ban restart

Проверяем наличие активного фильтра:
# fail2ban-client status nextcloud

Не забываем, что в соответствии с настройками fail2ban из предыдущей части при неудачном вводе пароля шесть раз подряд в течение 12 часов ваш IP заблокируется ни много ни мало на 30 дней. Я как-то потратил два вечера из-за ошибочного ввода пароля на одном из телефонов, пока не выяснил этот простой факт в логах системы.


Синхронизация с облаком смартфонов

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

Для начала необходимо создать новую учётную запись, в которой в качестве адреса сервера указать https:// 192.168.0.3/nextcloud, ввести логин и пароль от предварительно созданной учётной записи и разрешить самоподписной сертификат. Нажимаем кнопку «Тест» и убеждаемся, что соединение с сервером в порядке.

Далее нужно создать задание. В задании указываем ранее созданную учётную запись и выбираем тип синхронизации – «На удалённую папку». Указываем удалённую папку (создать её можно прямо из приложения» и выбираем локальную папку для синхронизации. Расписание я установил в 2 часа ночи каждый день. В настройках синхронизации у меня было включено «Синхронизация подпапок» и «Синхронизация включенных папок», так же я выбрал опцию всегда заменять старые файлы и в случае конфликтов разрешил по умолчанию использовать локальный файл. В разделе «Соединения» я отключил все соединения кроме Wi-Fi, причём прописал SSID своей домашней Wi-Fi сети в раздел «Разрешённые WiFi SSID’ы» — приложение будет выполнять синхронизацию только в моей домашней сети и не пытаться искать сервер в других сетях. Остальные настройки я оставил по умолчанию. Здесь же можно добавить фильтрацию. Я создал новый фильтр «Имя папки содержит» и указал значение [nosync]. Таким образом, я могу исключить из синхронизации некоторые папки в указанной локальной папке, просто добавляя в конец их названия «[nosync]».

Данная настройка была произведена для таких локальных папок как DCIM, Download, Telegram, viber, WhatsApp. Плюс пара моих пользовательских папок объёмом по нескольку гигабайт. Раз в сутки происходит синхронизация содержимого этих папок с сервером, причём старые версии файлов на сервере не удаляются, а переименовываются и перемещаются в архив. Это позволяло мне быстро восстановить случайно удалённый файл или откатить изменения в каких-то других файлах.


Синхронизация с облаком персонального компьютера

Я не считаю себя настоящим программистом. Последние десять лет я программирую на таких языках программирования, которые применяются разве что при разработке процессоров или чипсетов. Ввиду того, что я уже как лет 15 ничего не делал на Си/Си++, но что-то автоматизировать на компьютере мне требовалось, я довольно активно применял скриптовые языки типа BAT/CMD или такой софт как Sign 0f Mistery или xStarter. Когда-то я узнал и попробовал что такое AutoIt и это стало новой эрой в моей автоматизации на ПК.

После того как я убедился в стабильности и надёжности системы синхронизации на смартфонах я подумал, что неплохо было бы синхронизировать данные на своём домашнем компьютере. У Nextcloud есть свой клиент для Windows и, естественно, он стал первым кандидатом для испытаний. Синхронизировать я собирался объём данных порядка терабайта, состоявший из сотен тысяч файлов разного размера. Данные были различны: музыка, картинки, документы, электронные книги, дистрибутивы, резервные копии сайтов и прочее и подобное. Всё это разумно было бы свести к синхронизации более критических данных, например, таких как документы, но мной овладел азарт и хотелось проверить сделанный сервис на прочность.

Спустя десяток часов после начала синхронизации, а по сути первой закачки контента на сервер, клиент запнулся о файл с длинным именем. В то время на сервере я еще использовал подключение внешнего хранилища через VMWare Shared Folders и мне пришлось перепробовать с десяток клиентов, а потом ставить простые эксперименты по ручному копированию файлов на сервер, чтобы понять, что проблема – на стороне сервера. Так, спустя неделю удачного запуска сервиса, пришлось откатываться на резервную виртуальную машину и отказаться от механизма VMWare Shared Folders, начиная всё сначала. В конце концов, я убрал это узкое место на стороне сервера, протестировал надёжность решения неделей синхронизации смартфонов и решил вновь вернуться к домашнему компьютеру. На этот раз клиент не споткнулся о злополучный файл и я уже было возрадовался, однако спустя полсуток синхронизации мелких файлов клиент опять подвис. Теперь выяснилось, что слишком длинный путь именно на стороне домашнего компьютера и клиент Nextcloud не может его корректно обработать. К сожалению, с родным клиентом Nextcloud работы не получилось, да и информативность его была не совсем высока, поэтому от него пришлось отказаться.

Какое-то время я потратил на то, чтобы найти удобную программу для синхронизации, поддерживающее управление через командную строку. Мне хотелось на каждую крупную папку на компьютере сделать своё задание и запускать их в пакетном режиме. Ранее у меня уже был сделан и отработан набор BAT файлов для синхронизации, используя сценарии и управление FreeFileSync через командную строку. Проблема длинных путей или имён файлов решалась заданием локальных папок вида «\\?\D:\Info», т.е. по сути обращением к локальной папке как к сетевой. Однако, что такое webdav FreeFileSync не знает. Полных аналогов FolderSync для Windows, к сожалению, не нашлось, но не раз на форумах вместо неё рекомендовали GoodSync и, после кастинга десятка других программ, я решил попробовать его. К сожалению, GoodSync стоит на порядок дороже, но разовая трата 15$ ради сохранности своих драгоценных данных, в принципе, посильная трата. Программа имеет тестовый режим, поэтому сначала можно убедиться в её работоспособности и стабильности.

GoodSync оказался довольно дружелюбным софтом. Имеется специальная портабельная версия, которая называется GoodSync2Go. Вот она меня и заинтересовала. При установке нужно выбрать букву диска и программа устанавливается на него в папку GoodSync. Я создал папку Sync в корневом каталоге диска, допустим D, и переместил туда созданную папку GoodSync со всем содержимым.

[ Данный текст написан специально для сайта geektimes.ru автором AlexanderS.
Ссылка на источник необязательна, но его упоминание крайне желательно! ]

После установки в программе нужно создать задания: указывается локальная папка и удалённая папка для синхронизации. В параметрах задания я выбрал синхронизацию слева направо с выбором опций «Синхронное удаление» и «Сохранять предыдущие версии удалённых/заменённых файлов». В настройках левой стороны я выбрал «Безопасное копирование» и «Не создавать папку _gsdata_», правой стороны — «Безопасное копирование» и «Быстрый преданализ по временным меткам». Таким образом, создаются задания на каждую требуемую папку. Допустим так я настроил задание на папку Info и назвал его «bck_Info».
Далее в папке D:\Sync создаётся файл bck_Info.bat со следующим содержимым:

@set dir=%~dp0
@%dir%GoodSync\GoodSync2Go-v10.exe /miniwin /exit sync "%~n0"

Это скриптовый язык BAT. В первой строчке кода в переменную устанавливается текущий путь для запущенного скрипта. Вторая строчка запускает по этому пути из папки GoodSync файл GoodSync2Go-v10.exe, в котором должно выполнится задание с названием имени этого файла (bck_Info), окно выполнения задания минимизируется, по завершению задания программа должна автоматически закрыться. Я могу скопировать этот скрипт несколько раз, каждый раз меняя только его название на имя ранее созданного задания в GoodSync. Таким образом, просто щёлкая кнопкой Enter по BAT файлу я могу запускать синхронизацию нужных мне папок индивидуально.

Для добавления нового задания в FreeFileSync я мог просто скопировать xml файл сценария и вручную поправить его, т.е. запуска графической оболочки программы не требовалось вообще. В GoodSync же все задания прописываются в файле D:\Sync\GoodSync\GoodSync\Profile\jobs.tic и для добавления нового задания нужно будет отрыть программу и создать его, т.к. править этот файл несколько проблематично и неизвестно к чему это может привести.
Для синхронизации всех папок теперь можно написать простой скрипт bck_all.bat:

@set dir=%~dp0

call %dir%bck_Info.bat
call %dir%bck_Info2.bat
call %dir%bck_Info3.bat
call %dir%bck_Info4.bat

Каждая строчка скрипта просто вызывает выполнение отдельного скрипта, которое запускает синхронизацию.

Это всё очень хорошо и удобно работает, однако нет никакого контроля ошибок при синхронизации. Например, если сервер не включен, то все задания стремительно выполнятся, а я, вернувшись через час, буду думать, что синхронизация уже завершена. В то же время, логи всех заданий создаются по пути D:\Sync\GoodSync\GoodSync\Profile\*.log. Достаточно просто просмотреть лог каждой синхронизации на наличие слова «ОШИБКА» – почему-то именно так в логе сообщается о сбоях при синхронизации. Поэтому решено было написать небольшую программку для анализа этих логов после всех синхронизаций, которую запускать автоматически после выполнения синхронизаций всех папок. Программка получила гордое название log_analayser и написана на полускриптовом языке AutoIt. Если кого-то заинтересует, то скачать её полную версию можно на официальном сайте AutoIt, которая содержит нужные библиотеки, компилятор и SciTE – кроссплатформенный редактор для кода из которого можно и скомпилировать программу.

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

; LOG Analyser 1.0
; Программа предназначена для анализа текстовых лог-файлов

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_Field=ProductName|LOG Analyser
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_Field=OriginalFilename|log_analyser.exe
#AutoIt3Wrapper_Res_Comment=Программа предназначена для анализа текстовых лог-файлов
#AutoIt3Wrapper_Res_Description=Анализ лог-файлов
;****
#AutoIt3Wrapper_Res_Language=1049
#AutoIt3Wrapper_Res_ProductVersion=1.0
#AutoIt3Wrapper_Compile_Both=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

;AutoItSetOption ("WinTitleMatchMode", 2) ; сопоставление заголовка окна с произвольным фрагментом
;#NoTrayIcon ; скрыть иконку из трея во время выполнения программы

If WinExists('[CLASS:AutoIt v3;TITLE:' & @ScriptName & ']') Then
	MsgBox(48, @ScriptName, "Позволено запускать только одну копию программы!");
	;Раскоментируйте следующую строчку если нужно активировать окно вашей программы при повторном её запуске
    ;WinActivate('Имя вашей программы')
    Exit
EndIf

AutoItWinSetTitle(@ScriptName)

#include <Array.au3>
#include <_FileDirList.au3>




; настройки
Local $msg_title = "LOG Analyser 1.0"
Local $path = @ScriptDir
Local $soft_open_log = "notepad.exe"





Local $path, $dir_mode, $word, $file_analyse_name, $file_analyse_ext, $log_path, $log_msg_on
Local $file_log, $word_detect, $file_analyse, $cnt_files, $i



;проверка и загрузка параметров
if ($CmdLine[0] < 6) then
  MsgBox(0x10, $msg_title, "Отсутствуют или недостаточно параметров!" & @CRLF & @CRLF & "Работа программы прекращена")
  Exit
else
  if (StringCompare($CmdLine[1], "file") = 0) then
    $dir_mode = 0
  elseif (StringCompare($CmdLine[1], "dir") = 0) then
    $dir_mode = 1
  else
    MsgBox(0x10, $msg_title, "Первый параметр должен принимать значения 'file' или 'dir'!" & @CRLF & @CRLF & "Работа программы прекращена")
    Exit
  endif

  $word = $CmdLine[2]

  if ($dir_mode = 0) then
    $file_analyse_name = $CmdLine[3]
  else
    $dir_analyse = $CmdLine[3]
  endif

  $file_analyse_ext = $CmdLine[4]
  $log_path = $CmdLine[5]

  if (StringCompare($CmdLine[6], "err_msg_on") = 0) then
    $log_msg_on = 1
  elseif (StringCompare($CmdLine[6], "err_msg_off") = 0) then
    $log_msg_on = 0
  else
    MsgBox(0x10, $msg_title, "Шестой параметр должен принимать значения 'log_msg_on' или 'log_msg_off'!" & @CRLF & @CRLF & "Работа программы прекращена")
    Exit
  endif

endIf



; инициализация переменных
$file_log = $log_path & "\" & "log_analyser" & "-" & @YEAR & "-" & @MON & "-" & @MDAY & "-" & @HOUR & "-" & @MIN & "-" & @SEC & ".log"
$word_detect = 0


; основной код программы
if ($dir_mode = 0) then

  $file_analyse = $file_analyse_name & "." & $file_analyse_ext
  if (_file_analyser($file_analyse, $msg_title, $word, $file_log, $word_detect) = 1) then
    $word_detect = 1
  endif

else

  ; сканирование файлов для анализа
  $dir_arr = _FileDirList($dir_analyse, "*."&$file_analyse_ext, 1, 1, 0)
  ;_ArrayDisplay($dir_arr)

  ; проверка после сканирования - проверка на наличие файлов для анализа
  if ($dir_arr = 0) then
    MsgBox(0x10, $msg_title, "Неверный путь или не обнаружены файлы для анализа!" & @CRLF & @CRLF & "Работа программы прекращена")
    Exit
  endif

  $cnt_files = $dir_arr[0]

  ; перебор анализируемых файлов
  $i = 0
  While $i <> $cnt_files
    $i = $i + 1
    $file_analyse = $dir_arr[$i]
    if (_file_analyser($file_analyse, $msg_title, $word, $file_log, $word_detect) = 1) then
      $word_detect = 1
    endif
  WEnd

endif



; обработка результатов анализа
if ($word_detect = 1) and ($log_msg_on = 1) then
  if (MsgBox (0x41034, $msg_title, "Обнаружены ошибки!" & @CRLF & "Все строки с ошибками записаны в файл: " & $file_log  & @CRLF & @CRLF & "Открыть файл с ошибками?")) = 6 then
    ShellExecuteWait($soft_open_log, $file_log)
  endif
endif

Exit





; функция выполняет построчный поиск слова в файле и возвращает переменную информирующую о наличии слова хотя бы в одной строке
; все обнаруженные строки, содержащие указанное слово, пишутся в файл лога
Func _file_analyser($file_analyse, $msg_title, $word, $file_log, $word_detect)

  Local $file1, $file2, $file_line, $write_once

  $word_detect = 0
  $write_once = 0

  $file1 = FileOpen($file_analyse, 0)

  ; проверка наличия анализируемого файла
  If $file1 = -1 Then
    FileClose($file1)
    MsgBox(0x10, $msg_title, "Отсутствует файл для анализа!" & @CRLF & @CRLF & "Работа программы прекращена")
    Exit
  EndIf

  ; построчный поиск слова в анализируемом файле
  While 1
    $file_line = FileReadLine($file1)
    If @error = -1 Then ExitLoop

    if (StringInStr($file_line, $word) <> 0) then
      $word_detect = 1

      ; проверка наличия файла для лога и его создание в случае отсутствия
      if (FileExists($file_log) = 0) then
        $file2 = FileOpen($file_log, 1)
        FileClose($file2)
      endif

      ; однакоратная запись в файл имени анализируемого файла
      if ($write_once = 0) then
        $write_once = 1
        $file2 = FileOpen($file_log, 1)
        FileWriteLine($file2, "Анализ файла: " & $file_analyse)
        FileClose($file2)
      endif

      ; вывод в лог строки с ошибкой
      $file2 = FileOpen($file_log, 1)
      FileWriteLine($file2, $file_line)
      FileClose($file2)
    endif
  WEnd

  ; если были записи в файл, то отделяем их пустой строкой от следующего массива записей
  if ($word_detect = 1) then
    $file2 = FileOpen($file_log, 1)
    FileWriteLine($file2, @CRLF)
    FileClose($file2)
  endif

  FileClose($file1)

	Return $word_detect
EndFunc

После набора кода нажимаем кнопку F7 в редакторе SciTE и получаем на выходе файл log_analayser.exe.

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

Программа может работать в двух режимах:

— анализ конкретного файла
— анализ папки, содержащей файлы для анализа (анализируются так же все вложенные подпапки)

При консольном вызове необходимо задать шесть параметров для программы:

1 — режим работы [file = анализ файла; dir = анализ папки, содержащей файлы]
2 — ключевое слово для поиска
3 — имя файла или полного пути к папке
4 — расширения файла или файлов для анализа в папке
5 — полный путь к папке, где будет расположен лог программы
6 — отображение окна после анализа всех файлов в случае нахождения заданного слова [err_msg_on = отображать; err_msg_off = не отображать]

Таким образом, получился новый скрипт bck_auto.bat:

@echo Start Backup
@set dir=%~dp0
call %dir%bck_all.bat
log_analyser.exe dir ОШИБКА %dir%GoodSync\Profile log %dir%LOG err_msg_on
exit

Скрипт запускает файл, из которого индивидуально друг за другом вызываются задания на синхронизацию всех нужных папок, а затем вызывается анализатор логов синхронизаций, по завершении работы которого в случае ошибок показывается сообщение с предложением просмотреть строки логов, где обнаружены эти ошибки и можно понять с каким заданием случились проблемы. Эти строки пишутся в отдельный лог-файл в папке D:\Sync\LOG.
И тут меня постигла жуткая неудача. Анализатор логов не работал. Нет, он прекрасно работал на тестовых файлах, но упорно не хотел видеть ошибки в логах. Я долго не мог понять в чём причина, пока не выяснил одну жуткую вещь: мало того, что в англоязычном логе сбой выводится единственным русскоязычным словом «ОШИБКА», так ещё и кодировка этой кириллицы – Macintosh! Зачем так сделали программисты из Siber Systems я не знаю, всего скорее это результат какого-то ужасного костыля внутри софта. Ну а кто сказал, что программирование должно быть скучным?

Ничего не оставалось как подпереть один костыль другим и в результате появилась работающая конструкция:

@echo Start Backup
@set dir=%~dp0
call %dir%bck_all.bat
log_analyser.exe dir Ћ˜€ЃЉЂ %dir%GoodSync\Profile log %dir%LOG err_msg_on
exit

Однако появилась следующая проблема: сам GoodSync не удаляет файлы логов, с каждым новым выполнением задания появлялись новые файлы. И если какая-то синхронизация завершилась с ошибкой, то наш анализатор всегда будет находить этот файл и бодро рапортовать об ошибке. Поэтому перед запуском синхронизаций решено было автоматически очищать папку D:\Sync от любых файлов с логами. Для этого создан элегантный скрипт clean_logs.bat:

@echo off

set dir=%~dp0

For /R %dir% %%i in (*.log) Do (
Del /q "%%i")

@echo on

Скрипт отключает вывод каких-либо сообщений, выясняет директорию запуска скрипта, сканирует все файлы (в том числе в подпапках) пока они не закончатся и удаляет все файлы с расширением log. По окончании работы вывод сообщений включается.
Скрипт bck_auto.bat преобразился:

@echo Start Backup
@set dir=%~dp0
@call clean_logs.bat
call %dir%bck_all.bat
log_analyser.exe dir Ћ˜€ЃЉЂ %dir%GoodSync\Profile log %dir%LOG err_msg_on
exit

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

Доработаем наш скрипт bck_auto.bat:

@echo Start Backup & PCOFF
@set dir=%~dp0
start MonitorOnOff.exe 0
@call clean_logs.bat
call %dir%bck_all.bat
log_analyser.exe dir Ћ˜€ЃЉЂ %dir%GoodSync\Profile log %dir%LOG err_msg_off
shutdown /s /t 0
exit

В скрипте появилось две новых строчки. Приложение MonitorOnOff просто отключает монитор (чтобы он не освещал комнату, а вручную мне его отключать каждый вечер и включать каждое утро очень лень), а команда shutdown выключает компьютер. В log_analyser изменился параметр, отвечающий за показ сообщений при нахождении ошибки – ведь после синхронизации не нужно тормозить выполнение скрипта этим сообщением, а дать возможность ему выключить компьютер.

Программа MonitorOnOff так же написана на AutoIt.

; Monitor On Off 1.0
; Программа для включения/отключения монитора

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_Field=ProductName|Monitor On Off
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_Field=OriginalFilename|MonitorOnOff.exe
#AutoIt3Wrapper_Res_Comment=Программа для включения/отключения монитора
#AutoIt3Wrapper_Res_Description=Программа для включения/отключения монитора
;****
#AutoIt3Wrapper_Res_Language=1049
#AutoIt3Wrapper_Res_ProductVersion=1.0
#AutoIt3Wrapper_Compile_Both=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****


;AutoItSetOption ("WinTitleMatchMode", 2) ; сопоставление заголовка окна с произвольным фрагментом
;#NoTrayIcon ; скрыть иконку из трея во время выполнения программы

If WinExists('[CLASS:AutoIt v3;TITLE:' & @ScriptName & ']') Then
  MsgBox(48, @ScriptName, "Позволено запускать только одну копию программы!");
  ;Раскоментируйте следующую строчку если нужно активировать окно вашей программы при повторном её запуске
  ;WinActivate('Имя вашей программы')
  Exit
EndIf

AutoItWinSetTitle(@ScriptName)





HotKeySet("{F10}", "_Monitor_ON")
HotKeySet("{F11}", "_Monitor_OFF")
HotKeySet("{Esc}", "_Quit")





Global Const $lciWM_SYSCommand = 274
Global Const $lciSC_MonitorPower = 61808
Global Const $lciPower_Off = 2
Global Const $lciPower_On = -1

Global $MonitorIsOff = False



if ($CmdLine[0] <> 0) then
  _Monitor_OFF()
endif



While 1
  Sleep(10)
WEnd



Func _Monitor_ON()
  $MonitorIsOff = False
  Local $Progman_hwnd = WinGetHandle('[CLASS:Progman]')

  DllCall('user32.dll', 'int', 'SendMessage', _
                                              'hwnd', $Progman_hwnd, _
                                              'int', $lciWM_SYSCommand, _
                                              'int', $lciSC_MonitorPower, _
                                              'int', $lciPower_On)
EndFunc



Func _Monitor_OFF()
  $MonitorIsOff = True
  Local $Progman_hwnd = WinGetHandle('[CLASS:Progman]')

  While $MonitorIsOff = True
    DllCall('user32.dll', 'int', 'SendMessage', _
                                                'hwnd', $Progman_hwnd, _
                                                'int', $lciWM_SYSCommand, _
                                                'int', $lciSC_MonitorPower, _
                                                'int', $lciPower_Off)
    _IdleWaitCommit(0)
    Sleep(20)
  WEnd
EndFunc



Func _IdleWaitCommit($idlesec)
  Local $iSave, $LastInputInfo = DllStructCreate ("uint;dword")
  DllStructSetData ($LastInputInfo, 1, DllStructGetSize ($LastInputInfo))
  DllCall ("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr ($LastInputInfo))

  Do
    $iSave = DllStructGetData ($LastInputInfo, 2)
    Sleep(60)
    DllCall ("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr ($LastInputInfo))
  Until (DllStructGetData ($LastInputInfo, 2)-$iSave) > $idlesec Or $MonitorIsOff = False

  Return DllStructGetData ($LastInputInfo, 2)-$iSave
EndFunc



Func _Quit()
  _Monitor_ON()
  Exit
EndFunc

Запущенная программа управляется тремя клавишами: F10 включает монитор, F11 – отключает, а кнопка ESC завершает работу программы и выгружает её из памяти. При задании любого параметра при запуске программы запущенная программа сразу отключит экран.

Теперь всё было хорошо – перед сном я просто запускал bck_all.bat, вместо «Выключить компьютер» и уходил спать. Монитор не освещал всю комнату, синхронизация производилась автоматически и автоматически анализировалась её успешность. Утром надо было только посмотреть содержимое папки D:\Sync\GoodSync\LOG\ на предмет хоть каких-то файлов. Но и это тоже не дело – зачем тратить время если всё хорошо? Нужно сделать анализатор лога анализатора логов и повесить его в автозагрузку системы, чтобы он срабатывал на следующий день при загрузке компьютера и тревожил моё внимание только при сбоях синхронизации. Так появилась программа check_file_exist.

; Check File Exist 1.0
; Программа предназначена для проверки наличия указанного файла

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_Field=ProductName|Check File Exist
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_Field=OriginalFilename|check_file_exist.exe
#AutoIt3Wrapper_Res_Comment=Программа предназначена для проверки наличия указанного файла
#AutoIt3Wrapper_Res_Description=Провека существования файла
;****
#AutoIt3Wrapper_Res_Language=1049
#AutoIt3Wrapper_Res_ProductVersion=1.0
#AutoIt3Wrapper_Compile_Both=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

;AutoItSetOption ("WinTitleMatchMode", 2) ; сопоставление заголовка окна с произвольным фрагментом
;#NoTrayIcon ; скрыть иконку из трея во время выполнения программы

If WinExists('[CLASS:AutoIt v3;TITLE:' & @ScriptName & ']') Then
	MsgBox(48, @ScriptName, "Позволено запускать только одну копию программы!");
	;Раскоментируйте следующую строчку если нужно активировать окно вашей программы при повторном её запуске
    ;WinActivate('Имя вашей программы')
    Exit
EndIf

AutoItWinSetTitle(@ScriptName)

#include <Array.au3>
#include <_FileDirList.au3>





; настройки
Local $msg_title = "Check File Exist 1.0"
Local $path = @ScriptDir
Local $soft_open_dir = "explorer.exe"





Local $path, $dir_analyse, $words, $msg_open



;проверка и загрузка параметров
if ($CmdLine[0] < 5) then
  MsgBox(0x10, $msg_title, "Отсутствуют или недостаточно параметров!" & @CRLF & @CRLF & "Работа программы прекращена")
  Exit
else
  $dir_analyse = $CmdLine[1]
  $file = $CmdLine[2]

  $words0 = $CmdLine[3]
  $words1 = $CmdLine[4]

  if (StringCompare($CmdLine[5], "msg_on") = 0) then
    $msg_open = 1
  elseif (StringCompare($CmdLine[5], "msg_off") = 0) then
    $msg_open = 0
  else
    MsgBox(0x10, $msg_title, "Пятый параметр должен принимать значения 'msg_on' или 'msg_off'!" & @CRLF & @CRLF & "Работа программы прекращена")
    Exit
  endif
endIf



; сканирование директории на наличие файлов
$dir_arr = _FileDirList($dir_analyse, "*"&$file&"*", 1, 0, 0)
;_ArrayDisplay($dir_arr)

; проверка наличия файла и действия
if ($dir_arr = 0) then
  if (StringCompare($words0, "0") <> 0) then
    if ($msg_open = 0) then
      MsgBox(0x41030, $msg_title, $words0)
    else
      if (MsgBox(0x41034, $msg_title, $words0 & @CRLF & @CRLF & "Открыть папку с не обнаруженными файлами?")) = 6 then
        ShellExecuteWait($soft_open_dir, $dir_analyse)
      endif
    endif
  endif
else
  if (StringCompare($words1, "0") <> 0) then
    if ($msg_open = 0) then
      MsgBox(0x41030, $msg_title, $words1)
    else
      if (MsgBox(0x41034, $msg_title, $words1 & @CRLF & @CRLF & "Открыть папку с обнаруженными файлами?")) = 6 then
        ShellExecuteWait($soft_open_dir, $dir_analyse)
      endif
    endif
  endif
endif





Exit

По сути эта программа – немного урезанный функционал log_analyser. Программа анализирует указанную папку (без учёта подпапок) на наличие файлов и именами хотя бы частично совпадающими с указанным словом для поиска и выводит сообщение о результате проверки.

Параметры программы:

1 — полный путь к папке (без символа слеша — /)
2 — ключевое слово для поиска в именах файлов, либо полное название файла
3 — текстовая строка, выводимая при ненахождении файл, если =0 — не выводить сообщение
4 — текстовая строка, выводимая при нахождении файла, если =0 — не выводить сообщение
5 — вывод сообщения: msg_off — выводится только сообщение о наличии/отсутствии файлов, msg_on — в выведенном окне предлагается так же открыть папку, в которой обнаружены или необнаружены файлы

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

@set dir=%~dp0LOG
start check_file_exist.exe %dir% .log 0 "Во время последней синхронизации были проблемы!" msg_on
exit

Таким образом, в финале мы получили полностью автономное решение, которое не зависит от местонахождения папки Sync и корректно отработает из любого места нашего компьютера. Решение не только работоспособно, но и стабильно – на Windows 7 х64 данный комплект скриптов отработал год и абсолютно никаких проблем с ним не возникло.

Возможно сейчас всё это кажется несколько монстрообразным, однако ничего сложно в этом нет. Если внимательно присмотреться к коду AutoIt, то базовой конструкцией является обычные циклы if-then-else-end, однотипные для любого языка программирования, в которые встроены некоторые повторяющиеся операторы и функции AutoIt, которые изучаются буквально за пару вечеров. Скриптовый язык BAT можно даже не учить, так как большинство решений типовые и уже давно описаны в интернете. Уметь пользоваться программированием не только интересно, но может быть и весьма полезно.

Ода коду от Dark Dragon


Послесловие

Если честно, я предполагал, но сам не ожидал такого объёма статей, на которые пришлось потратить до полусотни часов. Как правило, в интернете установку своего облака сводят к изречениям типа: «Да, там надо-то выполнить несколько команд». Это правда – установка тривиальная. Когда ты знаешь какие команды вводить в консоль и что они значат. Когда ты понимаешь суть маршрутизации в сети. Когда у тебя уже есть работающий сервер и когда ты понимаешь, как в него добавить хост. Когда ты знаешь, как установить сайт. То есть, для применения этих нескольких команд нужно иметь определённый багаж знаний и опыта. Цель этих трёх статей – попытка создать такой багаж, собрав необходимую достаточную информацию в одном месте и пояснить как ей правильно пользоваться. Я искренне надеюсь, что этот цикл статей поможет кому-то сделать свои первые осознанные шаги в мир свободного программного обеспечения.


Вернуться в начало, к оглавлению.


История создания домашнего облака. Часть 3. Создание персонального облака — установка и настройка Nextcloud.
Версия текста: 1.2.2.
Дата первой публикации: 08.02.2018.
Дата последней правки: 29.12.2021.

Лог обновлений

1.2.2 [29-12-2021]
Правка ссылок оглавления.

1.2.1 [15-01-2020]
Обновление оглавления.

1.2.0 [08-02-2018]
Коррекция текста.

1.1.0 [08-02-2018]
Коррекция текста.

1.0.0 [08-02-2018]
Первая версия.
Описывается установка и настройка Nextcloud 11.0.2 в виртуальной машине VMWare, конфигурация сетевого окружения VMWare и освещаются некоторые моменты настройки, проявившиеся в процессе эксплуатации Nextcloud.


Информация для администрации ресурса (подозрение на баг)

Если в какой-то тег (например, code или blockquote) в вышеприведённом тексте обернуть следующую конструкцию:

[Definition]
failregex={«reqId»:».*»,«remoteAddr»:».*»,«app»:«core»,«message»:«Login failed: ‘.*’ \(Remote IP: »\)»,«level»:2,«time»:».*»}
ignoreregex =

То закрывающий тег фильтруется и оформление применяется до конца статьи! Подобный эффект проявляется именно в этом тексте, т.к. отдельно воспроизвести эффект мне не удалось. Парную корректность тегов (открыто/закрыто) проверил — вроде бы всё нормально. Методика повторения:
— создать черновик
— скопировать исходное форматирование этой статьи и разместить в черновике
— в тексте, в разделе «Защита для 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 окажется для вас полезным и удобным инструментом.

Добро пожаловать в подробное руководство по установке и настройке Nextcloud в НАЙС ОС. В этом документе мы рассмотрим процесс установки, настройки и управления Nextcloud, включая управление пользователями и группами, настройку синхронизации и совместной работы, а также интеграцию с внешними сервисами и обеспечение безопасности. Nextcloud — это мощная платформа для совместной работы и обмена файлами с открытым исходным кодом. Понимание его установки и конфигурации является важным навыком для системных администраторов и DevOps-инженеров.

Установка и конфигурация Nextcloud

Установка зависимостей

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

sudo tdnf install -y httpd mariadb-server php php-mysqlnd php-xml php-gd php-curl php-zip php-intl php-mbstring

Настройка базы данных

Запустите и настройте MariaDB:

sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation

Создайте базу данных и пользователя для Nextcloud:

sudo mysql -u root -p

CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
  

Скачивание и установка Nextcloud

Скачайте последнюю версию Nextcloud:

wget https://download.nextcloud.com/server/releases/nextcloud-20.0.4.zip

Распакуйте архив и переместите файлы в веб-каталог:

unzip nextcloud-20.0.4.zip
sudo mv nextcloud /var/www/html/

Настройте права доступа:

sudo chown -R apache:apache /var/www/html/nextcloud
sudo chmod -R 755 /var/www/html/nextcloud

Настройка Apache

Создайте файл конфигурации Apache для Nextcloud:


sudo nano /etc/httpd/conf.d/nextcloud.conf
  


    DocumentRoot "/var/www/html/nextcloud"
    ServerName your_domain_or_IP

    
        Options +FollowSymlinks
        AllowOverride All
        Require all granted

        
            Dav off
        

        SetEnv HOME /var/www/html/nextcloud
        SetEnv HTTP_HOME /var/www/html/nextcloud
    

    ErrorLog /var/log/httpd/nextcloud_error.log
    CustomLog /var/log/httpd/nextcloud_access.log combined

  

Перезапустите Apache для применения изменений:

sudo systemctl restart httpd

Запуск установки Nextcloud

Откройте браузер и перейдите по адресу http://your_domain_or_IP. Следуйте инструкциям на экране для завершения установки Nextcloud. Укажите базу данных, созданную на предыдущем шаге, и завершите настройку.

Управление пользователями и группами

Создание пользователей и групп

Войдите в Nextcloud под учетной записью администратора и выполните следующие шаги:

  1. Перейдите в раздел «Пользователи».
  2. Нажмите «Добавить пользователя» для создания нового пользователя.
  3. Укажите имя пользователя, пароль и группу (при необходимости создайте новую группу).
  4. Нажмите «Создать» для добавления пользователя.

Управление правами доступа

Nextcloud позволяет настраивать права доступа для пользователей и групп:

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

Настройка синхронизации и совместной работы

Настройка синхронизации файлов

Nextcloud предоставляет клиентские приложения для синхронизации файлов на различных устройствах. Скачайте и установите клиентское приложение для вашей операционной системы с install/#install-clients»>официального сайта Nextcloud.

Пример настройки клиента на Windows

  1. Скачайте и установите клиентское приложение Nextcloud.
  2. Запустите приложение и введите адрес вашего сервера Nextcloud.
  3. Введите учетные данные и выберите папки для синхронизации.
  4. Нажмите «Подключиться» для завершения настройки.

Совместная работа с документами

Nextcloud поддерживает интеграцию с Collabora Online и OnlyOffice для совместного редактирования документов. Рассмотрим пример настройки Collabora Online.

Установка и настройка Collabora Online

Установите Docker, если он еще не установлен:

sudo tdnf install -y docker
sudo systemctl start docker
sudo systemctl enable docker

Запустите контейнер Collabora Online:

sudo docker run -t -d -p 9980:9980 -e "domain=your_domain_or_IP" --restart always collabora/code

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

  1. Войдите в Nextcloud под учетной записью администратора.
  2. Перейдите в раздел «Приложения» и установите приложение «Collabora Online».
  3. Перейдите в раздел «Настройки» и выберите «Collabora Online».
  4. Укажите адрес сервера Collabora, например, http://your_domain_or_IP:9980.
  5. Сохраните изменения для завершения настройки.

Интеграция с внешними сервисами и безопасность

Интеграция с внешними сервисами

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

Интеграция с Google Drive

  1. Войдите в Nextcloud под учетной записью администратора.
  2. Перейдите в раздел «Приложения» и установите приложение «External storage support».
  3. Перейдите в раздел «Настройки» и выберите «Внешнее хранилище».
  4. Добавьте новое внешнее хранилище, выберите «Google Drive» и укажите учетные данные.
  5. Сохраните изменения для завершения настройки.

Обеспечение безопасности

Nextcloud предоставляет множество настроек для обеспечения безопасности данных. Рассмотрим основные меры по обеспечению безопасности.

Настройка HTTPS

Использование HTTPS обеспечивает защиту данных при передаче. Рассмотрим настройку HTTPS с использованием Certbot и Let’s Encrypt.

  1. Установите Certbot:
  2. sudo tdnf install -y certbot
  3. Получите SSL-сертификат для вашего домена:
  4. sudo certbot --apache -d your_domain_or_IP
  5. Перезапустите Apache для применения изменений:
  6. sudo systemctl restart httpd

Двухфакторная аутентификация

  1. Войдите в Nextcloud под учетной записью администратора.
  2. Перейдите в раздел «Приложения» и установите приложение «Two-Factor TOTP Provider».
  3. Перейдите в раздел «Настройки» и выберите «Безопасность».
  4. Включите двухфакторную аутентификацию и настройте ее для своих пользователей.

Регулярные резервные копии

Создание регулярных резервных копий данных Nextcloud помогает защитить их от потери. Рассмотрим пример создания резервной копии.


# Резервное копирование базы данных
mysqldump -u nextclouduser -p nextcloud > /path/to/backup/nextcloud.sql

# Резервное копирование данных
tar -czf /path/to/backup/nextcloud-data.tar.gz /var/www/html/nextcloud
  

Заключение

Мы рассмотрели основные аспекты установки, настройки и управления Nextcloud в НАЙС ОС. Nextcloud предоставляет мощные возможности для совместной работы и обмена файлами, а понимание его настройки и обеспечения безопасности является важным навыком для системных администраторов и DevOps-инженеров. Продолжайте изучать и применять эти знания на практике для создания стабильных и защищенных систем для совместной работы.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Симбикорт турбухалер инструкция по применению взрослым как пользоваться
  • Должностные инструкции работников сельских домов культуры
  • Как получить разрешение на оружие охотничье гладкоствольное пошаговая инструкция
  • Ушные капли максиколд от отита инструкция по применению взрослым
  • Фотон ауман инструкция по эксплуатации