This repository contains the configuration and setup for the Global Evangelistic Network WordPress website.
.
├── .git
├── .gitignore
├── README.md
├── stack.yml
└── .env.example
- Docker
- Docker Swarm
- Traefik (configured and running)
-
Clone this repository:
git clone https://github.com/mtcaddy/gen-wordpress.git cd gen-wordpress
-
For local development, copy the
.env.example
file to.env
and fill in the necessary environment variables:cp .env.example .env
-
For Docker Swarm deployment, create the required secrets:
echo "your_wordpress_database_password" | docker secret create wp_db_password - echo "your_database_root_password" | docker secret create db_root_password -
Password can be generated by
WP_DB_PASSWORD=$(openssl rand -base64 32) DB_ROOT_PASSWORD=$(openssl rand -base64 32) echo $WP_DB_PASSWORD | docker secret create wp_db_password - echo $DB_ROOT_PASSWORD | docker secret create db_root_password - echo "WordPress DB Password: $WP_DB_PASSWORD" echo "DB Root Password: $DB_ROOT_PASSWORD" ```
-
Deploy the stack:
WP_NODE_HOSTNAME=master-3 docker stack deploy -c stack.yml gen
- The WordPress site will be available at
https://gen.my.kipya-connect.com
- Traefik is configured to handle SSL termination
- WordPress and MariaDB data are persisted in Docker volumes
- The services are constrained to run on a specific node for data persistence
- Sensitive information is managed using Docker secrets
The following environment variables are used in the stack deployment:
WP_NODE_HOSTNAME
: The hostname of the node where WordPress and MariaDB should run
The following Docker secrets are used:
wp_db_password
: The password for the WordPress database userdb_root_password
: The root password for the MariaDB database
- Theme: Holy Church (https://themeforest.net/item/holy-church-religion-nonprofit-theme/20249696)
- Required Plugins:
- Contact Form 7
- The Events Calendar
- WPML (for multi-language support)
- Donation Plugin (e.g., Give - Donation Plugin)
To update WordPress or plugins, use the WordPress admin interface. If you need to update the Docker image:
- Update the image version in
stack.yml
- Redeploy the stack:
WP_NODE_HOSTNAME=your_node_hostname docker stack deploy -c stack.yml gen
Regularly backup the wp_data
and db_data
volumes. You can use Docker volume backup tools or scripts to automate this process.