This guide installs DomainMOD with Apache, PHP, and MariaDB for self-hosted domain asset management.
- name: Install DomainMOD on Debian family
hosts: domainmod_debian
become: true
vars:
domainmod_web_root: /var/www/domainmod
domainmod_repo: "https://github.com/domainmod/domainmod.git"
domainmod_version: "master"
domainmod_db_name: domainmod
domainmod_db_user: domainmod
domainmod_db_password: change-me
tasks:
- name: Install required packages
ansible.builtin.apt:
update_cache: true
name:
- apache2
- mariadb-server
- php
- php-mysql
- php-xml
- php-mbstring
- php-curl
- git
state: present
- name: Clone DomainMOD repository
ansible.builtin.git:
repo: "{{ domainmod_repo }}"
dest: "{{ domainmod_web_root }}"
version: "{{ domainmod_version }}"
force: false
- name: Set ownership for web root
ansible.builtin.file:
path: "{{ domainmod_web_root }}"
state: directory
recurse: true
owner: www-data
group: www-data
- name: Create DomainMOD database
community.mysql.mysql_db:
name: "{{ domainmod_db_name }}"
state: present
- name: Create DomainMOD database user
community.mysql.mysql_user:
name: "{{ domainmod_db_user }}"
password: "{{ domainmod_db_password }}"
priv: "{{ domainmod_db_name }}.*:ALL"
host: localhost
state: present
- name: Enable and start Apache and MariaDB
ansible.builtin.systemd:
name: "{{ item }}"
enabled: true
state: started
loop:
- apache2
- mariadb
- name: Install DomainMOD on RHEL family
hosts: domainmod_rhel
become: true
vars:
domainmod_web_root: /var/www/html/domainmod
domainmod_repo: "https://github.com/domainmod/domainmod.git"
domainmod_version: "master"
domainmod_db_name: domainmod
domainmod_db_user: domainmod
domainmod_db_password: change-me
tasks:
- name: Install required packages
ansible.builtin.dnf:
name:
- httpd
- mariadb-server
- php
- php-mysqlnd
- php-xml
- php-mbstring
- php-curl
- git
state: present
- name: Clone DomainMOD repository
ansible.builtin.git:
repo: "{{ domainmod_repo }}"
dest: "{{ domainmod_web_root }}"
version: "{{ domainmod_version }}"
force: false
- name: Set ownership for web root
ansible.builtin.file:
path: "{{ domainmod_web_root }}"
state: directory
recurse: true
owner: apache
group: apache
- name: Create DomainMOD database
community.mysql.mysql_db:
name: "{{ domainmod_db_name }}"
state: present
- name: Create DomainMOD database user
community.mysql.mysql_user:
name: "{{ domainmod_db_user }}"
password: "{{ domainmod_db_password }}"
priv: "{{ domainmod_db_name }}.*:ALL"
host: localhost
state: present
- name: Enable and start Apache and MariaDB
ansible.builtin.systemd:
name: "{{ item }}"
enabled: true
state: started
loop:
- httpd
- mariadb
ansible-playbook -i inventory.ini domainmod-install.yml
domainmod_debian.community.mysql collection for DB tasks: ansible-galaxy collection install community.mysql.Need help automating domain tracking and SSL certificate management? We provide consulting for DomainMOD deployments, registrar API integrations, and custom reporting automation. Contact office@linux-server-admin.com or visit our contact page.