Skip to content

Repository files navigation

Развертывание 1С сервера на Ubuntu 22.04

Полный комплект для развертывания 1С:Предприятие 8.3 с PostgreSQL и USB HASP эмулятором.

Компоненты

  • 1С:Предприятие 8.3.27.1989 (сервер + веб-клиент)
  • PostgreSQL 14 (база данных)
  • Apache 2.4 (веб-сервер)
  • USB HASP Эмулятор (защита лицензий)

Быстрый старт

1. Запуск 1С сервера

# Запустить контейнеры
docker-compose up -d

# Проверить статус
docker exec -it onec-server /opt/1cv8/x86_64/8.3.27.1989/rac cluster list onec-server:1541

# Веб-интерфейс
# http://localhost/ws

2. Установка HASP эмулятора

cd hasp-emulator-backup
sudo bash docs/install.sh

Подробная документация: hasp-emulator-backup/README.md

Структура проекта

1cserver/
├── docker-compose.yml              # Конфигурация Docker
├── Dockerfile                      # Образ 1С сервера
├── Dockerfile.postgres             # Образ PostgreSQL
├── install-1c.sh                   # Скрипт установки 1С
├── distrib/                        # Дистрибутивы 1С
├── logs/                           # Логи Apache
├── hasp-emulator-backup/           # USB HASP эмулятор
│   ├── modules/                    # Модули ядра
│   ├── keys/                       # Ключи лицензий
│   ├── scripts/                    # Исполняемые файлы
│   ├── systemd/                    # Systemd службы
│   ├── docs/                       # Документация
│   └── README.md                   # Инструкция по установке
└── hasp-emulator-backup-*.tar.gz   # Архив для развертывания

Порты

Порт Сервис Описание
80 Apache HTTP веб-сервер
443 Apache HTTPS (требует настройки SSL)
1540-1541 Центральный сервер кластера
1560-1591 Рабочие процессы
5432 PostgreSQL База данных

Управление 1С

Вход в контейнер

docker exec -it onec-server bash

Проверка служб

# Apache
service apache2 status

# 1С сервер
ps aux | grep ragent

# Логи
tail -f /logs/apache_access.log
tail -f /logs/wsap_debug.log

Создание информационной базы

docker exec -it onec-server bash

# Получить ID кластера
CLUSTER_ID=$(/opt/1cv8/x86_64/8.3.27.1989/rac cluster list onec-server:1541 | grep "cluster" | awk '{print $3}')

# Создать базу
/opt/1cv8/x86_64/8.3.27.1989/rac infobase \
  --cluster=$CLUSTER_ID \
  create \
  --name=test_base \
  --dbms=PostgreSQL \
  --db-server=postgres \
  --db-name=test_db \
  --db-user=postgres \
  --db-pwd=postgres \
  --locale=ru

Управление HASP эмулятором

# Статус
sudo systemctl status usbhaspemul

# Перезапуск
sudo systemctl restart usbhaspemul

# Проверка USB устройства
lsusb | grep HASP

# Логи
sudo journalctl -u usbhaspemul -f

Интеграция HASP с 1С контейнером

Сетевой доступ (рекомендуется)

1С контейнер настроен на использование HASP ключей через сеть:

# docker-compose.yml
environment:
  HASP_REALTIME_SERVER: 172.18.0.1  # IP хоста в Docker сети

Проверка доступности:

# Проверить Sentinel LDK на хосте
sudo systemctl status hasplmd aksusbd
sudo ss -tulpn | grep 1947

# Проверить из контейнера
docker exec onec-server bash -c "timeout 2 bash -c 'cat < /dev/null > /dev/tcp/172.18.0.1/1947' && echo 'OK'"

Конфигурация nethasp.ini:

Файл /opt/1cv8/conf/nethasp.ini в контейнере:

[NH_COMMON]
NH_TCPIP = Enabled
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_SERVER_ADDR = 172.18.0.1

Проверка лицензий в 1С

  1. Открыть веб-интерфейс: http://localhost/ws
  2. Создать информационную базу
  3. Проверить лицензии: СправкаО программеЛицензии

Должно отображаться: 1C:Enterprise 8.x, 20 licenses

Первая установка

1. Установка 1С в контейнер

Если 1С еще не установлена:

docker exec -it onec-server bash /install-1c.sh
docker-compose restart onec-server

2. Установка HASP эмулятора

cd hasp-emulator-backup
sudo bash docs/install.sh

3. Настройка интеграции HASP с 1С

После установки HASP эмулятора:

# Проверить, что Sentinel LDK работает
sudo systemctl status hasplmd aksusbd

# Проверить порт 1947
sudo ss -tulpn | grep 1947

# Перезапустить 1С контейнер
cd ~/1cserver
docker-compose restart onec-server

# Проверить доступность HASP из контейнера
docker exec onec-server bash -c "timeout 2 bash -c 'cat < /dev/null > /dev/tcp/172.18.0.1/1947' && echo '✅ HASP доступен' || echo '❌ HASP недоступен'"

Добавление лицензий

  1. Создать JSON файл с ключом (формат в hasp-emulator-backup/docs/JSON_FORMAT.md)
  2. Скопировать в /etc/usbhaspkey/
  3. Перезапустить службу: sudo systemctl restart usbhaspemul

Резервное копирование

Создание бэкапа

# База данных
docker exec postgres pg_dump -U postgres test_db > backup_$(date +%Y%m%d).sql

# Конфигурация 1С
docker cp onec-server:/opt/1cv8/conf ./1c-conf-backup

# HASP ключи
sudo cp -r /etc/usbhaspkey ./hasp-keys-backup

Восстановление

# База данных
cat backup.sql | docker exec -i postgres psql -U postgres test_db

# HASP ключи
sudo cp hasp-keys-backup/*.json /etc/usbhaspkey/
sudo systemctl restart usbhaspemul

Troubleshooting

1С не запускается

# Проверить логи
docker logs onec-server
docker exec -it onec-server tail -f /var/log/1c/rphost.log

HASP ключ не виден

# Проверить модули
lsmod | grep vhci

# Проверить службу
sudo systemctl status usbhaspemul

# Проверить USB
lsusb | grep HASP

# Проверить Sentinel LDK
sudo systemctl status hasplmd aksusbd
sudo ss -tulpn | grep 1947

# Проверить доступность из контейнера
docker exec onec-server bash -c "timeout 2 bash -c 'cat < /dev/null > /dev/tcp/172.18.0.1/1947' && echo 'OK'"

1С не видит лицензии

# Проверить переменную окружения
docker exec onec-server env | grep HASP

# Проверить конфигурацию
docker exec onec-server cat /opt/1cv8/conf/nethasp.ini

# Перезапустить контейнер
docker-compose restart onec-server

PostgreSQL недоступен

# Проверить контейнер
docker ps | grep postgres

# Проверить логи
docker logs postgres

SSL (HTTPS)

Для настройки HTTPS:

  1. Добавить сертификаты в контейнер
  2. Обновить конфигурацию Apache
  3. Перезапустить контейнер

Системные требования

  • Ubuntu 22.04 LTS
  • Kernel 6.8+ (для HASP эмулятора)
  • Docker & Docker Compose
  • 4GB RAM минимум
  • 20GB свободного места

Документация


Версия: 1.0
Дата: 2026-03-10
Система: Ubuntu 22.04.5 LTS / Kernel 6.8.0-101

About

Restored from mlanies backup

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages