Содержание
Nextcloud
Запуск docker-compose
Настроить параметры ядра:
sysctl -w net.core.somaxconn = 65535 #Максимальное число открытых сокетов, ждущих соединения. sysctl -w vm.overcommit_memory = 1 #Cтратегия выделения памяти
Подготовить директории:
mkdir db nextcloud_data sudo chown www-data nextcloud_data
Создать compose файлы:
Запустить:
docker-compose up -d
Настроить:
#Проверить и показать статус docker exec --user www-data nextcloud_nextcloud_1 ./occ check docker exec --user www-data nextcloud_nextcloud_1 ./occ status #Добавить доверенный адрес для reverse peoxy: docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set trusted_proxies 0 --value=172.0.0.1 #Установить телефонный код поумолчанию docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set default_phone_region --value="RUS" #Настроить почту для уведомлений docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set mail_smtpmode --value=smtp docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set mail_smtpauthtype --value=LOGIN docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set mail_sendmailmode --value=smtp docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set mail_from_address --value=noreply_cloud docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set mail_domain --value=domain.com docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set mail_smtpauth --value=1 docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set mail_smtphost --value=smtp.sendgrid.net docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set mail_smtpport --value=587 docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set mail_smtpsecure --value=tls docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set mail_smtpname --value=apikey docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set mail_smtppassword --value='password' #Не создавать файлы по умолчанию в домашней директории и запретить её редактировать docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set skeletondirectory --value='' docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set files default_quota --value="0 B" #Политика паролей docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set password_policy enforceNumericCharacters --value=1 docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set password_policy enforceSpecialCharacters --value=1 docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set password_policy maximumLoginAttempts --value=5 docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set password_policy enforceNonCommonPassword --value=1 #Ссылка в логотипе docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set theming url --value=https://cloud.domain.com #Добавить внешнее хранилище, разрешить создавать ссылки docker exec --user www-data nextcloud_nextcloud_1 ./occ app:enable files_external docker exec --user www-data nextcloud_nextcloud_1 ./occ files_external:create ExtFiles local null::null --config datadir=/files docker exec --user www-data nextcloud_nextcloud_1 ./occ files_external:option 1 enable_sharing true #Добавить группу и пользователя в группу docker exec --user www-data nextcloud_nextcloud_1 ./occ group:add software docker exec --user www-data nextcloud_nextcloud_1 ./occ group:adduser software uploader #Включить групповую директорию docker exec --user www-data nextcloud_nextcloud_1 ./occ app:enable groupfolders docker exec --user www-data nextcloud_nextcloud_1 ./occ groupfolders:create Software #Определить ID для групповой директории SoftwareID=$(docker exec --user www-data nextcloud_nextcloud_1 ./occ groupfolders:list --output=json | jq '.[]|select(."mount_point"=="Software")|."id"') #Разрешить все операции группе software в групповой директории docker exec --user www-data nextcloud_nextcloud_1 ./occ groupfolders:group $SoftwareID software write share delete #Разрешить только чтение и создание ссылок группе google в групповой директории docker exec --user www-data nextcloud_nextcloud_1 ./occ groupfolders:group $SoftwareID google read share #Установить ограниченный срок действия ссылок через API в 30 дней docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set core shareapi_default_internal_expire_date --value=yes docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set core shareapi_enforce_internal_expire_date --value=yes docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set core shareapi_internal_expire_after_n_days --value=30 #Установить ограниченный срок действия ссылок пользователям в 30 дней docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set core shareapi_default_expire_date --value=yes docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set core shareapi_enforce_expire_date --value=yes docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set core shareapi_expire_after_n_days --value=30 #Очищать файлы в корзине старше 7 дней docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set trashbin_retention_obligation --value='auto,7' #Отключить профиль по умолчанию для новых пользователей docker exec --user www-data nextcloud-nextcloud-1 ./occ config:app:set settings profile_enabled_by_default --value=0 #Настроить аутентификацию OAuth 2.0 Google, скрыть аутентификациую по умолчанию docker exec --user www-data nextcloud_nextcloud_1 ./occ app:enable sociallogin docker exec --user www-data nextcloud_nextcloud_1 ./occ group:add google docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set sociallogin oauth_providers --value="{\"google\":{\"appid\":\"idsecr.apps.googleusercontent.com\",\"secret\":\"sERKrET\",\"defaultGroup\":\"google\",\"auth_params\":{\"hd\":\"domain.net, domain.com\"}},\"amazon\":{\"appid\":\"\",\"secret\":\"\",\"defaultGroup\":\"\"},\"facebook\":{\"appid\":\"\",\"secret\":\"\",\"defaultGroup\":\"\"},\"twitter\":{\"appid\":\"\",\"secret\":\"\",\"defaultGroup\":\"\"},\"GitHub\":{\"appid\":\"\",\"secret\":\"\",\"defaultGroup\":\"\"},\"discord\":{\"appid\":\"\",\"secret\":\"\",\"defaultGroup\":\"\"},\"QQ\":{\"appid\":\"\",\"secret\":\"\",\"defaultGroup\":\"\"},\"slack\":{\"appid\":\"\",\"secret\":\"\",\"defaultGroup\":\"\"},\"telegram\":{\"appid\":\"\",\"secret\":\"\",\"defaultGroup\":\"\"}}" docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set sociallogin hide_default_login --value=1 #Настроить антивирус docker exec --user www-data nextcloud_nextcloud_1 ./occ app:enable files_antivirus docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set files_antivirus av_host --value=clamav docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set files_antivirus av_mode --value=daemon docker exec --user www-data nextcloud_nextcloud_1 ./occ config:app:set files_antivirus av_port --value=3310 #Исправить пропущенные индексы docker exec --user www-data nextcloud_nextcloud_1 ./occ db:add-missing-indices
Добавить в crontab:
*/5 * * * * bash -c "docker ps -f name=cloud.nextcloud -q | wc -l | grep 1 &>/dev/null && docker exec -u www-data $(docker ps -f name=cloud.nextcloud -q) php -f /var/www/html/cron.php"
Nginx
https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html
Конфигурация reverse proxy:
Добавить в доверенные:
docker exec --user www-data nextcloud_nextcloud_1 ./occ config:system:set trusted_proxies 0 --value=172.0.0.1
Обновление
После обновления контейнера, запустить:
docker exec --user www-data nextcloud_nextcloud_1 ./occ maintenance:mode --on docker exec --user www-data nextcloud_nextcloud_1 ./occ upgrade docker exec --user www-data nextcloud_nextcloud_1 ./occ maintenance:mode --off
Команды
Показать значение memory_limit в php:
docker exec --user www-data nextcloud_nextcloud_1 php -i | grep memory_limit
Отключить пользователя:
docker exec --user www-data nextcloud_nextcloud_1 ./occ user:disable admin
Ошибки
Module php-imagick in this instance has no SVG support
Решение:
docker exec --user root nextcloud_nextcloud_1 apt update && apt install -y libmagickcore-6.q16-3-extra
https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/theming.html#theming-of-icons
https://help.nextcloud.com/t/how-to-enable-svg-for-php-imagick/108646/2
Ссылки
https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html
https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html
https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/antivirus_configuration.html
https://hub.docker.com/_/nextcloud/
