feat: v2.0.0 production-ready release with Redis, OPcache and Nginx optimizations

This commit is contained in:
Sebastian Palencsár
2025-06-21 00:08:09 +02:00
parent d3009617e4
commit e199772e92
55 changed files with 3408 additions and 3886 deletions

View File

@@ -1,36 +0,0 @@
# Docker Test Environment Inventory
# This inventory is configured for the Docker testing environment
[testservers]
127.0.0.1 ansible_port=2222 ansible_user=root ansible_ssh_pass=root_password
[testservers:vars]
# Test WordPress Configuration
wp_admin_user=admin
wp_admin_password=admin123
wp_admin_email=admin@example.com
wp_site_title=WordPress Test Site
wp_site_url=http://localhost:8080
# Test Database Configuration
mysql_root_password=secure_root_pass_123
wordpress_db_name=wordpress
wordpress_db_user=wp_user
wordpress_db_password=wp_secure_pass_123
# PHP Configuration
php_version=8.3
php_max_execution_time=300
php_memory_limit=256M
php_upload_max_filesize=64M
# Nginx Configuration
nginx_client_max_body_size=64M
# Test Configuration
enable_ssl=false
timezone=UTC
# Ansible Configuration
ansible_host_key_checking=False
ansible_python_interpreter=/usr/bin/python3

31
inventory/docker.yml Normal file
View File

@@ -0,0 +1,31 @@
# Docker Testing Environment Inventory
# For testing deployments before production
wordpress_servers:
hosts:
docker-test:
ansible_host: localhost
ansible_port: 2222
ansible_user: ansible
ansible_ssh_pass: ansible123
ansible_become_pass: ansible123
domain_name: localhost
# SSL Configuration (usually disabled for testing)
ssl_enabled: false
# WordPress Database (Test credentials)
mysql_root_password: "test_root_password"
wordpress_db_name: "wordpress"
wordpress_db_user: "wp_user"
wordpress_db_password: "test_wp_password"
# WordPress Admin (Test credentials)
wp_admin_user: "admin"
wp_admin_password: "test_admin_password"
wp_admin_email: "admin@localhost"
wp_site_title: "Test WordPress Site"
# Ultimate Features (for testing Ultimate-Playbook)
enable_redis: true
enable_opcache: true

View File

@@ -1,39 +0,0 @@
# Production Server Inventory Example
# Copy this file to production.ini and customize for your servers
[webservers]
# Replace with your actual server IP or domain
your-server.example.com ansible_user=ubuntu ansible_ssh_private_key_file=~/.ssh/your-key.pem
# Alternative with password authentication (not recommended for production)
# your-server.example.com ansible_user=ubuntu ansible_ssh_pass=your_password
[webservers:vars]
# WordPress Configuration
wp_admin_user=admin
wp_admin_password=change_this_secure_password_123
wp_admin_email=admin@yoursite.com
wp_site_title=My WordPress Site
wp_site_url=https://yoursite.com
# Database Configuration
mysql_root_password=very_secure_root_password_123
wordpress_db_name=wordpress
wordpress_db_user=wp_user
wordpress_db_password=secure_wp_db_password_123
# PHP Configuration
php_version=8.3
php_max_execution_time=300
php_memory_limit=256M
php_upload_max_filesize=64M
# Nginx Configuration
nginx_client_max_body_size=64M
# SSL Configuration (set to true for Let's Encrypt)
enable_ssl=false
ssl_email=admin@yoursite.com
# System Configuration
timezone=UTC

32
inventory/production.yml Normal file
View File

@@ -0,0 +1,32 @@
# Production Server Configuration
# SECURITY: Change all passwords before deployment!
wordpress_servers:
hosts:
your-server.example.com:
ansible_host: YOUR_SERVER_IP
ansible_user: your_user
# ansible_ssh_pass: "your_password" # Use SSH keys instead!
# ansible_become_pass: "your_sudo_password" # Use passwordless sudo instead!
domain_name: example.com
# SSL Configuration
ssl_enabled: false # Set to true for HTTPS with Let's Encrypt
ssl_email: admin@example.com # Required if ssl_enabled=true
# WordPress Database (CHANGE THESE!)
mysql_root_password: "CHANGE_ME_ROOT_PASSWORD"
wordpress_db_name: "wordpress"
wordpress_db_user: "wp_user"
wordpress_db_password: "CHANGE_ME_WP_PASSWORD"
# WordPress Admin (CHANGE THESE!)
wp_admin_user: "admin"
wp_admin_password: "CHANGE_ME_ADMIN_PASSWORD"
wp_admin_email: "admin@example.com"
wp_site_title: "My WordPress Site"
# Ultimate Performance Features (for lemp-wordpress-ultimate.yml)
enable_redis: false # Redis object caching
enable_opcache: false # PHP OPcache optimization
enable_nginx_optimization: false # Advanced Nginx performance tuning

View File

@@ -0,0 +1,46 @@
# Production Server Inventory Template
# Copy this to production.yml and adapt to your environment
# SECURITY: Use Ansible Vault for passwords!
wordpress_servers:
hosts:
your-server.example.com:
ansible_host: YOUR_SERVER_IP
ansible_user: your_user
# ansible_ssh_pass: "your_password" # Use SSH keys instead!
# ansible_become_pass: "your_sudo_password" # Use passwordless sudo instead!
domain_name: example.com
# SSL Configuration
ssl_enabled: false # Set to true for HTTPS with Let's Encrypt
ssl_email: admin@example.com # Required if ssl_enabled=true
# WordPress Database (CHANGE THESE! Use Ansible Vault!)
mysql_root_password: "{{ vault_mysql_root_password }}"
wordpress_db_name: "wordpress"
wordpress_db_user: "wp_user"
wordpress_db_password: "{{ vault_wordpress_db_password }}"
# WordPress Admin (CHANGE THESE! Use Ansible Vault!)
wp_admin_user: "admin"
wp_admin_password: "{{ vault_wp_admin_password }}"
wp_admin_email: "admin@example.com"
wp_site_title: "My WordPress Site"
# Ultimate Performance Features (for lemp-wordpress-ultimate.yml)
enable_redis: true # Enable Redis object caching
enable_opcache: true # Enable PHP OPcache
# Performance Tuning (optional overrides)
php_memory_limit: 512M
php_upload_max_filesize: 128M
redis_maxmemory: 256mb
# Group variables (apply to all hosts)
wordpress_servers:
vars:
# Common settings
ansible_python_interpreter: /usr/bin/python3
# WordPress settings
wp_debug: false # Set to true for development/debugging

View File

@@ -1,36 +0,0 @@
# Staging Server Inventory Example
# Copy this file to staging.ini and customize for your staging servers
[stagingservers]
# Replace with your staging server details
staging.yoursite.com ansible_user=ubuntu ansible_ssh_private_key_file=~/.ssh/staging-key.pem
[stagingservers:vars]
# Staging WordPress Configuration
wp_admin_user=admin
wp_admin_password=staging_password_123
wp_admin_email=staging@yoursite.com
wp_site_title=WordPress Staging Site
wp_site_url=https://staging.yoursite.com
# Staging Database Configuration
mysql_root_password=staging_root_password_123
wordpress_db_name=wordpress_staging
wordpress_db_user=wp_staging_user
wordpress_db_password=staging_wp_password_123
# PHP Configuration
php_version=8.3
php_max_execution_time=300
php_memory_limit=256M
php_upload_max_filesize=64M
# Nginx Configuration
nginx_client_max_body_size=64M
# SSL Configuration
enable_ssl=true
ssl_email=admin@yoursite.com
# System Configuration
timezone=UTC