Appearance
Установка на Astra Linux в Docker
Важная информация перед установкой Bearpass
Для нативной установки требуются PHP 8.4 и Nginx (в репозиториях Astra Linux отсутствуют), поэтому рекомендуется установка в Docker-контейнерах.
Для нативной установки выполните шаги, описанные в данном разделе.
IP сервера Bearpass должен быть статическим и доступным из сети клиентов.
В данной инструкции предполагается, что сервер Bearpass будет иметь адрес 192.168.121.180 , а имя хоста bearpass.ald.company.lan .
Имя и адрес контроллера домена ALD Pro dc-1.ald.company.lan: 192.168.121.10.
При необходимости измените эти параметры в инструкции на актуальные.
Необходимо установить:
Выполните установку:
shell
sudo apt update
sudo apt-get install docker.io git -y -qПользователь
Важно
Крайне не рекомендуем использовать root в качестве пользователя, запускающего приложение.
Для обеспечения дополнительной безопасности ваших паролей, рекомендуем создать отдельного пользователя для парольного менеджера BearPass.
shell
# создайте пользователя и задайте пароль
sudo adduser bearpass
# добавьте пользователя в группу docker
sudo usermod -aG docker bearpass
# создайте папку для докер проекта и дайте права
mkdir -p /opt/bearpass
chown bearpass /opt/bearpass
# авторизуйтесь под пользователем, дальнейшие действия будут выполняться от его имени
login bearpassПодготовка среды для установки
Cклонируйте репозитории Bearpass:
shell
git clone https://git.bearpass.ru/bear-pass /opt/bearpass/app
git clone https://github.com/BearPass/Docker-core.git /opt/bearpass/dockerСкопируйте файл конфигурации .env.example в .env:
shell
cd /opt/bearpass/docker
cp .env.example .envОтредактируйте конфигурационный файл .env:
DATABASE_PASSWORD— пароль для создаваемой БДUSER_ID и GROUP_ID— идентификаторы пользователя bearpass и его группыBEARPASS_PORTиBEARPASS_SSL_PORT— порты приложенияBEARPASS_FULL_URL— URL, по которому открывается приложение
Для просмотра UID/GID используйте:
shell
id
# пример вывода
uid=1005(bearpass) gid=1005(bearpass)
группы=1005(bearpass),20(dialout),24(cdrom),25(floppy),29(audio),44(video),46(plugde
v),100(users)Пример заполнения .env:
shell
cat > .env << EOF
DATABASE_PASSWORD=bear_PaCCw0rd
BEARPASS_URL=localhost
BEARPASS_PORT=80
BEARPASS_SSL_PORT=443
BEARPASS_FULL_URL=https://localhost
USER_ID=$(id -u bearpass)
GROUP_ID=$(id -g bearpass)
EOFУстановите плагин Docker Compose (если не установлен ранее):
shell
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL
https://github.com/docker/compose/releases/download/v5.0.0/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-composeЗапустите Docker-окружение Bearpass (находясь в папке /opt/bearpass/docker ):
shell
docker compose up -dБудут скачаны необходимые образы и запущены контейнеры в фоновом режиме.
Для проверки работоспособности системы выполните:
shell
./bearpass main:health-checkКоманду необходимо выполнять из каталога /opt/bearpass/docker .
Создание первого администратора
После первого запуска приложение установит зависимости. Убедитесь, что веб-интерфейс открывается, затем создайте администратора:
shell
./bearpass make:userПример вывода:
shell
./bearpass make:user
Введите имя:
> bearadmin
Введите фамилию:
> admin
Введите email (используется для входа):
> bearadmin@ald.company.lan
Введите пароль (минимум 8 символов):
>
Создан новый пользователь `bearadmin admin (bearadmin@ald.company.lan)` с ролью
`admin`Теперь можно авторизоваться по адресу http://192.168.121.180/
Для входа используйте email (не имя пользователя) и пароль, указанные при создании администратора.
Настройка SSL
Для полноценной работы требуется HTTPS. Необходимо выпустить SSL-сертификат одним из способов:
- Let’s Encrypt - простой и бесплатный способ получить сертификат через https://certbot.eff.org/
- Приобрести сертификат у любого из многочисленных Удостоверяющих Центров
- Если по каким-то причинам нельзя получить доверенный сертификат - можно сгенерировать самоподписанный командой
Команда генерации самоподписанного сертификата:
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout nginx.key -out nginx.crtПри необходимости задайте в интерактивном режиме актуальные значения, либо можно оставить поля пустыми.
CERT_DIR=/opt/bearpass/docker/nginx/ssl
openssl req -x509 -nodes -days 3650 -newkey rsa:4096 \
-keyout $CERT_DIR/nginx.key -out $CERT_DIR/nginx.crtПример вывода с пустым вводом:
..+...+.......+.....+......+.......+..+.............+......+..+....+......+...+.....
+.+.....+.+..+...............+.+.........+..+.+..+...+...+.+...+...+...+...........
+...+...+.......+......+.....+....+...+.....+.........+...+............+...+......+.
+...+..+...+......+.+...+......+.........+...+..+...+............++++++++++++++++++
+++++++++++++++++++++++++++*.......+....+..+...+......+...+.+..+....+........
+..........+.....+.+......+.....+.........+.+.....+.........+.+...+...+........
+..........
...........+.+..+.+..+++++++++++++++++++++++++++++++++++++++++++++*.+.....
+...............+..........+...+......+...+......+............+.........+......
+.............
..........+....+...+..+...+........................+.+..+.+.........+...........+.
+...+...+..+............+.........+..........+..+...+............+....+...
+..........
........+............+.....+......................+.............................
+......+...+...+...+......+......+...+......+.+............+........+....+...+.....
+.+.
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:Подключение сертификата (Docker)
Поместите сертификат и ключ в каталог /opt/bearpass/docker/nginx/ssl В файле /opt/bearpass/docker/nginx/conf/conf.d/app.conf выполните изменения:
Удалите строку
listen 443;Раскомментируйте строки SSL и укажите имена файлов сертифкатов:
listen 443 default_server ssl;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;Настройка редиректа
Для редиректа HTTP → HTTPS замените блок server с listen 80 :
server {
listen 80;
server_name bearpass.company.local;
return 301 https://$server_name$request_uri;
}пример итогового файла app.conf
upstream bp_fastcgi_backend {
server app:9000;
}
server {
server_name ${SITE_URL};
listen 80;
return 301 https://$server_name$request_uri;
}
server {
server_name ${SITE_URL};
listen 443 default_server ssl;
set $BP_ROOT /var/www/bearpass;
include /var/www/bearpass/nginx.conf;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
}Настройка Nginx для SSL
Данной командой можно применить настройки для работы Bearpass с SSL описанные выше.
# предварительно можно создать резервную копию файла app.conf
cp /opt/bearpass/docker/nginx/conf/conf.d/app.conf /opt/bearpass/app.conf.bak
cat > /opt/bearpass/docker/nginx/conf/conf.d/app.conf <<EOF
upstream bp_fastcgi_backend {
server app:9000;
}
server {
server_name \${SITE_URL};
listen 80;
return 301 https://\$server_name\$request_uri;
}
server {
server_name \${SITE_URL};
listen 443 default_server ssl;
set \$BP_ROOT /var/www/bearpass;
include /var/www/bearpass/nginx.conf;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
}
EOFПерезапустите контейнеры для применения изменений.
docker compose restart