Dolibarr
Videos
Overview: Dolibarr 23 ERP CRM on Azure: overview (watch on YouTube)
Launch and log in: Dolibarr 23 ERP CRM on Azure: launch and log in (watch on YouTube)
Deep Dive: Dolibarr 23 ERP CRM on Azure: deep dive (watch on YouTube)
Overview
Dolibarr is an open-source ERP and CRM platform for small and medium businesses, freelancers and non-profit organizations. One web interface covers third-party management, commercial proposals, sales and purchase orders, customer and supplier invoices, a product and service catalog, stock and warehouse management, projects and time tracking, an agenda and a modular accounting suite. A large module ecosystem adds payments, email and external integrations.
This SecureAnyCloud image serves Dolibarr 23 with nginx and PHP 8.3 FPM on a hardened Ubuntu 24.04 LTS base, patched at build time. A bundled local MariaDB server makes the appliance complete on its own. The install wizard is pre-completed and locked, so the platform is ready the moment the instance boots.
What you get:
- Dolibarr 23 served by nginx and PHP 8.3 FPM, managed by systemd
- A bundled MariaDB server holding the Dolibarr database, already installed and ready
- The install wizard pre-completed and locked, so no setup wizard is ever exposed
- A per-VM administrator password generated on first boot and recorded in a root-only file
- No shipped default login: the administrator password ships rotated to a discarded random value, and the real per-VM password is set on first boot
- MariaDB bound to
127.0.0.1only, never exposed to the network (it listens on the loopback interface at 127.0.0.1:3306) - A dedicated Azure data disk carrying both the MariaDB database and Dolibarr's uploaded and generated documents
- A systemd timer running Dolibarr's scheduled jobs every five minutes
nginx.service,php8.3-fpm.serviceandmariadb.serviceas enabled systemd units- An unauthenticated
/healthzendpoint for Azure Load Balancer health probes - 24/7 SecureAnyCloud support
Prerequisites
You need an active Azure subscription, an SSH key pair, and a VNet with a subnet in the target region.
Standard_D2s_v3 (2 vCPU / 8 GiB RAM) is a sensible starting size for typical production use. A smaller size such as Standard_B2s works for a small team.
Configure the network security group (NSG) to allow inbound 22/tcp from your management network and 80/tcp for the application. Add 443/tcp if you terminate TLS on the VM. The bundled MariaDB listens on 127.0.0.1 only, so port 3306 stays off the network.
Step 1 - Deploy from the Azure Marketplace
Sign in to the Azure Portal, choose Create a resource, search the Marketplace for Dolibarr by SecureAnyCloud, and select Create.
On the Basics tab, pick your subscription, resource group, region and size. Under Administrator account, choose SSH public key and paste your key. Under Inbound port rules, allow SSH (22), HTTP (80) and HTTPS (443).
Review the dedicated data disk on the Disks tab, then select Review + create and Create.
Step 2 - Deploy from the Azure CLI
# Accept the Marketplace terms once per subscription (required before the first CLI deploy)
az vm image terms accept --urn sac1647283583153:dolibarr-ubuntu-24-04:default:latest
az vm create \
--resource-group <your-rg> \
--name dolibarr \
--image sac1647283583153:dolibarr-ubuntu-24-04:default:latest \
--size Standard_D2s_v3 \
--admin-username azureuser \
--generate-ssh-keys \
--public-ip-sku StandardThen open ports 80 and 443:
az vm open-port --resource-group <your-rg> --name dolibarr --port 80,443Step 3 - Confirm the services are running
SSH in as azureuser and confirm that nginx, PHP FPM, MariaDB and the first-boot service are all active. MariaDB listens only on 127.0.0.1:3306, while nginx serves Dolibarr on port 80.
systemctl is-active nginx php8.3-fpm mariadb dolibarr-firstbootss -tlnp | grep -E ':80 |:3306 ' | sed 's/ */ /g'Step 4 - Retrieve the per-VM administrator password
Each VM generates its own Dolibarr administrator password on first boot. It writes the password, the login user and the application URL to a root-only credentials file. Read it with sudo:
sudo cat /root/dolibarr-credentials.txtSign in to Dolibarr as user admin with the DOLIBARR_ADMIN_PASSWORD from this file.
With a Standard SKU public IP (the Azure default), the file's DOLIBARR_URL can show the VM's private address, for example http://10.0.0.4/. From your browser, use the VM's public IP or DNS name as in Step 5.
On the VM itself, run sudo mariadb to reach the database directly over the local socket without a password.
Step 5 - Sign in
Browse to http://<vm-public-ip>/. The Dolibarr sign-in page opens. Enter username admin and the password from Step 4.
After you sign in, the Dolibarr home dashboard summarizes your proposals, orders, invoices and agenda at a glance.
Step 6 - Set up your company and enable modules
Open Home, then Setup, then Company or Organization to set your company identity, currency and accounting preferences.
Next, open Home, then Setup, then Modules to enable the modules you need. The image already enables the core ERP and CRM modules (Third Parties, Products, Proposals, Orders, Invoices, Projects and Agenda). Enable more as your business grows, such as stock, accounting, expense reports or the REST API.
Step 7 - Manage third parties
Open Third parties in the top menu to create your customers, prospects and suppliers. Each third party holds contacts, addresses, bank details and the full history of proposals, orders and invoices raised against it.
Step 8 - Raise proposals, orders and invoices
Dolibarr models the full sales cycle. Create a commercial proposal for a third party and convert an accepted proposal into a sales order. Then generate a customer invoice from the order and record the payment against it.
Open Billing | Payment, then Customer invoices, to see and manage every invoice.
Step 9 - No known or default credentials
The image ships with the Dolibarr administrator password rotated to a discarded random value. Each VM generates its real administrator password, a unique random secret, on first boot. No known or blank credential authenticates.
The built-in round-trip check proves this. It confirms that the per-VM administrator signs in through Dolibarr's own login form, while a blank password and common weak guesses are all rejected. The admin account is the only Dolibarr super admin:
sudo mariadb --protocol=socket -uroot -N -e "SELECT CONCAT(login,' (Dolibarr super admin)') FROM dolibarr.llx_user WHERE admin=1"sudo bash /usr/local/sbin/dolibarr-cred-roundtrip.shStep 10 - Verify the stack and where your data lives
Confirm the installed Dolibarr release, the health endpoint and the dedicated data disk.
The MariaDB database lives on the data disk mounted at /data, which is bind-mounted onto /var/lib/mysql. Dolibarr's uploaded and generated documents live on the same disk at /data/dolibarr/documents. All of your business data is therefore kept separate from the operating system disk and travels with the VM:
sudo mariadb --protocol=socket -uroot -N -e "SELECT CONCAT('Dolibarr ',value) FROM dolibarr.llx_const WHERE name='MAIN_VERSION_LAST_INSTALL'"curl -sI http://127.0.0.1/healthz | head -1findmnt -no SOURCE,TARGET,FSTYPE,SIZE /data;
findmnt -no SOURCE,TARGET /var/lib/mysqlAdding your own domain and TLS
The appliance serves plain HTTP on port 80. For production, point a DNS record at your VM and obtain a certificate from Let's Encrypt:
sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d <your-domain>Dolibarr derives its base URL from the request Host header. Once you reach the VM on your domain over HTTPS, links render correctly with no further change.
To force HTTPS, set $dolibarr_main_force_https='1'; in /var/www/dolibarr/htdocs/conf/conf.php.
Scheduled jobs
A systemd timer runs Dolibarr's scheduled jobs (recurring invoices, email reminders and more) automatically every five minutes. Check the timer and its schedule:
systemctl status dolibarr-cron.timer --no-pager | head -5Backing up
Your business data is the Dolibarr database plus the uploaded and generated documents. Dump the database and archive the documents directory:
sudo mysqldump --protocol=socket -uroot dolibarr > /tmp/dolibarr-backup.sql
sudo tar czf /tmp/dolibarr-documents-backup.tar.gz -C /data/dolibarr documentsCopy both files off the VM on your usual schedule. To restore, load the SQL dump into the dolibarr database and unpack the archive back to /data/dolibarr/documents.
Security notes
- Encrypt web traffic. Dolibarr serves plain HTTP on port 80 out of the box. For anything beyond a trusted network, add your own domain and TLS as above, or front the VM with Azure Application Gateway.
- Keep MariaDB private. The bundled MariaDB listens on
127.0.0.1only and is never reachable from the network. Administer it through Dolibarr or over SSH withsudo mariadb. - Protect the administrator password. The password is unique per VM, and no known or blank credential authenticates. Keep
/root/dolibarr-credentials.txtprotected. To rotate the password, sign in and change it under Users and Groups, or set a new one directly on the VM:
sudo mariadb dolibarr -e "UPDATE llx_user SET pass_crypted=MD5('<new-password>'), pass=NULL WHERE login='admin'"- Configuration and uploads stay private. nginx denies the
/confand/documentstrees and dotfiles, so configuration and uploaded files are never reachable from the web. - Keep the VM patched. Apply operating system updates regularly with
sudo apt update && sudo apt upgrade. Unattended security updates are enabled by default. - Restrict network access. Limit inbound
80/tcpand443/tcpin your NSG to the networks that need access.
Trademark
Dolibarr is an open-source project distributed under the GNU General Public License version 3. This image is an independent packaging of the open-source Dolibarr software by SecureAnyCloud. It is not affiliated with, sponsored by or endorsed by the Dolibarr project or the Dolibarr Foundation.
Support
SecureAnyCloud maintains this image and provides 24/7 support. If you need help deploying or operating Dolibarr on Azure, contact us at secureanycloud.com.
Deploy on Azure
Launch Dolibarr 23 ERP CRM on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.
View this image
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com
Overview
Dolibarr is an open-source ERP and CRM platform. This SecureAnyCloud image runs Dolibarr behind nginx, with PHP FPM 8.3 and OPcache enabled. Business data and configuration are stored in MariaDB on the same instance, bound to the loopback interface only.
What you get:
- The Dolibarr code tree at
/var/www/dolibarr/htdocs, with uploaded and generated documents stored outside the web root at/var/www/dolibarr/documents - Both directories on a dedicated, independently resizable EBS volume, with the MariaDB data directory on a second dedicated volume, so the application tier and the database tier can each grow without touching the operating system disk
- Dolibarr's scheduled jobs running every five minutes through a systemd timer
- The install wizard already completed and locked, so there is no setup screen and you go straight to the sign-in page on first access
- Dolibarr administrator and MariaDB credentials generated on the first boot of every deployed instance, so two instances launched from the same Amazon Machine Image never share passwords
- The initial administrator password and the MariaDB password written to
/root/dolibarr-credentials.txtwith mode 0600, readable only by the root user
Dolibarr derives its base address from the host of each request, so the application works on whatever public DNS name or IP address users reach the instance on. There is no instance metadata lookup and no value to edit on first boot. Deployments behind an Application Load Balancer, in a private subnet or on a custom domain all work without changes.
Prerequisites
Before you deploy this image, you need:
- An Amazon Web Services account where you can launch EC2 instances
- IAM permissions to launch instances, create security groups and subscribe to AWS Marketplace products
- An EC2 key pair in the target Region for SSH access to the instance
- A VPC and subnet in the target Region, with a security group allowing inbound port 22 from your management network and inbound ports 80 and 443 from the networks your users will use
- The AWS CLI (version 2) installed locally, if you plan to deploy from the command line
Launch the Instance from the AWS Marketplace
Sign in to the AWS Management Console, open the EC2 service, and select Launch instance. Under Application and OS Images, choose AWS Marketplace AMIs and search for Dolibarr ERP CRM. Select the SecureAnyCloud listing, choose Select, then choose Continue on the subscription summary.
Pick an instance type of m5.large or larger, because the Dolibarr workload is PHP and MariaDB heavy. Choose your EC2 key pair under Key pair (login).
Under Network settings, select your VPC and subnet. Create or select a security group that allows inbound port 22 from your management network and inbound ports 80 and 443 from the networks your users use. Leave the root volume at the default size or larger.
Select Launch instance. First-boot initialization takes approximately one minute after the instance state becomes Running and the status checks pass.
Launch the Instance from the AWS CLI
Run the following command to launch an instance from the SecureAnyCloud Dolibarr Marketplace AMI into an existing subnet and security group. Replace <ami-id> with the AMI ID shown on the Marketplace listing, <key-name> with your EC2 key pair name, <subnet-id> with your subnet ID, and <security-group-id> with a security group that opens ports 22, 80 and 443 as described above.
aws ec2 run-instances \
--image-id <ami-id> \
--instance-type m5.large \
--key-name <key-name> \
--subnet-id <subnet-id> \
--security-group-ids <security-group-id> \
--block-device-mappings '[{"DeviceName":"/dev/sda1","Ebs":{"VolumeSize":30,"VolumeType":"gp3"}}]' \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=dolibarr-01}]'On success, the command prints a JSON document. Note the instance ID. Once the instance is running, retrieve its public address with aws ec2 describe-instances --instance-ids <instance-id> --query "Reservations[].Instances[].PublicIpAddress" --output text.
Connect and Retrieve Initial Credentials
Connect over SSH with the key pair you selected and the public IP address from Step 2. The SSH login user depends on the operating system of the AMI variant you launched. For Dolibarr 23 on Ubuntu 24.04, the login user is ubuntu:
ssh -i <path-to-key.pem> ubuntu@<instance-public-ip>The instance generates the initial Dolibarr administrator password and the MariaDB password on first boot and stores them in a root-only file. Print them with:
sudo cat /root/dolibarr-credentials.txtThe file lists the Dolibarr sign-in URL, the administrator user name (admin) and password, and the MariaDB database name, user and password. Store these somewhere safe and treat the file as sensitive.
Sign In to Dolibarr
Open http://<instance-public-ip>/ in your browser. The Dolibarr sign-in page is served immediately. The install wizard is already completed and locked, so there is no setup to perform.
Sign in as the admin user with the password from /root/dolibarr-credentials.txt. You land on the Dolibarr home dashboard, which shows the open business indicators (proposals, orders, invoices, projects and more) and the working board.
Manage Third Parties (Customers and Suppliers)
Dolibarr organizes customers, prospects and suppliers as third parties. Open the Third parties area from the top menu to create and browse companies and the contacts attached to them.
From a third-party record, you can raise proposals, orders, invoices and contracts and see the full commercial history in one place.
Work with Invoices
Open the Billing | Payment area to create and manage customer invoices, record payments and follow the unpaid balance.
You can raise invoices directly or generate them from a validated proposal or sales order. Dolibarr produces a PDF for each one.
Enable Additional Modules
Dolibarr delivers its functionality through modules. This image ships with the core ERP and CRM modules already enabled: third parties, products and services, proposals, sales orders and invoices, the agenda and user management.
To turn on more modules (projects, stock, accounting, ticketing, members, point of sale and many others), open Home > Setup > Modules/Applications, find the module and switch it on. New menus appear immediately.
To change the company identity used on documents, open Home > Setup > Company/Organization and edit the name, address, country and logo. Dolibarr uses these values on every generated proposal, order and invoice PDF.
Configure Outbound Email
Dolibarr sends quotes, orders and invoices by email and runs email-driven workflows. Open Home > Setup > Emails and enter your SMTP relay host, port and any authentication credentials. Then send a test message from the same page.
Using a managed relay such as Amazon SES keeps your instance off shared deny lists and improves deliverability.
Enable HTTPS with Let's Encrypt
For production use, place Dolibarr behind HTTPS. Point a DNS name at the instance and open inbound port 443, then install Certbot and request a certificate. Run the commands below in order, and substitute your own domain name.
Install Certbot and the nginx plugin:
sudo apt-get update
sudo apt-get install -y certbot python3-certbot-nginxThen request and install a certificate for your domain. Certbot prompts for an email address and agreement to the terms of service, edits the nginx server block in place and reloads nginx:
sudo certbot --nginx -d your-domain.example.comCertbot installs a renewal timer automatically. After HTTPS is active, you can set $dolibarr_main_force_https to 1 in /var/www/dolibarr/htdocs/conf/conf.php to force all traffic onto HTTPS.
Backup and Maintenance
Two pieces of state matter: the MariaDB database and the documents directory. Back up the database with a logical dump, and archive the documents tree:
sudo mysqldump --single-transaction dolibarr | gzip > /tmp/dolibarr-db-$(date +%F).sql.gz
sudo tar czf /tmp/dolibarr-documents-$(date +%F).tar.gz -C /var/www/dolibarr documentsThe database lives on its own EBS volume mounted at /var/lib/mysql, and the application and documents live on a second EBS volume mounted at /var/www. You can snapshot those volumes with Amazon EBS snapshots for point-in-time recovery. You can also grow either tier independently with a volume resize followed by a filesystem grow.
Apply operating system security updates with sudo apt-get update && sudo apt-get upgrade.
To upgrade Dolibarr itself, replace the code tree with a newer release and run its upgrade process. Review the Dolibarr release notes first, and take a database and documents backup before you upgrade a production instance.
Service Layout Reference
- Web server: nginx, document root /var/www/dolibarr/htdocs
- PHP: PHP FPM 8.3 with OPcache
- Database: MariaDB on localhost, data directory /var/lib/mysql (dedicated EBS volume)
- Documents: /var/www/dolibarr/documents (dedicated EBS volume, outside the web root)
- Configuration: /var/www/dolibarr/htdocs/conf/conf.php
- Credentials: /root/dolibarr-credentials.txt (mode 0600)
- Scheduled jobs: dolibarr-cron.timer, every five minutes
- First-boot service: dolibarr-firstboot.service
Support
SecureAnyCloud supports this image 24/7. Contact us for help with Dolibarr deployment, module activation, upgrades, performance tuning and database administration.
Deploy on AWS
Launch Dolibarr ERP CRM on AWS with 24/7 support from SecureAnyCloud.
View on Marketplace
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com