# Installing Dolibarr with Docker for a small web project

**URL:** <https://www.dolibarr.org/forum/t/installing-dolibarr-with-docker-for-a-small-web-project/31234>\
**Category:** Installing my Dolibarr\
**Created:** [July 1, 2026, 5:30pm UTC](https://www.dolibarr.org/forum/t/installing-dolibarr-with-docker-for-a-small-web-project/31234 "2026-07-01T17:30:42Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![kaileyketchum](https://www.dolibarr.org/forum/letter_avatar_proxy/v4/letter/k/87869e/32.png) [@kaileyketchum](https://www.dolibarr.org/forum/u/kaileyketchum)\
**Post date:** [July 1, 2026, 5:30pm UTC](https://www.dolibarr.org/forum/t/installing-dolibarr-with-docker-for-a-small-web-project/31234/1 "2026-07-01T17:30:42Z")

</div>

I’m setting up Dolibarr with Docker to manage a small web project and would like to make sure I’m following current best practices before going live.

For those who’ve deployed Dolibarr this way, did you run into any issues with file permissions, database initialization, or upgrades? I’d also appreciate any recommendations for backup strategies or configuration tips that have worked well in production.

If there are any official guides or community resources you’d recommend so I can [learn more](https://geometrrydashapk.com/) about maintaining a Docker-based installation, I’d be grateful for the suggestions.

Thanks in advance for your help!

---

<div class="post-metadata">

**Author:** ![MuhammadAli.Dev](https://www.dolibarr.org/forum/letter_avatar_proxy/v4/letter/m/3d9bf3/32.png) [@MuhammadAli.Dev](https://www.dolibarr.org/forum/u/MuhammadAli.Dev)\
**Post date:** [July 2, 2026, 6:21pm UTC](https://www.dolibarr.org/forum/t/installing-dolibarr-with-docker-for-a-small-web-project/31234/2 "2026-07-02T18:21:27Z")

</div>

The main gotchas with Docker + Dolibarr: map persistent volumes for both `/var/www/documents` (file uploads and generated documents) and your database data directory — lose either and you lose data. The official image is `dolibarr/dolibarr` on Docker Hub; pair it with a MariaDB container via docker-compose. File permissions are usually fine if your volumes are writable by `www-data` (UID 33 on Debian-based images).

For upgrades, the image supports a `DOLI_VERSION` env var that triggers the upgrade wizard automatically on container restart — read the image docs carefully before doing this in production, and always back up first. For backups, `mysqldump` the database and snapshot the documents volume; you need both together to restore cleanly.

— Ali — Dolibarr AI Consultant / [SiliconBlaze.com](http://SiliconBlaze.com)

---

<div class="post-metadata">

**Author:** ![defrance](https://www.dolibarr.org/forum/user_avatar/www.dolibarr.org/defrance/32/8146_2.png) [@defrance](https://www.dolibarr.org/forum/u/defrance)\
**Post date:** [July 7, 2026, 11:25am UTC](https://www.dolibarr.org/forum/t/installing-dolibarr-with-docker-for-a-small-web-project/31234/3 "2026-07-07T11:25:06Z")

</div>

> **[GitHub - defrance/docker-dolibarr-dev: A docker setting dedicated to developpement and...](https://github.com/defrance/docker-dolibarr-dev)**
>
> A docker setting dedicated to developpement and maintain dolibarr core and module

---

<div class="post-metadata">

**Author:** ![jonbendtsen](https://www.dolibarr.org/forum/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jonbendtsen](https://www.dolibarr.org/forum/u/jonbendtsen)\
**Post date:** [September 1, 2026, 2:16pm UTC](https://www.dolibarr.org/forum/t/installing-dolibarr-with-docker-for-a-small-web-project/31234/4 "2026-09-01T14:16:51Z")

</div>

hey @kaileyketchum

I’ve used Dolibarr running in a Podman pod with some containers for 3 years.

I only export 2 ports, port 80 for dolibarr, and then also port 8036 for phpmyadmin, though I only ever start phpmyadmin when I need it, else it is a dormant or perhaps even non existing container.

I use mariadb latest, and it runs in it’s own container, and it is hidden inside the pod.

Dolibarr is also a container, running inside the pod.

Both dolibarr and mariadb uses persistent volumes.

Upgrading to a new Dolibarr version is simple. Just stop and remove the old version Dolibarr and leave the mariadb running. Then start a new dolibarr container with almost the same setup, only the version is different. Then you follow the instructions on the website - BUT - be careful, at this point your dolibarr upgrade process is not protected - anyone can view it.

What you could do here is define your pod with a second port, like 8080 which is for a dolibarr container only used for upgrading, and this port has extra protection such that only you can access the upgrade process. After the upgrade, just stop the upgrade dolibarr, and start the production dolibarr container. NOTE they should use the same version!

Use a 3. dolibarr container of the same version as the scheduler container.

The good thing about a podman pod setup is that all network traffic to localhost stays inside the pod, so Dolibarr talks to mariadb running at localhost, and mariadb is never exposted outside.

I regularly dump the mariadb database and store the dump off site.

I’ve got a dolibarr\_devtainer project on github - I only use it for development, for running in production I start it using ansible, and my pods and containers are systemd services that start when the server starts.

> **[GitHub - JonBendtsen/dolibarr\_devtainer: Development container setup for dolibarr](https://github.com/JonBendtsen/dolibarr_devtainer)**
>
> Development container setup for dolibarr
