Добавление файлов конфигурации и документации для веб-публикации 1С:Предприятие через Apache в DFWebOS
This commit is contained in:
@@ -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, чтобы пересобрать образ.
|
||||
@@ -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>
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
Reference in New Issue
Block a user