diff --git a/1c/README.md b/1c/README.md new file mode 100644 index 0000000..018ed1d --- /dev/null +++ b/1c/README.md @@ -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 + + + + + +``` + +Файл смонтирован томом — изменения подхватываются перезапуском приложения, **без пересборки образа**. + +### 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://:8180/BuhBase/ +``` + +## Несколько информационных баз + +Чтобы опубликовать вторую базу: + +1. Подготовьте отдельный `.vrd` (например, `another.vrd`) рядом с `default.vrd` в `data/vrd/`. +2. Добавьте в `build/Dockerfile` копирование своего `.vrd` в каталог `/usr/local/apache2/htdocs//`. +3. Раскомментируйте и адаптируйте блок второй базы в `build/httpd.conf` (см. конец файла). +4. Смонтируйте новый `.vrd` томом в `docker-compose.yml`. +5. Переустановите приложение в DFWebOS, чтобы пересобрать образ. diff --git a/1c/data/vrd/.gitkeep b/1c/data/vrd/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/1c/data/vrd/default.vrd b/1c/data/vrd/default.vrd new file mode 100644 index 0000000..22080cc --- /dev/null +++ b/1c/data/vrd/default.vrd @@ -0,0 +1,10 @@ + + + + + diff --git a/1c/dfwebos-app.yml b/1c/dfwebos-app.yml new file mode 100644 index 0000000..78f6164 --- /dev/null +++ b/1c/dfwebos-app.yml @@ -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" diff --git a/1c/docker-compose.yml b/1c/docker-compose.yml new file mode 100644 index 0000000..45b9d88 --- /dev/null +++ b/1c/docker-compose.yml @@ -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"