services: wordpress: image: wordpress:fpm-alpine container_name: ${ROUTER}-wordpress restart: unless-stopped init: true depends_on: - mariadb - redis volumes: - wordpress:/var/www/html - ./wp-content:/var/www/html/wp-content networks: - internal environment: WORDPRESS_DB_HOST: ${WORDPRESS_DB_HOST} WORDPRESS_DB_USER: ${WORDPRESS_DB_USER} WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD} WORDPRESS_DB_NAME: ${WORDPRESS_DB_NAME} WORDPRESS_TABLE_PREFIX: ${WORDPRESS_TABLE_PREFIX} WORDPRESS_CONFIG_EXTRA: | define( 'WP_REDIS_HOST', '${WP_REDIS_HOST}' ); define( 'WP_REDIS_PORT', ${WP_REDIS_PORT} ); define( 'WP_REDIS_PREFIX', '${FQDN}' ); define( 'WP_REDIS_DATABASE', ${WP_REDIS_DATABASE} ); // 0-15 define( 'WP_REDIS_TIMEOUT', ${WP_REDIS_TIMEOUT} ); define( 'WP_REDIS_READ_TIMEOUT', ${WP_REDIS_READ_TIMEOUT} ); nginx: image: nginx:alpine container_name: ${ROUTER}-nginx restart: unless-stopped init: true depends_on: - wordpress volumes: - ./nginx:/etc/nginx/conf.d - wordpress:/var/www/html:ro networks: - proxy - internal labels: traefik.enable: true traefik.http.services.${ROUTER}-nginx.loadbalancer.server.port: 80 traefik.http.routers.${ROUTER}-nginx.rule: Host(`${FQDN}`) mariadb: image: mariadb container_name: ${ROUTER}-mariadb restart: unless-stopped init: true volumes: - mariadb:/var/lib/mysql networks: - internal environment: MYSQL_DATABASE: ${WORDPRESS_DB_NAME} MYSQL_USER: ${WORDPRESS_DB_USER} MYSQL_PASSWORD: ${WORDPRESS_DB_PASSWORD} MYSQL_ROOT_PASSWORD: ${WORDPRESS_DB_PASSWORD} backup: image: atareao/mariadb-backup:latest container_name: ${ROUTER}-backup restart: unless-stopped init: true depends_on: - mariadb volumes: - ./hooks:/hooks - backup:/cronitab/backup networks: - internal environment: MARIADB_DB: ${WORDPRESS_DB_NAME} MARIADB_HOST: ${WORDPRESS_DB_HOST} MARIADB_PORT: 3306 MARIADB_USER: ${WORDPRESS_DB_USER} MARIADB_PASSWORD: ${WORDPRESS_DB_PASSWORD} SCHEDULE: "0 1/24 * * *" BACKUP_KEEP_MINS: ${BACKUP_KEEP_MINS} BACKUP_KEEP_DAYS: ${BACKUP_KEEP_DAYS} BACKUP_KEEP_WEEKS: ${BACKUP_KEEP_WEEKS} BACKUP_KEEP_MONTHS: ${BACKUP_KEEP_MONTHS} redis: image: redis:6 container_name: ${ROUTER}-redis restart: unless-stopped init: true depends_on: - mariadb volumes: - redis:/data networks: - internal phpmyadmin: image: phpmyadmin container_name: ${ROUTER}-phpmyadmin restart: unless-stopped init: true depends_on: - mariadb volumes: - phpmyadmin:/sessions networks: - proxy - internal environment: - PMA_ARBITRARY=1 labels: traefik.enable: true traefik.http.services.${ROUTER}-phpmyadmin.loadbalancer.server.port: 80 traefik.http.routers.${ROUTER}-phpmyadmin.rule: Host(`${FQDN2}`) volumes: wordpress: name: ${ROUTER}-wordpress mariadb: name: ${ROUTER}-mariadb backup: name: ${ROUTER}-backup redis: name: ${ROUTER}-redis phpmyadmin: name: ${ROUTER}-phpmyadmin networks: internal: name: ${ROUTER}-internal proxy: external: true