diff --git a/Caddyfile b/Caddyfile index 2c8577f..b3c6047 100755 --- a/Caddyfile +++ b/Caddyfile @@ -413,3 +413,64 @@ csv.lucasroyer.fr { header Content-Type "text/csv; charset=utf-8" header Access-Control-Allow-Origin "*" } + +ghost.pauline.lucasroyer.fr { + # Security + header { + X-Frame-Options "SAMEORIGIN" + X-Content-Type-Options "nosniff" + Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" + Referrer-Policy "strict-origin-when-cross-origin" + X-XSS-Protection "1; mode=block" + Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdn.jsdelivr.net; img-src 'self' data: https:; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com;" + } + + # Compression + encode zstd gzip + + # Log + log { + output file /data/pauline_ghost_access.log + } + + # Redirect + reverse_proxy ghost:2368 +} + +paulinebouillaud.fr { + root * /var/www/html + + # Security + header { + X-Frame-Options "SAMEORIGIN" + X-Content-Type-Options "nosniff" + Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" + Referrer-Policy "strict-origin-when-cross-origin" + X-XSS-Protection "1; mode=block" + Content-Security-Policy "default-src 'self' https: data: 'unsafe-inline' 'unsafe-eval'; frame-src 'self' https://*.youtube-nocookie.com https://*.youtube.com https://*.vimeo.com https://*.doubleclick.net; img-src 'self' data: https:; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; frame-ancestors 'self';" + } + + # Compression + encode zstd gzip + + # Logs + log { + output file /data/pauline_wordpress_access.log + } + + # --- Wordpress FPM --- + file_server + + php_fastcgi wordpress-app:9000 { + resolve_root_symlink + } + + # Security + @forbidden { + path /xmlrpc.php + path /.htaccess + path /wp-config.php + path /readme.html + } + respond @forbidden 403 +} diff --git a/docker-compose.yml b/docker-compose.yml index a5f3398..caa6509 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,23 +15,22 @@ services: - /home/lucas/services/n8n/local-files/csv:/srv/csv:ro - /home/lucas/services/static-sites/site-spationautes:/srv/site-spationautes:ro - /home/lucas/services/static-sites/site-veloboomboom:/srv/site-veloboomboom:ro + - wp_data:/var/www/html:ro networks: - reverse-proxy ports: - "80:80" - "443:443" - "443:443/udp" - logging: - driver: "json-file" - options: - max-size: "10m" - max-file: "3" volumes: caddy_data: name: caddy_data caddy_config: name: caddy_config + wp_data: + external: true + name : wordpress_wp_data networks: reverse-proxy: