Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| application:nextcloud [2025/03/02 18:47] – mirocow | application:nextcloud [2025/11/28 07:56] (текущий) – 78.138.161.134 | ||
|---|---|---|---|
| Строка 3: | Строка 3: | ||
| ====== Nextcloud ====== | ====== Nextcloud ====== | ||
| - | * / | + | * / |
| * / | * / | ||
| * / | * / | ||
| * / | * / | ||
| * / | * / | ||
| + | |||
| + | ====== Сборка ====== | ||
| + | |||
| + | <code bash> | ||
| + | #!/bin/bash | ||
| + | |||
| + | export PROD_V=9.04 | ||
| + | |||
| + | ################################################################################## | ||
| + | |||
| + | cd /opt | ||
| + | git clone https:// | ||
| + | cd / | ||
| + | |||
| + | docker build . -t onlyoffice-documentserver-unlimited: | ||
| + | docker tag onlyoffice-documentserver-unlimited: | ||
| + | docker tag onlyoffice-documentserver-unlimited: | ||
| + | docker push ghcr.io/ | ||
| + | docker push thomisus/ | ||
| + | docker tag onlyoffice-documentserver-unlimited: | ||
| + | docker tag onlyoffice-documentserver-unlimited: | ||
| + | echo "all done" && \ | ||
| + | docker push ghcr.io/ | ||
| + | docker push thomisus/ | ||
| + | </ | ||
| ====== Установка ====== | ====== Установка ====== | ||
| Строка 39: | Строка 64: | ||
| # - 192.168.1.6: | # - 192.168.1.6: | ||
| volumes: | volumes: | ||
| + | - / | ||
| - proxy:/ | - proxy:/ | ||
| - | - data:/ | + | - nextcloud:/ |
| + | | ||
| + | resources: | ||
| + | limits: | ||
| + | cpus: ' | ||
| + | memory: 2G | ||
| # docker exec -u www-data nextcloud-app php occ config: | # docker exec -u www-data nextcloud-app php occ config: | ||
| Строка 49: | Строка 79: | ||
| # docker exec -u www-data nextcloud-app php occ upgrade | # docker exec -u www-data nextcloud-app php occ upgrade | ||
| app: | app: | ||
| - | image: nextcloud:latest | + | image: nextcloud:31.0.8-apache |
| container_name: | container_name: | ||
| networks: | networks: | ||
| Строка 59: | Строка 89: | ||
| - db | - db | ||
| - redis | - redis | ||
| + | - cron | ||
| + | - es01 | ||
| volumes: | volumes: | ||
| - / | - / | ||
| - | - data:/ | + | - nextcloud:/ |
| + | - crontabs:/ | ||
| environment: | environment: | ||
| - TZ=Europe/ | - TZ=Europe/ | ||
| Строка 68: | Строка 101: | ||
| - SKIP_DOMAIN_VALIDATION=true | - SKIP_DOMAIN_VALIDATION=true | ||
| restart: unless-stopped | restart: unless-stopped | ||
| + | deploy: | ||
| + | resources: | ||
| + | limits: | ||
| + | cpus: ' | ||
| + | memory: 10G | ||
| + | healthcheck: | ||
| + | test: [" | ||
| + | interval: 10s | ||
| + | timeout: 5s | ||
| + | retries: 3 | ||
| + | start_period: | ||
| + | |||
| + | cron: | ||
| + | image: rcdailey/ | ||
| + | restart: unless-stopped | ||
| + | network_mode: | ||
| + | volumes: | ||
| + | - / | ||
| + | - / | ||
| + | - crontabs:/ | ||
| + | environment: | ||
| + | - NEXTCLOUD_CONTAINER_NAME=nextcloud-app | ||
| + | - NEXTCLOUD_PROJECT_NAME= | ||
| + | - NEXTCLOUD_CRON_MINUTE_INTERVAL=5 | ||
| + | deploy: | ||
| + | resources: | ||
| + | limits: | ||
| + | cpus: ' | ||
| + | memory: 2G | ||
| # http:// | # http:// | ||
| Строка 77: | Строка 139: | ||
| expose: | expose: | ||
| - ' | - ' | ||
| - | depends_on: | ||
| - | - image-export | ||
| environment: | environment: | ||
| - DRAWIO_SELF_CONTAINED=1 | - DRAWIO_SELF_CONTAINED=1 | ||
| - EXPORT_URL=http:// | - EXPORT_URL=http:// | ||
| + | - PLANTUML_URL=http:// | ||
| # - PLANTUML_URL=http:// | # - PLANTUML_URL=http:// | ||
| # - DRAWIO_BASE_URL=${DRAWIO_BASE_URL} | # - DRAWIO_BASE_URL=${DRAWIO_BASE_URL} | ||
| restart: unless-stopped | restart: unless-stopped | ||
| + | healthcheck: | ||
| + | test: [" | ||
| + | interval: 1m30s | ||
| + | timeout: 10s | ||
| + | retries: 5 | ||
| + | start_period: | ||
| + | deploy: | ||
| + | resources: | ||
| + | limits: | ||
| + | cpus: ' | ||
| + | memory: 2G | ||
| # http:// | # http:// | ||
| Строка 92: | Строка 164: | ||
| expose: | expose: | ||
| - " | - " | ||
| + | depends_on: | ||
| + | - drawio | ||
| networks: | networks: | ||
| nextcloud_network: | nextcloud_network: | ||
| Строка 99: | Строка 173: | ||
| #- ./ | #- ./ | ||
| restart: unless-stopped | restart: unless-stopped | ||
| + | # deploy: | ||
| + | # | ||
| + | # | ||
| + | # cpus: ' | ||
| + | # | ||
| + | |||
| + | plantuml-server: | ||
| + | image: plantuml/ | ||
| + | expose: | ||
| + | - " | ||
| + | networks: | ||
| + | nextcloud_network: | ||
| + | depends_on: | ||
| + | - drawio | ||
| + | restart: unless-stopped | ||
| + | deploy: | ||
| + | resources: | ||
| + | limits: | ||
| + | cpus: ' | ||
| + | memory: 2G | ||
| # ONLYOFFICE Docs address: /ds-vpath/ | # ONLYOFFICE Docs address: /ds-vpath/ | ||
| # ONLYOFFICE Docs address for internal requests from the server: / | # ONLYOFFICE Docs address for internal requests from the server: / | ||
| + | # This build of onlyoffice community edition ( documentserver ) has connections limits increased to 9999 ( instead of default 20 ) | ||
| onlyoffice: | onlyoffice: | ||
| container_name: | container_name: | ||
| - | image: onlyoffice/ | + | |
| + | image: thomisus/ | ||
| + | stdin_open: true | ||
| + | tty: true | ||
| environment: | environment: | ||
| - JWT_SECRET=secret | - JWT_SECRET=secret | ||
| Строка 112: | Строка 210: | ||
| expose: | expose: | ||
| - ' | - ' | ||
| - | # - ' | ||
| volumes: | volumes: | ||
| - document_data:/ | - document_data:/ | ||
| - document_log:/ | - document_log:/ | ||
| - | + | deploy: | |
| - | cron: | + | |
| - | image: nextcloud: | + | |
| - | | + | cpus: ' |
| - | volumes: | + | |
| - | - / | + | |
| - | - data:/ | + | |
| - | environment: | + | |
| - | - TZ=Europe/ | + | |
| - | entrypoint: /cron.sh | + | |
| - | depends_on: | + | |
| - | - db | + | |
| - | - redis | + | |
| - | | + | |
| - | | + | |
| db: | db: | ||
| Строка 147: | Строка 234: | ||
| - MYSQL_DATABASE=nextcloud | - MYSQL_DATABASE=nextcloud | ||
| - MYSQL_USER=nextcloud | - MYSQL_USER=nextcloud | ||
| + | ports: | ||
| + | - 13306:3306 | ||
| restart: unless-stopped | restart: unless-stopped | ||
| + | deploy: | ||
| + | resources: | ||
| + | limits: | ||
| + | cpus: ' | ||
| + | memory: 8G | ||
| redis: | redis: | ||
| image: redis: | image: redis: | ||
| restart: unless-stopped | restart: unless-stopped | ||
| + | volumes: | ||
| + | - redis01:/ | ||
| + | deploy: | ||
| + | resources: | ||
| + | limits: | ||
| + | cpus: ' | ||
| + | memory: 2G | ||
| networks: | networks: | ||
| nextcloud_network: | nextcloud_network: | ||
| Строка 182: | Строка 283: | ||
| networks: | networks: | ||
| nextcloud_network: | nextcloud_network: | ||
| + | deploy: | ||
| + | resources: | ||
| + | limits: | ||
| + | cpus: ' | ||
| + | memory: 4G | ||
| + | | ||
| volumes: | volumes: | ||
| proxy: | proxy: | ||
| - | | + | |
| + | crontabs: | ||
| db: | db: | ||
| document_data: | document_data: | ||
| document_log: | document_log: | ||
| data01: | data01: | ||
| + | redis01: | ||
| + | screenshoter: | ||
| | | ||
| - | |||
| networks: | networks: | ||
| nextcloud_network: | nextcloud_network: | ||
| Строка 372: | Строка 480: | ||
| proxy_set_header X-Forwarded-Host $the_host; | proxy_set_header X-Forwarded-Host $the_host; | ||
| proxy_set_header X-Forwarded-Proto $the_scheme; | proxy_set_header X-Forwarded-Proto $the_scheme; | ||
| - | | + | |
| - | proxy_hide_header X-Content-Type-Options; | + | |
| - | proxy_hide_header X-XSS-Protection; | + | |
| proxy_hide_header X-Permitted-Cross-Domain-Policies; | proxy_hide_header X-Permitted-Cross-Domain-Policies; | ||
| + | proxy_hide_header | ||
| + | proxy_hide_header | ||
| + | proxy_hide_header | ||
| + | proxy_hide_header | ||
| } | } | ||
| Строка 391: | Строка 501: | ||
| proxy_set_header X-Forwarded-Host $the_host/ | proxy_set_header X-Forwarded-Host $the_host/ | ||
| proxy_set_header X-Forwarded-Proto $the_scheme; | proxy_set_header X-Forwarded-Proto $the_scheme; | ||
| + | # Correct handling of fallbacks for HTTP headers | ||
| + | proxy_hide_header X-Permitted-Cross-Domain-Policies; | ||
| + | proxy_hide_header | ||
| + | proxy_hide_header | ||
| + | proxy_hide_header | ||
| + | proxy_hide_header | ||
| } | } | ||
| Строка 425: | Строка 541: | ||
| } | } | ||
| } | } | ||
| + | </ | ||
| + | |||
| + | ===== Продолжение настройки ===== | ||
| + | |||
| + | <code bash> | ||
| + | $ docker exec nextcloud-app rm / | ||
| </ | </ | ||
| Строка 476: | Строка 598: | ||
| ===== Composer ===== | ===== Composer ===== | ||
| + | |||
| + | ==== Install ==== | ||
| + | |||
| + | <code bash> | ||
| + | $ docker exec nextcloud-app php -r " | ||
| + | docker exec nextcloud-app php composer-setup.php && \ | ||
| + | docker exec nextcloud-app mv composer.phar / | ||
| + | docker exec nextcloud-app composer -v | ||
| + | </ | ||
| + | |||
| + | ==== Использование ==== | ||
| <code bash> | <code bash> | ||
| Строка 491: | Строка 624: | ||
| <code bash> | <code bash> | ||
| + | $ docker exec nextcloud-app chown www-data: | ||
| $ docker exec -u www-data nextcloud-app bash -c 'cd / | $ docker exec -u www-data nextcloud-app bash -c 'cd / | ||
| </ | </ | ||
| + | |||
| + | ===== Debug ===== | ||
| + | |||
| + | <code bash> | ||
| + | $ docker exec nextcloud-app pecl install xdebug && \ | ||
| + | docker exec nextcloud-app docker-php-ext-enable xdebug && \ | ||
| + | docker exec nextcloud-app rm -rf /tmp/pear && \ | ||
| + | docker exec nextcloud-app bash -c 'echo " | ||
| + | xdebug.start_with_request=yes | ||
| + | xdebug.client_host=host.docker.internal | ||
| + | ;# 9003 is now the default (set this for old PhpStorm settings). | ||
| + | xdebug.client_port=9000" | ||
| + | php -i|grep xdebug | ||
| + | </ | ||
| + | |||