3.2.1. Установка Dolibarr и Talerbarr из командной строки#

Важно: это не официальный учебник по установке Dolibarr. Он предоставлен только в качестве полного пошагового руководства по установке модуля Talerbarr, а именно с использованием установки на основе каталога, а не через интерфейс Dolibarr или Dolistore.

Этот учебник предназначен для пользователей с опытом разработки или системного администрирования. Если вы никогда раньше не пользовались инструментами командной строки, рассмотрите более удобный способ получения Dolibarr, например SaaS-решение, одобренное командой Dolibarr.

3.2.1.1. У вас есть сервер Debian#

Прежде чем продолжить, убедитесь, что у вас есть работающий сервер Debian с доступом к sudo. В этой установке Dolibarr будет работать в Podman без root-прав (rootless) от имени обычного пользователя, а sudo используется только для установки пакетов и первоначальной настройки системы. Rootless Podman — официально поддерживаемый режим, и для пользовательских служб, которые должны переживать выход из системы и запускаться при загрузке, рекомендации Podman/systemd советуют включить lingering для этого пользователя.

3.2.1.2. Настройка записи DNS#

Создайте новую DNS-запись у регистратора домена или у вашего DNS-провайдера:

Тип: A

Имя: erp, dolibarr или другой поддомен по вашему выбору

Значение: публичный IP-адрес вашего сервера

3.2.1.3. Установка Podman#

Установите Podman и инструменты, необходимые для контейнеров без 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. Создайте отдельного пользователя для Dolibarr#

Создайте отдельного непривилегированного пользователя, который будет владеть стеком Dolibarr и запускать его:

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

Команда loginctl enable-linger важна, поскольку иначе пользовательские службы systemd останавливаются после завершения последней сессии этого пользователя.

3.2.1.5. Настройка обратного прокси#

Вы, безусловно, можете настроить это удобным для себя способом — здесь по большей части нет правильного или неправильного варианта. Здесь будет описано лишь то, как мы подготовили систему для создания текста и иллюстраций этого учебника.

Установите Nginx и Certbot на хосте:

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

Создайте файл /etc/nginx/sites-available/dolibarr.conf со следующим содержимым, заменив erp.example.com на ваш реальный домен:

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;
    }
}

Включите сайт и перезагрузите Nginx:

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

Запросите сертификат Let’s Encrypt:

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

После успешного выпуска сертификата Certbot обновит конфигурацию Nginx, чтобы включить HTTPS и перенаправлять HTTP-трафик на HTTPS.

3.2.1.6. Переключение на пользователя Dolibarr#

Переключитесь на нового пользователя:

sudo -iu dolibarr

Все оставшиеся команды Podman в этом учебнике следует выполнять от имени этого пользователя, чтобы развёртывание оставалось без root-прав.

3.2.1.7. Создание постоянных каталогов#

Создайте каталоги, в которых будут храниться постоянные данные:

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

Всё это необходимо сделать, чтобы не потерять данные в случае перезагрузки или обновления Dolibarr до более новой версии.

3.2.1.8. Создание файла окружения#

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

Эти переменные являются частью официального интерфейса контейнера Dolibarr. Всегда перепроверяйте, что они не изменились и что не были введены новые ограничения или рекомендации, прежде чем двигаться дальше.

3.2.1.9. Создание файла compose#

Создайте файл 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. Запуск Dolibarr#

Запустите стек:

podman-compose up -d
podman-compose logs

Убедитесь, что контейнеры запущены:

podman ps
podman-compose logs

Откройте браузер и перейдите по адресу:

https://erp.example.com

Если всё настроено правильно, вы должны увидеть веб-интерфейс Dolibarr по HTTPS.

3.2.1.11. Установка пользовательских модулей#

Теперь вы можете размещать модули в каталоге ~/dolibarr/custom. Пример с модулем TalerBarr см. в разделе Установка из репозитория с исходным кодом.