forked from coop-cloud/nextcloud
		
	Compare commits
	
		
			6 Commits
		
	
	
		
			auto_confi
			...
			embed_next
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e8a8f636d0 | |||
| daa57eece9 | |||
| 2ddf11728f | |||
| 71d15ef4df | |||
| 0d4f060e94 | |||
| 1e1977a2b4 | 
| @ -16,3 +16,6 @@ SECRET_DB_PASSWORD_VERSION=v1 | |||||||
| SECRET_ADMIN_PASSWORD_VERSION=v1 | SECRET_ADMIN_PASSWORD_VERSION=v1 | ||||||
|  |  | ||||||
| EXTRA_VOLUME=/dev/null:/tmp/.dummy | EXTRA_VOLUME=/dev/null:/tmp/.dummy | ||||||
|  |  | ||||||
|  | # X_FRAME_OPTIONS_ENABLED=1 | ||||||
|  | # X_FRAME_OPTIONS_ALLOW_FROM=embedding-site.example.org | ||||||
|  | |||||||
							
								
								
									
										24
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								README.md
									
									
									
									
									
								
							| @ -166,3 +166,27 @@ Here is an example CSS config which hides the local login and makes space for a | |||||||
| [nextcloud-docker]: https://hub.docker.com/_/nextcloud/ | [nextcloud-docker]: https://hub.docker.com/_/nextcloud/ | ||||||
| [`abra`]: https://git.autonomic.zone/autonomic-cooperative/abra | [`abra`]: https://git.autonomic.zone/autonomic-cooperative/abra | ||||||
| [`coop-cloud/traefik`]: https://git.autonomic.zone/coop-cloud/traefik | [`coop-cloud/traefik`]: https://git.autonomic.zone/coop-cloud/traefik | ||||||
|  |  | ||||||
|  | ## Using [`previewgenerator`](https://github.com/nextcloud/previewgenerator) app | ||||||
|  |  | ||||||
|  | > Beware, this appp has been known to not work... | ||||||
|  |  | ||||||
|  | After you install, enable etc. then you need to run the generation (**warning**: it can take a long time!): | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | abra app run <domain> app bash -u www-data | ||||||
|  | ./occ preview:generate-all | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | To set up the cron to run again, there is [no clear solution in the context of | ||||||
|  | containers](https://github.com/nextcloud/previewgenerator/issues/1). So, a | ||||||
|  | pretty dodgy hack is to run it from the system directly: | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | root@foo.com /etc/cron.hourly $ cat foo-com-preview-generate  | ||||||
|  | #!/bin/bash | ||||||
|  |  | ||||||
|  | docker exec -u www-data $(docker ps -f name=foo_com_app -q) ./occ preview:pre-generate | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | This app will improve performance of image browsing at the cost of storage space. | ||||||
|  | |||||||
							
								
								
									
										3
									
								
								abra.sh
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								abra.sh
									
									
									
									
									
								
							| @ -1,6 +1,7 @@ | |||||||
| export FPM_TUNE_VERSION=v4 | export FPM_TUNE_VERSION=v4 | ||||||
| export NGINX_CONF_VERSION=v2 | export NGINX_CONF_VERSION=v3 | ||||||
| export MY_CNF_VERSION=v4 | export MY_CNF_VERSION=v4 | ||||||
|  | export ENTRYPOINT_VERSION=v1 | ||||||
|  |  | ||||||
| NC_APP_DIR="app:/var/www/html" | NC_APP_DIR="app:/var/www/html" | ||||||
|  |  | ||||||
|  | |||||||
							
								
								
									
										24
									
								
								compose.yml
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								compose.yml
									
									
									
									
									
								
							| @ -1,11 +1,13 @@ | |||||||
| version: "3.8" | version: "3.8" | ||||||
| services: | services: | ||||||
|   web: |   web: | ||||||
|     image: nginx:1.21.6 |     image: nginx:1.23.1 | ||||||
|     configs: |     configs: | ||||||
|       - source: nginx_conf |       - source: nginx_conf | ||||||
|         target: /etc/nginx/nginx.conf |         target: /etc/nginx/nginx.conf | ||||||
|     environment: |     environment: | ||||||
|  |       - X_FRAME_OPTIONS_ALLOW_FROM | ||||||
|  |       - X_FRAME_OPTIONS_ENABLED | ||||||
|       - DOMAIN |       - DOMAIN | ||||||
|       - STACK_NAME |       - STACK_NAME | ||||||
|     volumes: |     volumes: | ||||||
| @ -33,16 +35,22 @@ services: | |||||||
|         - "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}" |         - "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}" | ||||||
|  |  | ||||||
|   app: |   app: | ||||||
|     image: nextcloud:24.0.0-fpm |     image: nextcloud:24.0.3-fpm | ||||||
|     depends_on: |     depends_on: | ||||||
|       - db |       - db | ||||||
|     configs: |     configs: | ||||||
|       - source: fpm_tune |       - source: fpm_tune | ||||||
|         target: /usr/local/etc/php-fpm.d/fpm-tune.conf |         target: /usr/local/etc/php-fpm.d/fpm-tune.conf | ||||||
|  |       - source: entrypoint | ||||||
|  |         target: /custom-entrypoint.sh | ||||||
|  |         mode: 555 | ||||||
|  |     entrypoint: /custom-entrypoint.sh | ||||||
|     secrets: |     secrets: | ||||||
|       - db_password |       - db_password | ||||||
|       - admin_password |       - admin_password | ||||||
|     environment: |     environment: | ||||||
|  |       - X_FRAME_OPTIONS_ALLOW_FROM | ||||||
|  |       - X_FRAME_OPTIONS_ENABLED | ||||||
|       - DOMAIN |       - DOMAIN | ||||||
|       - STACK_NAME |       - STACK_NAME | ||||||
|       - NEXTCLOUD_ADMIN_USER=${ADMIN_USER} |       - NEXTCLOUD_ADMIN_USER=${ADMIN_USER} | ||||||
| @ -69,13 +77,12 @@ services: | |||||||
|         failure_action: rollback |         failure_action: rollback | ||||||
|         order: start-first |         order: start-first | ||||||
|       labels: |       labels: | ||||||
|         - "coop-cloud.${STACK_NAME}.version=2.1.0+24.0.0-fpm" |         - "coop-cloud.${STACK_NAME}.version=2.1.2+24.0.3-fpm" | ||||||
|         - "backupbot.backup=true" |         - "backupbot.backup=true" | ||||||
|         - "backupbot.backup.path=/var/www/html/config/,/var/www/html/data/,/var/www/html/custom_apps/" |         - "backupbot.backup.path=/var/www/html/config/,/var/www/html/data/,/var/www/html/custom_apps/" | ||||||
|  |  | ||||||
|  |  | ||||||
|   cron: |   cron: | ||||||
|     image: nextcloud:24.0.0-fpm |     image: nextcloud:24.0.3-fpm | ||||||
|     volumes: |     volumes: | ||||||
|       - nextcloud:/var/www/html/ |       - nextcloud:/var/www/html/ | ||||||
|       - nextapps:/var/www/html/custom_apps:cached |       - nextapps:/var/www/html/custom_apps:cached | ||||||
| @ -87,7 +94,7 @@ services: | |||||||
|     entrypoint: /cron.sh |     entrypoint: /cron.sh | ||||||
|  |  | ||||||
|   cache: |   cache: | ||||||
|     image: redis:7.0.0-alpine |     image: redis:7.0.4-alpine | ||||||
|     networks: |     networks: | ||||||
|       - internal |       - internal | ||||||
|     volumes: |     volumes: | ||||||
| @ -111,6 +118,7 @@ volumes: | |||||||
|   nextconfig: |   nextconfig: | ||||||
|   redis: |   redis: | ||||||
|  |  | ||||||
|  |  | ||||||
| configs: | configs: | ||||||
|   nginx_conf: |   nginx_conf: | ||||||
|     name: ${STACK_NAME}_nginx_${NGINX_CONF_VERSION} |     name: ${STACK_NAME}_nginx_${NGINX_CONF_VERSION} | ||||||
| @ -119,6 +127,10 @@ configs: | |||||||
|   fpm_tune: |   fpm_tune: | ||||||
|     name: ${STACK_NAME}_fpm_tune_${FPM_TUNE_VERSION} |     name: ${STACK_NAME}_fpm_tune_${FPM_TUNE_VERSION} | ||||||
|     file: fpm-tune.ini |     file: fpm-tune.ini | ||||||
|  |   entrypoint: | ||||||
|  |     name: ${STACK_NAME}_entrypoint_${ENTRYPOINT_VERSION} | ||||||
|  |     file: entrypoint.sh.tmpl | ||||||
|  |     template_driver: golang | ||||||
|  |  | ||||||
| networks: | networks: | ||||||
|   proxy: |   proxy: | ||||||
|  | |||||||
							
								
								
									
										9
									
								
								entrypoint.sh.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								entrypoint.sh.tmpl
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | |||||||
|  | #!/bin/bash | ||||||
|  |  | ||||||
|  | {{ if eq (env "X_FRAME_OPTIONS_ENABLED") "1" }} | ||||||
|  | if ! [[ $(grep {{ env "X_FRAME_OPTIONS_ALLOW_FROM" }} lib/public/AppFramework/Http/ContentSecurityPolicy.php) ]]; then | ||||||
|  |     sed -i "91 a\\\t\t'{{ env "X_FRAME_OPTIONS_ALLOW_FROM" }}', " lib/public/AppFramework/Http/ContentSecurityPolicy.php | ||||||
|  | fi | ||||||
|  | {{ end }} | ||||||
|  |  | ||||||
|  | /entrypoint.sh php-fpm | ||||||
| @ -41,6 +41,7 @@ http { | |||||||
|         # could take several months. |         # could take several months. | ||||||
|         #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always; |         #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always; | ||||||
|  |  | ||||||
|  |  | ||||||
|         # set max upload size |         # set max upload size | ||||||
|         client_max_body_size 512M; |         client_max_body_size 512M; | ||||||
|         fastcgi_buffers 64 4K; |         fastcgi_buffers 64 4K; | ||||||
| @ -61,11 +62,18 @@ http { | |||||||
|         add_header Referrer-Policy                      "no-referrer"   always; |         add_header Referrer-Policy                      "no-referrer"   always; | ||||||
|         add_header X-Content-Type-Options               "nosniff"       always; |         add_header X-Content-Type-Options               "nosniff"       always; | ||||||
|         add_header X-Download-Options                   "noopen"        always; |         add_header X-Download-Options                   "noopen"        always; | ||||||
|         add_header X-Frame-Options                      "SAMEORIGIN"    always; |  | ||||||
|         add_header X-Permitted-Cross-Domain-Policies    "none"          always; |         add_header X-Permitted-Cross-Domain-Policies    "none"          always; | ||||||
|         add_header X-Robots-Tag                         "none"          always; |         add_header X-Robots-Tag                         "none"          always; | ||||||
|         add_header X-XSS-Protection                     "1; mode=block" always; |         add_header X-XSS-Protection                     "1; mode=block" always; | ||||||
|  |  | ||||||
|  |         {{ if eq (env "X_FRAME_OPTIONS_ENABLED") "1" }} | ||||||
|  |         add_header X-Frame-Options                      "{{ env "X_FRAME_OPTIONS_ALLOW_FROM" }}"    always; | ||||||
|  |         add_header Content-Security-Policy              "frame-ancestors {{ env "X_FRAME_OPTIONS_ALLOW_FROM" }}"; | ||||||
|  |         {{ else }} | ||||||
|  |         add_header X-Frame-Options                      "SAMEORIGIN"    always; | ||||||
|  |         {{ end }} | ||||||
|  |  | ||||||
|  |  | ||||||
|         # Remove X-Powered-By, which is an information leak |         # Remove X-Powered-By, which is an information leak | ||||||
|         fastcgi_hide_header X-Powered-By; |         fastcgi_hide_header X-Powered-By; | ||||||
|  |  | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user