I have a docker stack consisting of caddy
and wordpress
currently in development at https://localhost
and I am getting two critical erros:
I am not sure what could be causing this
The REST API encountered an error Performance The REST API is one way that WordPress and other applications communicate with the server. For example, the block editor screen relies on the REST API to display and save your posts and pages. When testing the REST API, an error was encountered: REST API Endpoint: https://localhost/wp-json/wp/v2/types/post?context=edit REST API Response: (http_request_failed) cURL error 7: Failed to connect to localhost port 443 after 0 ms: Couldn't connect to server
and
Your site could not complete a loopback request Performance Loopback requests are used to run scheduled events, and are also used by the built-in editors for themes and plugins to verify code stability. The loopback request to your site failed, this means features relying on them are not currently working as expected. Error: cURL error 7: Failed to connect to localhost port 443 after 0 ms: Couldn't connect to server (http_request_failed)
I am not sure if this will solve by itself in prod
here is my compose file; DOMAIN_URL=https://localhost
:
services: # Database db: image: mysql:8.0 container_name: db platform: linux/arm64/v8 volumes: - ${DATABASE_HOST}:/var/lib/mysql - "/etc/localtime:/etc/localtime:ro" restart: always environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} networks: - meoc # WordPress wordpress: depends_on: - db container_name: wordpress build: context: . dockerfile: Dockerfile.wordpress platform: linux/arm64/v8 expose: - "80" restart: always volumes: - "/etc/localtime:/etc/localtime:ro" - ./settings/php/custom.ini:/usr/local/etc/php/conf.d/custom.ini - ./wp-content:/var/www/html/wp-content environment: WORDPRESS_DB_HOST: ${MYSQL_HOST} WORDPRESS_DB_USER: ${MYSQL_USER} WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD} WORDPRESS_DB_NAME: ${MYSQL_DATABASE} WORDPRESS_CONFIG_EXTRA: | define('WP_HOME', '${DOMAIN_URL}'); define('WP_SITEURL', '${DOMAIN_URL}'); define('FORCE_SSL_ADMIN', true); define('WP_CONTENT_URL', '${DOMAIN_URL}/wp-content'); define('WORDPRESS_SKIP_PLUGINS', true); define('WORDPRESS_SKIP_THEMES', true); networks: - meoc # Caddy caddy: image: caddy:2-alpine container_name: caddy platform: linux/arm64/v8 ports: - "80:80" - "443:443" volumes: - ${CADDY_FILE}:/etc/caddy/Caddyfile:ro - ${CADDY_DATA}:/data - ${CADDY_CONFIG}:/config - ${CADDY_LOG}:/var/log/caddy environment: - DOMAIN_URL=${DOMAIN_URL} - ACME_AGREE=true restart: always networks: - meoc networks: eoc: name: meoc
and my caddyfile
# Global options { admin off servers { protocols h1 h2 } } localhost { tls internal log { output file /var/log/caddy/access.log { roll_size 1gb roll_keep 5 roll_keep_for 720h } format filter { request>headers>Cookie cookie { replace session REDACTED delete secret } } format json } reverse_proxy wordpress:80 { header_up Host {host} header_up X-Real-IP {remote} } # Security headers header { # Enable HSTS Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" # Prevent MIME type sniffing X-Content-Type-Options "nosniff" # Prevent clickjacking X-Frame-Options "SAMEORIGIN" # Enable XSS protection X-XSS-Protection "1; mode=block" # Remove server header -Server # Disable caching Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0" Pragma "no-cache" Expires "0" } }