#!/bin/bash # # Wordpress Service PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin config_wordpress() { echo -ne "\n* Configuring /federated/apps/wordpress container.." spin & SPINPID=$! if [ ! -d "/federated/apps/wordpress" ]; then mkdir -p /federated/apps/wordpress/data/bitnami/wordpress chown -R 1001 /federated/apps/wordpress/data/bitnami/wordpress fi cat > /federated/apps/wordpress/docker-compose.yml <<EOF version: "3.7" services: wordpress: image: bitnami/wordpress:\${IMAGE_VERSION} container_name: wordpress hostname: wordpress.$DOMAIN domainname: $DOMAIN restart: always networks: federated: ipv4_address: 172.99.0.34 env_file: - ./.env volumes: - ./data/bitnami/wordpress:/bitnami/wordpress labels: - "traefik.enable=true" - "traefik.http.routers.wordpress.rule=Host(\`www.$DOMAIN\`,\`$DOMAIN\`)" - "traefik.http.routers.wordpress.entrypoints=websecure" - "traefik.http.routers.wordpress.tls.certresolver=letsencrypt" - "traefik.http.services.wordpress.loadbalancer.server.port=8080" networks: federated: external: true EOF WORDPRESS_SECRET=$(create_password); MYSQL_ROOTPASSWORD=`cat /federated/apps/pdnsmysql/.env | grep MYSQL_ROOT_PASSWORD | awk -F= '{ print $2 }'` ADMINPASS=`cat /federated/apps/castopod/.env | grep CP_EMAIL_SMTP_PASSWORD | awk -F= '{ print $2 }'` cat > /federated/apps/wordpress/.env <<EOF IMAGE_VERSION="6.2.2" WORDPRESS_USERNAME=admin@$DOMAIN WORDPRESS_PASSWORD=$ADMINPASS WORDPRESS_EMAIL=admin@$DOMAIN WORDPRESS_FIRST_NAME=Admin WORDPRESS_LAST_NAME=Wordpress WORDPRESS_BLOG_NAME=$COMPANY Blog WORDPRESS_DATABASE_HOST=pdnsmysql.$DOMAIN WORDPRESS_DATABASE_PORT_NUMBER=3306 WORDPRESS_DATABASE_USER=wordpress WORDPRESS_DATABASE_NAME=wordpress WORDPRESS_DATABASE_PASSWORD=$WORDPRESS_SECRET WORDPRESS_SMTP_HOST=mail.$DOMAIN WORDPRESS_SMTP_PORT=587 WORDPRESS_SMTP_USER=admin@$DOMAIN WORDPRESS_SMTP_PASSWORD=$ADMINPASS EOF chmod 600 /federated/apps/wordpress/.env # Create database and user in mysql docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e 'create database wordpress;'" docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e \"CREATE USER 'wordpress'@'%' IDENTIFIED BY '$WORDPRESS_SECRET';\"" docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e \"grant all privileges on wordpress.* to 'wordpress'@'%';\"" docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e 'flush privileges;'" kill -9 $SPINPID &> /dev/null echo -ne "done." } start_wordpress() { # Start service with command to make sure it's up before proceeding start_service "wordpress" "nc -z 172.99.0.34 8080 &> /dev/null" "7" chown -R 755 /federated/apps/wordpress/data/bitnami/wordpress/wp-content chmod 740 /federated/apps/wordpress/data/bitnami/wordpress/wp-content/wp-config.php kill -9 $SPINPID &> /dev/null echo -ne "done." }