This guide provides a full Ansible playbook to deploy Dolibarr natively on Debian 10+, Ubuntu LTS, and RHEL 9+ compatible hosts without Docker.
- name: Deploy Dolibarr (Native)
hosts: dolibarr
become: true
vars:
app_root: /var/www/dolibarr
app_user: www-data
app_group: www-data
app_port: 8081
db_name: dolibarr
db_user: dolibarr
db_password: "{{ vault_dolibarr_db_password | default('change-me') }}"
tasks:
- name: Install dependencies on Debian/Ubuntu
apt:
name:
- apache2
- mariadb-server
- mariadb-client
- php
- php-mysql
- php-curl
- php-gd
- php-xml
- php-mbstring
- php-zip
- libapache2-mod-php
state: present
update_cache: true
when: ansible_os_family == "Debian"
- name: Enable and start services
service:
name: "{{ item }}"
state: started
enabled: true
loop:
- mariadb
- apache2
when: ansible_os_family == "Debian"
- name: Create application directory
file:
path: "{{ app_root }}"
state: directory
owner: "{{ app_user }}"
group: "{{ app_group }}"
mode: "0755"
- name: Clone Dolibarr repository
git:
repo: https://github.com/Dolibarr/dolibarr.git
dest: "{{ app_root }}"
version: stable
become_user: "{{ app_user }}"
- name: Create documents directory
file:
path: "{{ app_root }}/documents"
state: directory
owner: "{{ app_user }}"
group: "{{ app_group }}"
mode: "0755"
- name: Create database
mysql_db:
name: "{{ db_name }}"
state: present
login_unix_socket: /var/run/mysqld/mysqld.sock
login_user: root
- name: Create database user
mysql_user:
name: "{{ db_user }}"
password: "{{ db_password }}"
priv: "{{ db_name }}.*:ALL"
state: present
login_unix_socket: /var/run/mysqld/mysqld.sock
login_user: root
- name: Create Apache virtual host
copy:
dest: /etc/apache2/sites-available/dolibarr.conf
mode: "0644"
content: |
<VirtualHost *:{{ app_port }}>
ServerAdmin webmaster@localhost
DocumentRoot {{ app_root }}/htdocs
<Directory {{ app_root }}>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/dolibarr_error.log
CustomLog ${APACHE_LOG_DIR}/dolibarr_access.log combined
</VirtualHost>
when: ansible_os_family == "Debian"
- name: Enable Apache site
command: a2ensite dolibarr
args:
creates: /etc/apache2/sites-enabled/dolibarr.conf
when: ansible_os_family == "Debian"
- name: Restart Apache
service:
name: apache2
state: restarted
when: ansible_os_family == "Debian"
http://SERVER-IP:8081.Beyond this playbook, we offer:
Contact our automation team: office@linux-server-admin.com