Инструменты пользователя

Инструменты сайта


nextcloud:nextcloud

Nextcloud

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

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

Разработчик Фрэнк Карлитшек после ухода из ownCloud, Inc. создал форк под названием NextCloud и продолжает его развитие совместно с другими разработчиками ownCloud.

https://nextcloud.com/

Особенности

Если удалить файл из локального хранилища (папка другого пользователя), он будет перемещён в корзину пользователя который его удалил.

Установка

FIXME

Debian 8 (jessie)

Debian 8 (jessie)

Установка PHP 7.1 на Debian 8 (jessie) Установка необходимых пакетов

apt install\
    apache2 mariadb-server libapache2-mod-php7.2\
    php7.2-gd php7.2-json php7.2-mysql php7.2-curl php7.2-mbstring\
    php7.2-intl php-imagick php7.2-xml php7.2-zip

Установка необходимых пакетов:

apt install\
    apache2 mariadb-server libapache2-mod-php\
    php-gd php-json php-mysql php-curl php-mbstring\
    php-intl php-imagick php-xml php-zip

Настройка Apache:

a2enmod rewrite headers env dir mime
service apache2 restart

Загрузка

cd /opt
wget https://download.nextcloud.com/server/releases/nextcloud-16.0.3.zip

Распаковка дистрибутива

Распаковка дистрибутива в нужную папку:

unzip nextcloud-16.0.3.zip -d /opt

Настройка прав доступа к папкам и файлам

nextcloud_permissions.sh
#!/bin/bash
ncpath='/opt/nextcloud'
htuser='www-data'
htgroup='www-data'
rootuser='root'
 
printf "Creating possible missing Directories\n"
mkdir -p $ncpath/data
mkdir -p $ncpath/assets
mkdir -p $ncpath/updater
 
printf "chmod Files and Directories\n"
find ${ncpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ncpath}/ -type d -print0 | xargs -0 chmod 0750
 
printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ncpath}
chown -R ${htuser}:${htgroup} ${ncpath}/apps/
chown -R ${htuser}:${htgroup} ${ncpath}/assets/
chown -R ${htuser}:${htgroup} ${ncpath}/config/
chown -R ${htuser}:${htgroup} ${ncpath}/data/
chown -R ${htuser}:${htgroup} ${ncpath}/themes/
chown -R ${htuser}:${htgroup} ${ncpath}/updater/
 
chmod +x ${ncpath}/occ
 
printf "chmod/chown .htaccess\n"
if [ -f ${ncpath}/.htaccess ]
 then
  chmod 0644 ${ncpath}/.htaccess
  chown ${rootuser}:${htgroup} ${ncpath}/.htaccess
fi
if [ -f ${ncpath}/data/.htaccess ]
 then
  chmod 0644 ${ncpath}/data/.htaccess
  chown ${rootuser}:${htgroup} ${ncpath}/data/.htaccess
fi

Создание новой БД

  1. Создать файл:
    nextcloud-mysql_init.sql
    CREATE DATABASE nextcloud;
    GRANT ALL PRIVILEGES ON nextcloud.* TO nextcloud IDENTIFIED BY 'ПАРОЛЬ';
    FLUSH PRIVILEGES;
  2. Выполнить:
    mysql -uroot -p < nextcloud-mysql_init.sql

    Ввести пароль пользователя root

Настройка HTTP сервера

Настройка HTTP сервера Apache:

  1. Нужно создать файл:
    /etc/apache2/sites-available/nextcloud.conf
    Alias /nextcloud "/opt/nextcloud/"
     
    <Directory /opt/nextcloud/>
      Require all granted
      Options FollowSymlinks MultiViews
      AllowOverride All
     
     <IfModule mod_dav.c>
      Dav off
     </IfModule>
     
     SetEnv HOME /opt/nextcloud
     SetEnv HTTP_HOME /opt/nextcloud
     
    </Directory>
  2. Выполнить следующие действия:
    nextcloud_apache.sh
    #!/bin/bash
    # Разрешаем сайт
    a2ensite nextcloud
    # Перезапуск 
    service apache2 reload

