3.2.1. Instalar o Dolibarr e o Talerbarr a partir da linha de comandos#

Importante: Este não é um tutorial oficial de instalação do Dolibarr. É fornecido apenas como um guia completo, do início ao fim, para instalar o módulo Talerbarr, utilizando especificamente uma instalação baseada em pastas em vez da instalação através da interface do Dolibarr ou da Dolistore.

Este tutorial destina-se a utilizadores com alguma experiência em desenvolvimento ou administração de sistemas. Se nunca utilizou ferramentas de linha de comandos antes, considere uma forma mais simples de obter o Dolibarr, como uma solução SaaS aprovada pela equipa do Dolibarr.

3.2.1.1. Ter um servidor Debian#

Certifique-se de que tem um servidor Debian a funcionar com acesso sudo antes de prosseguir. Para esta instalação, o Dolibarr será executado em Podman sem privilégios de root (rootless) como utilizador normal, enquanto o sudo é utilizado apenas para a instalação de pacotes e a configuração inicial do sistema. O Podman rootless é um modo oficialmente suportado e, para serviços de utilizador que devem sobreviver ao logout e iniciar no arranque, as orientações do Podman/systemd recomendam ativar o «lingering» para esse utilizador.

3.2.1.2. Ter um registo DNS#

Crie um novo registo DNS com o seu fornecedor de serviços de registo de domínios:

Tipo: A

Nome: erp, dolibarr, ou outro subdomínio à sua escolha

Valor: O endereço IP público do seu servidor

3.2.1.3. Instalar o Podman#

Instale o Podman e as ferramentas necessárias para contentores sem privilégios de root:

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. Criar um utilizador dedicado para o Dolibarr#

Crie um utilizador dedicado sem privilégios que será o proprietário e executará a stack do Dolibarr:

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

O comando loginctl enable-linger é importante porque, caso contrário, os serviços systemd ao nível do utilizador são interrompidos após o términus da última sessão desse utilizador.

3.2.1.5. Criar um proxy inverso#

É absolutamente livre de o configurar da forma que preferir; não existe, no essencial, uma forma certa ou errada. Aqui descreve-se apenas como preparámos o sistema para completar o texto e as imagens dos tutoriais.

Instale o Nginx e o Certbot no anfitrião:

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

Crie o ficheiro /etc/nginx/sites-available/dolibarr.conf com o seguinte conteúdo, substituindo erp.example.com pelo seu domínio 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;
    }
}

Ative o site e recarregue o Nginx:

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

Solicite um certificado Let’s Encrypt:

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

Depois de o certificado ser emitido com sucesso, o Certbot atualizará a configuração do Nginx para ativar o HTTPS e redirecionar o tráfego HTTP para HTTPS.

3.2.1.6. Mudar para o utilizador do Dolibarr#

Mude para o novo utilizador:

sudo -iu dolibarr

Todos os restantes comandos Podman neste tutorial devem ser executados como este utilizador, para que a implementação se mantenha sem privilégios de root.

3.2.1.7. Criar diretórios persistentes#

Crie os diretórios que irão armazenar os dados persistentes:

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

Tudo isto tem de ser feito para que não perca dados em caso de reinício ou em caso de atualização do Dolibarr para uma versão mais recente.

3.2.1.8. Criar o ficheiro de ambiente#

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 variáveis fazem parte da interface oficial do contentor Dolibarr. Verifique sempre se não foram alteradas e se não foram introduzidas novas restrições/recomendações antes de prosseguir.

3.2.1.9. Criar o ficheiro compose#

Crie o ficheiro 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 o Dolibarr#

Inicie a stack:

podman-compose up -d
podman-compose logs

Verifique se os contentores estão em execução:

podman ps
podman-compose logs

Abra o seu navegador e aceda a:

https://erp.example.com

Se tudo estiver configurado corretamente, deverá ver a interface web do Dolibarr através de HTTPS.

3.2.1.11. Instalar módulos personalizados#

Agora pode colocar módulos no diretório ~/dolibarr/custom. Para o exemplo do módulo TalerBarr, continue com Instalar a partir do repositório de código-fonte.