3.2.1. Instalar Dolibarr y Talerbarr desde la línea de comandos#

Importante: Este no es un tutorial de instalación oficial de Dolibarr. Se ofrece únicamente como guía completa de extremo a extremo para instalar el módulo Talerbarr, utilizando específicamente una instalación basada en carpetas en lugar de la instalación a través de la interfaz de Dolibarr o de Dolistore.

Este tutorial está pensado para usuarios con cierta experiencia en desarrollo o administración de sistemas. Si nunca ha utilizado herramientas de línea de comandos, considere una forma más accesible de obtener Dolibarr, como una solución SaaS aprobada por el equipo de Dolibarr.

3.2.1.1. Tener un servidor Debian#

Asegúrese de disponer de un servidor Debian en funcionamiento con acceso sudo antes de continuar. Para esta instalación, Dolibarr se ejecutará en Podman sin privilegios (rootless) como usuario normal, mientras que sudo se utiliza únicamente para la instalación de paquetes y la configuración inicial del sistema. Podman sin privilegios es un modo oficialmente compatible, y para los servicios de usuario que deben sobrevivir al cierre de sesión y arrancar al iniciar el sistema, la guía de Podman/systemd recomienda habilitar el «lingering» para ese usuario.

3.2.1.2. Configurar un registro DNS#

Cree un nuevo registro DNS con su registrador de dominios:

Tipo: A

Nombre: erp, dolibarr, u otro subdominio de su elección

Valor: Dirección IP de su servidor

3.2.1.3. Instalación en Debian#

Instale Podman y las herramientas necesarias para contenedores sin privilegios:

sudo apt update
sudo apt upgrade -y
sudo apt install -y podman podman-compose uidmap slirp4netns fuse-overlayfs passt aardvark-dns

3.2.1.4. Crear un usuario dedicado para Dolibarr#

Cree un usuario dedicado sin privilegios que será propietario de la pila de Dolibarr y la ejecutará:

sudo adduser --disabled-password --gecos "" dolibarr
sudo loginctl enable-linger dolibarr

El comando loginctl enable-linger es importante porque, de lo contrario, los servicios systemd de nivel de usuario se detienen cuando finaliza la última sesión de ese usuario.

3.2.1.5. Crear un proxy inverso#

Es totalmente libre de configurarlo de la forma que prefiera; en general no hay una forma correcta o incorrecta. Aquí simplemente se describe cómo preparamos el sistema para completar el texto y las imágenes de los tutoriales.

Instale Nginx y Certbot en el host:

sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx

Cree /etc/nginx/sites-available/dolibarr.conf con el siguiente contenido, sustituyendo erp.example.com por su dominio real:

server {
    listen 80;
    listen [::]:80;
    server_name erp.example.com;

    client_max_body_size 64M;

    location / {
        proxy_pass http://127.0.0.1:2793;
        proxy_http_version 1.1;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Port $server_port;
    }
}

Habilite el sitio y recargue Nginx:

sudo ln -s /etc/nginx/sites-available/dolibarr.conf /etc/nginx/sites-enabled/dolibarr.conf
sudo nginx -t
sudo systemctl reload nginx

Solicite un certificado de Let’s Encrypt:

sudo certbot --nginx -d erp.example.com

Una vez emitido correctamente el certificado, Certbot actualizará la configuración de Nginx para habilitar HTTPS y redirigir el tráfico HTTP a HTTPS.

3.2.1.6. Convertirse en el usuario de Dolibarr#

Cambie al nuevo usuario:

sudo -iu dolibarr

Todos los comandos de Podman restantes de este tutorial deben ejecutarse como este usuario para que el despliegue siga siendo sin privilegios.

3.2.1.7. Crear directorios persistentes#

Cree los directorios que contendrán los datos persistentes:

mkdir -p ~/dolibarr/{mariadb,documents,custom}
cd ~/dolibarr

Todo esto debe hacerse para que no pierda datos en caso de reinicio o de actualización de Dolibarr a una versión más reciente.

3.2.1.8. Crear el archivo de entorno#

Create a .env file for database and Dolibarr settings:

cat > .env <<'EOF'
MYSQL_ROOT_PASSWORD=CHANGE_THIS_ROOT_PASSWORD
MYSQL_DATABASE=dolidb
MYSQL_USER=dolidbuser
MYSQL_PASSWORD=CHANGE_THIS_DB_PASSWORD

DOLI_INSTALL_AUTO=1
DOLI_INIT_DEMO=0
DOLI_PROD=1
DOLI_DB_HOST=mariadb
DOLI_DB_HOST_PORT=3306
DOLI_DB_NAME=dolidb
DOLI_DB_USER=dolidbuser
DOLI_DB_PASSWORD=CHANGE_THIS_DB_PASSWORD
DOLI_URL_ROOT=https://erp.example.com
DOLI_ADMIN_LOGIN=admin
DOLI_ADMIN_PASSWORD=CHANGE_THIS_ADMIN_PASSWORD

WWW_USER_ID=1000
WWW_GROUP_ID=1000
EOF

Estas variables forman parte de la interfaz oficial del contenedor de Dolibarr. Verifique siempre que no hayan cambiado y que no se hayan introducido nuevas restricciones o recomendaciones antes de continuar.

3.2.1.9. Crear el archivo compose#

Cree compose.yml:

cat > compose.yml <<'EOF'
services:
  mariadb:
    image: docker.io/library/mariadb:latest
    container_name: dolibarr-mariadb
    env_file:
      - .env
    volumes:
      - ./mariadb:/var/lib/mysql:Z
    restart: unless-stopped

  web:
    image: docker.io/dolibarr/dolibarr:latest
    container_name: dolibarr-web
    env_file:
      - .env
    depends_on:
      - mariadb
    ports:
      - "2793:80"
    volumes:
      - ./documents:/var/www/documents:Z
      - ./custom:/var/www/html/custom:Z
    restart: unless-stopped
EOF

3.2.1.10. Iniciar Dolibarr#

Inicie la pila:

podman-compose up -d
podman-compose logs

Compruebe que el servicio comercial está activo:

podman ps
podman-compose logs

Abra su navegador y vaya a:

https://erp.example.com

Si todo está configurado correctamente, debería ver la interfaz web de Dolibarr a través de HTTPS.

3.2.1.11. Instalar módulos personalizados#

Ahora puede colocar módulos en el directorio ~/dolibarr/custom. Para el ejemplo del módulo TalerBarr, continúe con Instalar desde el repositorio de código fuente.