Add nextcloud docker image

This commit is contained in:
Wojciech Kozlowski 2017-09-16 21:53:23 +01:00
parent 8be1967f1f
commit 884b74f3da
3 changed files with 165 additions and 1 deletions

View File

@ -2,12 +2,15 @@ version: '2'
volumes:
vol_wiki:
vol_nextcloud:
vol_nextcloud_db:
services:
html:
container_name: docker_html
build: html
image: html
restart: always
wiki:
container_name: docker_wiki
@ -15,9 +18,42 @@ services:
image: wiki
volumes:
- vol_wiki:/var/dokuwiki-storage
restart: always
nextcloud-db:
container_name: nextcloud_db
image: mariadb
volumes:
- vol_nextcloud_db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=nextcloud
- MYSQL_PASSWORD=nextcloud
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
restart: always
nextcloud:
container_name: nextcloud
image: nextcloud:fpm
links:
- nextcloud-db
volumes:
- vol_nextcloud:/var/www/html
restart: always
nextcloud-web:
container_name: docker_cloud
image: nginx
links:
- nextcloud
volumes:
- ./nextcloud/nginx.conf:/etc/nginx/nginx.conf:ro
volumes_from:
- nextcloud
restart: always
proxy:
container_name: docker_proxy
container_name: proxy
build: nginx-proxy
image: proxy
ports:
@ -25,4 +61,5 @@ services:
links:
- html
- wiki
- nextcloud-web
restart: always

110
nextcloud/nginx.conf Normal file
View File

@ -0,0 +1,110 @@
user www-data;
events {
worker_connections 768;
}
http {
upstream backend {
server nextcloud:9000;
}
include /etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
root /var/www/html;
client_max_body_size 10G; # 0=unlimited - set max upload size
fastcgi_buffers 64 4K;
gzip off;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
rewrite ^/.well-known/carddav /remote.php/dav/ permanent;
rewrite ^/.well-known/caldav /remote.php/dav/ permanent;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location / {
rewrite ^/remote/(.*) /remote.php last;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ =404;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
fastcgi_pass backend;
fastcgi_intercept_errors on;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the location ~ \.php(?:$|/) { block
location ~* \.(?:css|js)$ {
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Optional: Don't log access to assets
access_log off;
}
# Optional: Don't log access to other assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
access_log off;
}
# collabora static files
location ^~ /loleaflet {
proxy_pass https://collabora:9980;
proxy_set_header Host $http_host;
}
# collabora WOPI discovery URL
location ^~ /hosting/discovery {
proxy_pass https://collabora:9980;
proxy_set_header Host $http_host;
}
# collabora websockets, download, presentation and image upload
location ^~ /lool {
proxy_pass https://collabora:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}
}
}

View File

@ -0,0 +1,17 @@
server {
listen 80;
server_name cloud.wojciechkozlowski.eu;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://docker_cloud;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}