From 3b4acb7b491248d02250d5f68aca92c17a5235d2 Mon Sep 17 00:00:00 2001 From: thest1tch Date: Tue, 27 Jun 2023 12:51:10 +0500 Subject: [PATCH] fux --- docs/docker/nextcloud/during-scan.md | 30 +++++++++++++ docs/docker/nextcloud/index.md | 63 ++++++++++++++++++++++++++++ docs/docker/nextcloud/php-imagick.md | 16 +++++++ docs/network/mikrotik/wireguard.md | 8 ++-- docs/ubuntu/hpe/hpe-mcp.md | 8 ++-- mkdocs.yml | 4 ++ requirements.txt | 1 + 7 files changed, 122 insertions(+), 8 deletions(-) create mode 100644 docs/docker/nextcloud/during-scan.md create mode 100755 docs/docker/nextcloud/index.md create mode 100644 docs/docker/nextcloud/php-imagick.md diff --git a/docs/docker/nextcloud/during-scan.md b/docs/docker/nextcloud/during-scan.md new file mode 100644 index 0000000..bde6276 --- /dev/null +++ b/docs/docker/nextcloud/during-scan.md @@ -0,0 +1,30 @@ +# Exception during scan .. is locked + +Столкнулся с такой проблемой, в логах nextcloud стала всплывать ошибка + +`Error: opendir(/mnt/downloads/): Failed to open directory: Permission denied at /var/www/html/lib/private/Files/Storage/Local.php#153` + +Поиск решения проблемы, привело к запуску команды на сканирование файлов пользователей. Для Docker запускается командой: +```bash +docker exec -ti -u 33 nextcloud php -f /var/www/html/console.php files:scan --all +``` + +В ходе сканирования файлов пользователей, всплыла новая ошибка: + +`Exception while scanning: "files/0e3e13890e7b79a0edc572f53b262079" is locked #0 /volume1/web/nextcloud/lib/private/Files/Storage/Common.php(680)` + +Согласно [базе знаний Nextcloud](https://help.nextcloud.com/t/file-is-locked-how-to-unlock/1883), для её решения, нужно: + +=== "Вручную отключить состояние блокировки" + - Переведите Nextcloud в режим обслуживания: отредактируйте `config/config.php`и измените эту строку: + `'maintenance' => true,` + - Пустая таблица `oc_file_locks`: используйте такие инструменты, как phpmyadmin, или подключитесь напрямую к своей базе данных и запустите (префикс таблицы по умолчанию — `oc_`, этот префикс может быть другим или даже пустым): + `DELETE FROM oc_file_locks WHERE 1` + - Отключите режим обслуживания (отменить первый шаг). + - Убедитесь, что ваши cron-jobs работают правильно (страница администратора сообщает вам, когда cron запускался в последний раз): [Docs Nextcloud](https://docs.nextcloud.org/server/13/admin_manual/configuration_server/background_jobs_configuration.html) +=== "Постоянное решение" + - На вашем **собственном сервере** : используйте Redis для этой функции. Это быстрее, и до сих пор никаких проблем не было зарегистрировано. Вы можете следовать [инструкциям по кэшированию памяти в документах](https://docs.nextcloud.org/server/13/admin_manual/configuration_server/caching_configuration.html#id4) + - **Общий хостинг** (Те, кто не может установить Redis): вы можете отключить блокировку файлов, отредактировав файл конфигурации `config/config.php`: + `'filelocking.enabled' => false,` однако отключение не является хорошим решением. Вы можете столкнуться с проблемами, когда несколько процессов пытаются записать в файл (особенно онлайн-редакторы в веб-интерфейсе). В однопользовательских и одноклиентских средах это, вероятно, не такая уж проблема. + - У меня поднят [redis](../redis.md) для кеширования с веб-мордой redis-commander, поэтому идем в веб-интерфейс и делаем flushall. + - После запускаем сканирование файлов. Проблема решена. Файлы доступны. Ошибок в логе нет. diff --git a/docs/docker/nextcloud/index.md b/docs/docker/nextcloud/index.md new file mode 100755 index 0000000..c5e6922 --- /dev/null +++ b/docs/docker/nextcloud/index.md @@ -0,0 +1,63 @@ +```env +PUID= +PGID= +TZ= +DOCKER_APP= +SECRETSDIR= +NEXTCLOUD_DOMAIN_NAME= +REDIS_PASSWORD= +``` + +docker-compose.yml + +```yaml +version: "3.7" + +secrets: + nextcloud_admin_password: + file: $SECRETSDIR/nextcloud_admin_password # put admin password in this file + nextcloud_admin_user: + file: $SECRETSDIR/nextcloud_admin_user # put admin username in this file + nextcloud_postgres_db: + file: $SECRETSDIR/nextcloud_postgres_db # put postgresql db name in this file + nextcloud_postgres_password: + file: $SECRETSDIR/nextcloud_postgres_password # put postgresql password in this file + nextcloud_postgres_user: + file: $SECRETSDIR/nextcloud_postgres_user # put postgresql username in this file + +services: + # Nextcloud Docker Application + nextcloud: + image: nextcloud:25.0.4 + container_name: nextcloud + restart: always + volumes: + - $DOCKER_APP/nextcloud:/var/www/html + - $DOCKER_APP/nextcloud/apps:/var/www/html/custom_apps + - $DOCKER_APP/nextcloud/config:/var/www/html/config + - /mnt/NAS/Nextcloud:/var/www/html/data + - /mnt:/mnt + environment: + - POSTGRES_HOST=192.168.1.12 + - POSTGRES_DB_FILE=/run/secrets/nextcloud_postgres_db + - POSTGRES_USER_FILE=/run/secrets/nextcloud_postgres_user + - POSTGRES_PASSWORD_FILE=/run/secrets/nextcloud_postgres_password + - NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password + - NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user + - REDIS_HOST=172.18.3.249 + - REDIS_HOST_PASSWORD=$REDIS_PASSWORD + - PUID=$PUID + - PGID=$PGID + - TZ=$TZ + - NEXTCLOUD_TRUSTED_DOMAIN=$NEXTCLOUD_DOMAIN_NAME + - TRUSTED_PROXIES=172.18.0.253 + - OVERWRITEPROTOCOL=https + secrets: + - nextcloud_admin_password + - nextcloud_admin_user + - nextcloud_postgres_db + - nextcloud_postgres_password + - nextcloud_postgres_user + labels: + - com.centurylinklabs.watchtower.enable=False +``` \ No newline at end of file diff --git a/docs/docker/nextcloud/php-imagick.md b/docs/docker/nextcloud/php-imagick.md new file mode 100644 index 0000000..f84fb11 --- /dev/null +++ b/docs/docker/nextcloud/php-imagick.md @@ -0,0 +1,16 @@ +# Module php-imagick in this instance has no SVG support + +При использовании официального Nextcloud образа Docker вы увидите сообщение вроде: + +![](../images/docker/nextcloud/nextcloud-docker-php-imagick.png) + +Чтобы исправить это предупреждение в docker нужно установить пакет `libmagickcore-6.q16-6-extra`: + +```bash +docker exec nextcloud apt -y update +docker exec nextcloud apt -y install libmagickcore-6.q16-6-extra +``` + +После этого предупреждение пропало. + +Если мы создадим контейнер заново, это изменение будет потеряно. На мой взгляд, здесь лучше выбрать простое решение и делать это каждый раз при обновлении образа, в отличие от постоянной, но гораздо более трудоемкой процедуры. Такой, как обновление docker-контейнера и возврата к официальному образу. diff --git a/docs/network/mikrotik/wireguard.md b/docs/network/mikrotik/wireguard.md index 8393fe1..3135939 100755 --- a/docs/network/mikrotik/wireguard.md +++ b/docs/network/mikrotik/wireguard.md @@ -74,10 +74,10 @@ Если у Вас много точек и так же для удобства настройки и дальнейшего обслуживания я рекомендую создать Вам подобную таблицу: -| Name | Address | Endpoint | EndpointIp | AllowedIPs | ListenPort | PrivateKey | PublicKey | | -|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--| -| PointA | 10.10.10.1 | www.pointA.com | 222.222.222.222 | 10.10.11.1/32,192.168.200.0/24 | 13231 | ucwL8IWLNYrPHOu9qk70ZOagPgjJXhzvvkg7ZLooaj4= | -| PointB| 10.10.11.1 | www.pointB.com | 111.111.111.111 | 10.10.10.1/32,192.168.100.0/24 | 13231 | FxNwKIFINspWh5pkoFpS5LzNKMDjkqcAV/Ypo2Ed8ys= | +| Name | Address | Endpoint | EndpointIp | AllowedIPs | ListenPort | PrivateKey | PublicKey | +|--|--|--|--|--|--|--|--| +| PointA | 10.10.10.1 | www.pointA.com | 222.222.222.222 | 10.10.11.1/32,192.168.200.0/24 | 13231 | `` | `ucwL8IWLNYrPHOu9qk70ZOagPgjJXhzvvkg7ZLooaj4=` | +| PointB | 10.10.11.1 | www.pointB.com | 111.111.111.111 | 10.10.10.1/32,192.168.100.0/24 | 13231 | `` | `FxNwKIFINspWh5pkoFpS5LzNKMDjkqcAV/Ypo2Ed8ys=` | Вам так будет проще ориентироваться в дальнейшем diff --git a/docs/ubuntu/hpe/hpe-mcp.md b/docs/ubuntu/hpe/hpe-mcp.md index 694e9fe..d8a2c13 100755 --- a/docs/ubuntu/hpe/hpe-mcp.md +++ b/docs/ubuntu/hpe/hpe-mcp.md @@ -1,12 +1,12 @@ - Недавно у меня появился на руках сервер HPE ML30 Gen10. Мне больше всего нравится Ubuntu Server, поэтому я решил установить его на сервере. Чуть позднее я узнал, что у HP есть утилиты, которые вы можете установить в Linux для изменения и просмотра настроек и информации на уровне системы, что довольно круто. Я хотел попробовать их, однако Ubuntu не входит в группу ОС (Red Hat и SUSE), которые получают пакеты [обновлений](https://downloads.linux.hpe.com/SDR/project/spp/) . Так что документация и поддержка минимальны, и мне потребовалось немного времени, чтобы во всем разобраться. -> Отказ от ответственности: я работаю над сервером Gen 10, поэтому -> устанавливаемые пакеты могут отличаться от других поколений. +!!! info + Отказ от ответственности: я работаю над сервером Gen 10, поэтому + устанавливаемые пакеты могут отличаться от других поколений. - ## Установка через APT +## Установка через APT Во-первых, чтобы установить утилиты, вам нужно добавить [источник](https://downloads.linux.hpe.com/SDR/project/mcp/) в **apt**: ```bash diff --git a/mkdocs.yml b/mkdocs.yml index f0a5a62..5bdd1d2 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -22,6 +22,10 @@ nav: - Plex: docker/plex.md - Plex Meta Manager: docker/plex-mm.md - Plex Trakt Sync: docker/plextraktsync.md + - Nextcloud: + - docker/nextcloud/index.md + - During Scan: docker/nextcloud/during-scan.md + - PHP imagick: docker/nextcloud/php-imagick.md - Ubuntu 22: - HPE: - Management Component Pack: ubuntu/hpe/hpe-mcp.md diff --git a/requirements.txt b/requirements.txt index 0e9ad6e..a97cd01 100755 --- a/requirements.txt +++ b/requirements.txt @@ -4,5 +4,6 @@ mkdocs-material-extensions>=1.1 mkdocs-minify-plugin>=0.2 mkdocs-git-revision-date-plugin==0.3.1 pymdown-extensions>=9.9.1 + mkdocs-glightbox mkdocs-blogging-plugin \ No newline at end of file