diff --git a/Lenvi.yaml b/Lenvi.yaml index dca1022..ed2133d 100644 --- a/Lenvi.yaml +++ b/Lenvi.yaml @@ -5,9 +5,11 @@ # Optional developer utilities utilities: phpmyadmin: - enabled: true + enabled: false domain: "pma.lenvi.local" # Or whatever you prefer - php_version: "8.2" + php_version: "8.2" # This must be one of the php version/s you set on your sites/projects + redis: + enabled: false # 1. Set the global database engine. db_engine: "mariadb" # mariadb, mysql or postgresql @@ -20,23 +22,25 @@ db_credentials: # 3. Define all your web sites below. # WSL users: Ensure these paths are correct for your WSL environment. # If your project directory is on windows filesystem use /mnt/c i.e., /mnt/c/Users/YourUser/projects/laravel +# project_root -> root directory of your project +# document_root -> directory where your index.php lives sites: # Example for a standard Laravel project - domain: mylaravelapp.local - project_root: /home/lenvi/projects/laravel # For Composer - document_root: /home/lenvi/projects/laravel/public # For Nginx + project_root: /home/lenvi/projects/laravel + document_root: /home/lenvi/projects/laravel/public php_version: "8.2" database: "laravel_db" # Example for a legacy project or a non-Laravel PHP project - - domain: local-api.domain.com - project_root: /home/lenvi/projects/legacy-site # For Composer - document_root: /home/lenvi/projects/legacy-site # Nginx serves from the root + - domain: mylegacyapp.local + project_root: /home/lenvi/projects/legacy-site + document_root: /home/lenvi/projects/legacy-site php_version: "8.0" database: "legacy_db" # Example for a simple site (no DB) - - domain: phpmyadmin.local - project_root: /home/lenvi/projects/phpmyadmin # Directory for management - document_root: /home/lenvi/projects/phpmyadmin # Nginx serves from the root + - domain: simple.local + project_root: /home/lenvi/projects/simple + document_root: /home/lenvi/projects/simple php_version: "8.3" \ No newline at end of file diff --git a/playbook.yml b/playbook.yml index d11b403..f716dee 100644 --- a/playbook.yml +++ b/playbook.yml @@ -19,4 +19,6 @@ - role: nginx - role: phpmyadmin when: utilities.phpmyadmin.enabled is defined and utilities.phpmyadmin.enabled + - role: redis + when: utilities.redis.enabled is defined and utilities.redis.enabled - role: projects \ No newline at end of file diff --git a/roles/redis/handlers/main.yml b/roles/redis/handlers/main.yml new file mode 100644 index 0000000..f34a4a8 --- /dev/null +++ b/roles/redis/handlers/main.yml @@ -0,0 +1,6 @@ +--- +- name: "Restart PHP-FPM Services for Redis" + ansible.builtin.service: + name: "php{{ item }}-fpm" + state: restarted + loop: "{{ php_versions_to_install }}" \ No newline at end of file diff --git a/roles/redis/tasks/main.yml b/roles/redis/tasks/main.yml new file mode 100644 index 0000000..d6a9a4f --- /dev/null +++ b/roles/redis/tasks/main.yml @@ -0,0 +1,19 @@ +--- +- name: "Install Redis Server from APT" + ansible.builtin.apt: + name: redis-server + state: present + update_cache: yes + +- name: "Ensure Redis service is running and enabled" + ansible.builtin.service: + name: redis-server + state: started + enabled: yes + +- name: "Install Redis PHP extension for all managed PHP versions" + ansible.builtin.apt: + name: "php{{ item }}-redis" + state: present + loop: "{{ php_versions_to_install }}" + notify: Restart PHP-FPM Services for Redis \ No newline at end of file