Добавление файлов конфигурации и документации для веб-публикации 1С:Предприятие через Apache в DFWebOS

This commit is contained in:
2026-05-08 13:20:45 +03:00
parent 0c4acb0295
commit d6ade603a3
5 changed files with 164 additions and 0 deletions
+88
View File
@@ -0,0 +1,88 @@
# 1С:Предприятие — веб-публикация для DFWebOS
Контейнер с Apache 2.4 и модулем веб-сервера 1С:Предприятие 8.3, публикующий информационную базу 1С по пути `/BuhBase`.
> Это веб-фронтенд. Сам **сервер 1С:Предприятие** должен быть запущен отдельно (на той же машине или в локальной сети) — приложение лишь публикует информационную базу через Apache.
Адаптация репозитория [petrmyazin/docker-apache-1c-example](https://github.com/petrmyazin/docker-apache-1c-example) под фреймворк приложений DFWebOS.
## Структура каталога
```
1c/
├── dfwebos-app.yml # манифест приложения для DFWebOS
├── docker-compose.yml # описание сервиса (использует build: ./build)
├── README.md # этот файл
├── build/ # build-контекст образа Apache + модуль 1С
│ ├── Dockerfile
│ ├── httpd.conf # преднастроенный конфиг Apache + публикация /BuhBase
│ ├── default.vrd # дефолтные настройки подключения к серверу 1С
│ ├── .gitignore # исключает deb64.tar.gz из git
│ └── deb64.tar.gz # ⚠️ положить вручную, см. ниже
└── data/
└── vrd/
└── default.vrd # настройки подключения, монтируются в контейнер
```
## Подготовка перед установкой
### 1. Скачать дистрибутив сервера 1С:Предприятие
Дистрибутив не входит в репозиторий из-за лицензионных ограничений. Скачайте архив самостоятельно:
1. Откройте [releases.1c.ru](https://releases.1c.ru).
2. Перейдите в раздел **Технологическая платформа 8.3 → Cервер 1С:Предприятия (64-bit) для DEB-based Linux-систем**.
3. Скачайте архив версии **8.3.23.1912** (или другой — см. примечание ниже).
4. Сохраните файл как:
```
1c/build/deb64.tar.gz
```
> При смене версии платформы обновите путь к `wsap24.so` в [build/httpd.conf](build/httpd.conf) (строка `LoadModule _1cws_module /opt/1cv8/x86_64/<версия>/wsap24.so`) и поле `version` в [dfwebos-app.yml](dfwebos-app.yml).
### 2. Настроить подключение к серверу 1С
Отредактируйте файл [data/vrd/default.vrd](data/vrd/default.vrd), указав:
- адрес вашего сервера 1С:Предприятие (`Srvr=`),
- имя информационной базы (`Ref=`).
Пример:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
base="/BuhBase"
ib="Srvr=192.168.10.195;Ref=УПФ"
enableStandardOData="true">
<ws publishExtensionsByDefault="true"/>
<httpServices publishByDefault="true" publishExtensionsByDefault="true"/>
</point>
```
Файл смонтирован томом — изменения подхватываются перезапуском приложения, **без пересборки образа**.
### 3. (Опционально) добавить DNS-имена сервера 1С
Если в `default.vrd` используется DNS-имя сервера 1С (а не IP), которое не разрешается из контейнера, раскомментируйте блок `extra_hosts:` в [docker-compose.yml](docker-compose.yml) и пропишите соответствие имени и IP-адреса.
## Установка и запуск в DFWebOS
После того как `deb64.tar.gz` положен в `build/` и `data/vrd/default.vrd` настроен, приложение можно устанавливать стандартным способом DFWebOS — образ соберётся автоматически на первом запуске.
После установки информационная база будет доступна по адресу:
```
http://<dfwebos-host>:8180/BuhBase/
```
## Несколько информационных баз
Чтобы опубликовать вторую базу:
1. Подготовьте отдельный `.vrd` (например, `another.vrd`) рядом с `default.vrd` в `data/vrd/`.
2. Добавьте в `build/Dockerfile` копирование своего `.vrd` в каталог `/usr/local/apache2/htdocs/<AnotherBase>/`.
3. Раскомментируйте и адаптируйте блок второй базы в `build/httpd.conf` (см. конец файла).
4. Смонтируйте новый `.vrd` томом в `docker-compose.yml`.
5. Переустановите приложение в DFWebOS, чтобы пересобрать образ.
View File
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/BuhBase"
ib="Srvr=192.168.10.195;Ref=УПФ"
enableStandardOData="true">
<ws publishExtensionsByDefault="true" />
<httpServices publishByDefault="true" publishExtensionsByDefault="true"/>
</point>
+43
View File
@@ -0,0 +1,43 @@
manifestVersion: "0.0.1"
id: 1c
category: developer
name: 1С:Предприятие (веб-публикация)
version: "8.3.23.1912"
tagline: Веб-публикация информационной базы 1С:Предприятие через Apache
description: >-
Контейнер с Apache 2.4 и модулем веб-сервера 1С:Предприятие 8.3 для публикации информационной базы 1С (через подключение к серверу 1С:Предприятие на отдельной машине).
Это веб-фронтенд: внутри контейнера запускается Apache с подключённым модулем `wsap24.so`, который проксирует обращения к серверу 1С:Предприятие. Сам сервер 1С:Предприятие должен быть запущен на отдельной машине в сети — приложение лишь публикует информационную базу через веб.
Приложение позволяет работать с информационной базой 1С через веб-клиент в браузере без установки толстого клиента, обеспечивает доступ к стандартному OData-интерфейсу, веб-сервисам (SOAP) и HTTP-сервисам конфигурации.
⚠️ Перед сборкой образа необходимо самостоятельно скачать дистрибутив сервера 1С:Предприятие 8 (64-bit) для DEB-based Linux-систем с сайта https://releases.1c.ru и поместить файл в `1c/build/deb64.tar.gz`. Этот файл не входит в репозиторий из-за лицензионных ограничений.
Перед первой установкой отредактируйте файл `1c/build/default.vrd`, указав адрес вашего сервера 1С:Предприятие и имя информационной базы.
developer: Petr Myazin
website: https://v8.1c.ru/tekhnologii/veb-klient/
dependencies: []
repo: https://github.com/petrmyazin/docker-apache-1c-example
support: https://github.com/petrmyazin/docker-apache-1c-example/issues
port: 8180
gallery: []
path: "/BuhBase"
defaultUsername: ""
defaultPassword: ""
releaseNotes: >-
Первый выпуск приложения для DFWebOS.
Содержит:
- Apache 2.4 с модулем веб-сервера 1С:Предприятие 8.3.23.1912.
- Преднастроенный httpd.conf с публикацией информационной базы по пути `/BuhBase`.
- Поддержку cookies за обратным прокси DFWebOS (SameSite=None, Secure при HTTPS).
- Учёт заголовка `X-Forwarded-Proto` от обратного прокси DFWebOS.
torOnly: false
permissions: []
submitter: "DFV24"
submission: "https://github.dfv24.com/fofanov.dmitry/DFWebOS-Apps/pulls"
+23
View File
@@ -0,0 +1,23 @@
version: "3.7"
services:
app_proxy:
environment:
APP_HOST: 1c_server_1
APP_PORT: 80
PROXY_AUTH_ADD: "false"
server:
build:
context: ./build
dockerfile: Dockerfile
image: dfwebos/apache-1c:8.3.23.1912
restart: on-failure
stop_grace_period: 1m
volumes:
- ${APP_DATA_DIR}/data/vrd/default.vrd:/usr/local/apache2/htdocs/BuhBase/default.vrd:ro
# Раскомментируйте и пропишите адрес(а) сервера(ов) 1С:Предприятие в локальной сети,
# если в default.vrd используется DNS-имя, не разрешаемое в DFWebOS.
# extra_hosts:
# - "Serv1C:192.168.1.15"
# - "srv-1c:192.168.10.195"