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 см. в разделе Установка из репозитория с исходным кодом.