Nextcloud — набор клиент-серверных программ для создания и использования облачного хранилища. По функционалу похож на Dropbox, также Nextcloud можно установить на физический сервер.
В отличие от проприетарных сервисов, таких как Dropbox, открытая архитектура Nextcloud позволяет добавлять функциональность на сервер в виде приложений и позволяет пользователям полностью контролировать свои данные.
Разработчик Фрэнк Карлитшек после ухода из ownCloud, Inc. создал форк под названием NextCloud и продолжает его развитие совместно с другими разработчиками ownCloud.
Если удалить файл из локального хранилища
(папка другого пользователя), он будет перемещён в корзину
пользователя который его удалил.
Установка необходимых пакетов:
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
#!/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
CREATE DATABASE nextcloud; GRANT ALL PRIVILEGES ON nextcloud.* TO nextcloud IDENTIFIED BY 'ПАРОЛЬ'; FLUSH PRIVILEGES;
mysql -uroot -p < nextcloud-mysql_init.sql
Ввести пароль пользователя root
Настройка HTTP сервера Apache:
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>
#!/bin/bash # Разрешаем сайт a2ensite nextcloud # Перезапуск service apache2 reload
Набор файлов, папок которые копируются каждому новому пользователю при его первом входе находятся в папке: nextcloud/core/skeleton
Обновление информации о файлах в БД.
#!/bin/bash sudo -u www-data /opt/nextcloud/occ files:scan --all
Меню Настройки/Администрирование/Общие сведения
Не настроена система кеширования. Для увеличения производительности сервера, по возможности, настройте memcache. Более подробная информация доступна в документации.
apt install memcached php-memcached php-memcache php-apcu
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 МБайт,
Нужно:
upload_max_filesize = 512M memory_limit = 512M
service apache2 reload
В ответ на предупреждение:
Заголовок HTTP «Strict-Transport-Security» должен быть настроен как минимум на «15552000» секунд
Нужно:
<VirtualHost *:443> ServerName cloud.nextcloud.ru <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains" </IfModule> </VirtualHost>
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 "Это тестовое сообщение"
Список пользователей:
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',
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
Если в /var/log/apache2/error.log
ошибка:
authz_core:error client denied by server configuration: nextcloud/data/.ocdata
Нужно добавить в файл nextcloud/data/.htaccess
следующую конструкцию:
<FilesMatch ".ocdata"> <IfModule mod_authz_core.c> Require all granted </IfModule> </FilesMatch>
Client denied by server configuration:.ocdata - support - Nextcloud community