Первый запуск

Настройка

Скелет

Набор файлов, папок которые копируются каждому новому пользователю при его первом входе находятся в папке: nextcloud/core/skeleton

Обновление информации о файлах

Обновление информации о файлах в БД.

nextCloud_files.sh
#!/bin/bash
 
sudo -u www-data /opt/nextcloud/occ files:scan --all

Проверка безопасности и параметров

Меню Настройки/Администрирование/Общие сведения

memcache

Не настроена система кеширования. Для увеличения производительности сервера, по возможности, настройте memcache. Более подробная информация доступна в документации.

  1. Установить:
    apt install memcached php-memcached php-memcache php-apcu
  2. Добавить в файл nextcloud/config/config.php
    'memcache.local' => '\OC\Memcache\APCu',
    'memcached_servers' => [ [ 'localhost', 11211 ], ],

Включение кэширования на ownCloud/NextCloud | Блог

Memory caching — Nextcloud latest Administration Manual latest documentation

Увеличение размера загружаемых файлов

В ответ на предупреждение:

Разрешённое PHP максимальное значение использования памяти ниже рекомендуемого значения в 512 МБайт,

Нужно:

  1. внести исправления:
    /etc/php/7.3/apache2/php.ini
    upload_max_filesize = 512M
    memory_limit = 512M
  2. выполнить:
    service apache2 reload

Strict-Transport-Security

В ответ на предупреждение:

Заголовок HTTP «Strict-Transport-Security» должен быть настроен как минимум на «15552000» секунд

Нужно:

  1. внести исправления в описание хоста:
    <VirtualHost *:443>
      ServerName cloud.nextcloud.ru
        <IfModule mod_headers.c>
          Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
        </IfModule>
     </VirtualHost>
  2. выполнить:
    service apache2 reload

Hardening and security guidance — Nextcloud latest Administration Manual latest documentation

Приложения

Отправка сообщений пользователям

Справка о параметрах:

sudo -u www-data /opt/nextcloud/occ notification:generate --help

Пример отправки сообщения пользователю test:

sudo -u www-data /opt/nextcloud/occ notification:generate \
  test "Тестовое сообщение" \
  -l "Это тестовое сообщение"

FIXME

Список пользователей:

sudo -u www-data /opt/nextcloud/occ user:list

https://github.com/nextcloud/notifications/blob/master/docs/admin-notifications.md

Отключение сброса пароля

Нужно добавить в файл nextcloud/config/config.php

  'lost_password_link' => 'disabled',

JS Loader

JavaScript loader app for Nextcloud

https://github.com/nextcloud/jsloader/

Чтобы скрыть «Контакты» нужно в настройке JS Loader вставить строку:

$('.icon-contacts.menutoggle').remove()

Hide contact icon when contacts app is disabled · Issue #5096 · nextcloud/server

Отключение Создайте свою бесплатную учётную запись

Отключение ссылки на https://nextcloud.com/signup/

Нужно добавить в файл nextcloud/config/config.php

'simpleSignUpLink.shown' => false,

Remove link "Get your own free account" - support - Nextcloud community

authz_core:error

Если в /var/log/apache2/error.log ошибка:

authz_core:error client denied by server configuration: nextcloud/data/.ocdata

Нужно добавить в файл nextcloud/data/.htaccess следующую конструкцию:

nextcloud/data/.htaccess
<FilesMatch ".ocdata">
       <IfModule mod_authz_core.c>
          Require all granted
       </IfModule>
</FilesMatch>

Client denied by server configuration:.ocdata - support - Nextcloud community

Ссылки

nextcloud/nextcloud.txt · Последние изменения: 2020-09-19 12:39 — GreyWolf