---
url: https://next.zammad.org/sr/reference/docker-compose-scenarios.md
---

# Радно Docker Compose окружење

## Преглед

Ако "ванила" Zammad стацк не покрива ваш случај употребе, можете користити
један од унапред дефинисаних сценарија. Не препоручујемо мењање Compose
фајлова локално, јер ће тада бити тешко пратити упстреам промене за
стацк. Зато треба да користите методу изградње repo-зиторијума у Portainer-у
или да клонирате repo и редовно га ажурирате, када користите Docker Compose.

Следеће опције проксија приступа су подржане:

* [Омогућавање доступности стацк-а путем
  HTTPS-а](#making-the-stack-available-via-https)
  * Додајте Cloudflare туннел сервис у стацк
  * Додајте Nginx Proxy Manager (NPM) у стацк
  * Додајте спољну Docker мрежу у Nginx
* [Коришћење спољних сервиса](#using-external-services)
  * Elasticsearch инсталација
* [Омогућавање доступности сервиса
  споља](#making-services-externally-available)
  * Elasticsearch инсталација
  * Elasticsearch инсталација
* [Додатни сценарији](#additional-scenarios)
  * Онемогућите сервис за резервне копије
  * Додајте Ollama инстанцу у стацк
  * Додајте Ollama инстанцу у стацк
  * Ограничите хардверске ресурсе стацк-а

Изворни код Zammad-а можете пронаћи на GitHub-у у [Zammad
репозиторију](https://github.com/zammad/zammad-docker-compose){target=\_blank}.

## Уопштено

:::: tabs

\=== Docker Compose

Да бисте користили сценарио, наведите његов compose фајл у променљивој окружења `COMPOSE_FILE`. Направите фајл `.env` или
копирајте и преименујте `.env.dist` у фасцикли клонираног репозиторијума. Главни compose фајл мора бити наведен први,
а за њим један или више сценарија, раздвојених двотачком (`:`). Фајлови се примењују наведеним редоследом. Замените
чувар места у витичастим заградама именом фајла сценарија који желите да користите.

**Пример са два чувара места за сценарије:**

```sh
COMPOSE_FILE=docker-compose.yml:scenarios/{scenario you want to use}.yml:scenarios/{another scenario you want to use}.yml
```

Након што наведете сценарије, покрените stack командом `docker compose up -d`.

::: info

Када користите променљиву `COMPOSE_FILE`, `docker-compose.override.yml` се не учитава аутоматски. Ако желите
да га користите, обавезно га додајте на листу у променљивој окружења.

:::

\=== Portainer

Пратите [опште упутство за инсталацију](/sr/get-started/installation/docker) и промените следеће кораке.

Испод поља „Compose path” кликните на дугме `Add file`. Ово отвара одељак „Additional paths” где можете
дефинисати сценарио који желите да користите. Додајте `scenarios/{назив сценарија}.yml` и замените задњи део у
`{}` заградама називом једног од датотека сценарија. Можете чак и комбиновати сценарије уносом додатних путања.

![Portainer конфигурација додатних путања](/screenshots/get-started/installation/portainer-additional-paths.png)

::::

## Омогућавање доступности стека путем HTTPS-а

Ако постављате Zammad за употребу у продукцији, потребно га је заштитити
коришћењем HTTPS конекције. Постоје различити сценарији за постизање овога:

### Додај Cloudflare Туннел

Ако желите да објавите Zammad на врло практичан начин, можете користити
[Cloudflare](https://www.cloudflare.com/) тунел.

* Користите фајл сценарија `scenarios/add-cloudflare-tunnel.yml` за
  deploysku инсталацију
* Додај поддомен већ постојећем домену у свом Cloudflare панелу
* Креирај тунел за овај поддомен и конфигурирај га да усмерава саобраћај ка
  zammad-nginx сервису са `http://zammad-nginx:8080`
* Унесите свој Cloudflare туннел токен у Zammad стацк користећи променљиву
  окружења `CLOUDFLARE_TUNNEL_TOKEN`

### Додај Nginx Proxy Manager

Веома чест начин постављања web сервиса је коришћење реверсе proxija који се
бави SSL терминацијом. Један од често коришћених алата је Nginx Proxy
Manager (NPM), који се може конфигурисати кроз интерфејс прилично
једноставно. Ако још немате реверсе proxy, ово вам може бити користан
сценарио. Ако већ имате покренут реверсе proxy, пређите на следећи одељак.

* Користите фајл сценарија `scenarios/add-nginx-proxy-manager.yml` за
  deploysku инсталацију
* Унесите свој FQDN за Zammad користећи променљиву окружења `ZAMMAD_FQDN`
* Конфигуришите свој DNS. Изабрани Zammad FQDN треба да показује на IP
  адресу NPM хоста
* Конфигуришите нови proxy хост у свом NPM-у и следите кораке да бисте
  добили SSL сертификат

Kerberos single sign-on for the Docker stack builds on this scenario, see
[Single sign-on with Kerberos](/en/tutorials/sso-kerberos).

### Додајте спољну Docker мрежу у Nginx

Ако већ имате реверсе proxy који се брине о SSL терминацији, овај сценарио
је користан. Он додаје спољну Docker мрежу на Zammad-ов укључени Nginx
сервис како би се могао приступити из реверсе proxija који није део мреже
Zammad стацк-а.

* Користите фајл сценарија `scenarios/add-external-network-to-nginx.yml` за
  deploysku инсталацију
* Унесите име своје спољне мреже користећи променљиву окружења
  `ZAMMAD_NGINX_EXTERNAL_NETWORK`

## Коришћење спољних сервиса

### Elasticsearch инсталација

Да ли већ имате покренуту Elasticsearch инстанцу и желите да је користите и
за Zammad? Тада можете онемогућити Elasticsearch сервис у Zammad стацк-у
како бисте уштедели ресурсе.

* Користите фајл сценарија `scenarios/disable-elasticsearch-service.yml` за
  deploysku инсталацију - ово ће искључити уграђени сервис за Elasticsearch
* Користите следеће променљиве окружења да унесете информације о конекцији
  на вашу постојећу Elasticsearch инстанцу:
  * `ELASTICSEARCH_SCHEMA`
  * `ELASTICSEARCH_HOST`
  * `ELASTICSEARCH_PORT`
  * `ELASTICSEARCH_USER`
  * `ELASTICSEARCH_PASS`

## Омогућавање спољне доступности сервиса

Ови сценарији су намењени за повезивање спољних апликација са Zammad
сервисима. У зависности од тога где је хостован ваш спољни сервис, можете
користити један од следећих сценарија.

::: danger

Када излажете Elasticsearch ван стацк-а, обавезно прво подесите променљиву `ELASTICSEARCH_PASS` на прилагођену вредност!
У супротном, ово представља велики безбедносни проблем јер Elasticsearch индекс садржи већину Zammad-ових података.

:::

::: tip

Ако желите да користите TLS, морате се повезати на Elasticsearch путем реверсе proxija.

:::

### Elasticsearch инсталација

Чест пример употребе је коришћење алата за извештавање/висуализацију као што
је Grafana на истом хосту у другом стацк-у. Пошто такви алати морају да
приступе Elasticsearch индексу, мрежа другог стацк-а мора бити додата у
Zammad-ов Elasticsearch контејнер.

* Користите фајл сценарија
  `scenarios/add-external-network-to-elasticsearch.yml` за deploysku
  инсталацију
* Унесите име своје спољне мреже користећи променљиву окружења
  `ZAMMAD_ELASTICSEARCH_EXTERNAL_NETWORK`

### Elasticsearch инсталација

У случају да желите да изложите Elasticsearch сервис Zammad стацк-а у мрежи,
можете доделити хост порт контејнеру. Ово је корисно ако требате да
приступите Elasticsearch контејнеру са другог хоста.

* Користите фајл сценарија `scenarios/add-hostport-to-elasticsearch.yml` за
  deploysku инсталацију
* Подразумевани порт за Elasticsearch је `9200`. Промените га на други порт
  користећи променљиву окружења `ELASTICSEARCH_EXPOSE_HTTP_PORT`

## Додатни сценарији

### Онемогућите сервис за резервне копије

У случају да желите другачије да управљате бацкуп-овима, можете онемогућити
уграђени бацкуп сервис у стацк-у како бисте уштедели ресурсе.

То можете урадити само коришћењем фајла сценарија
`scenarios/disable-backup-service.yml` за deploysku инсталацију.

### Додај Ollama

Можете подићи додатни [Ollama](https://ollama.com/) контејнер како бисте
користили AI функционалности Zammad-а на свом рачунару.

::: info
Ово је намењено за развој или тестирање, јер је покретање продукцијског LLM стацк-а комплексно.
:::

Да бисте deploysali Ollama контејнер унутар Zammad стацк-а, користите фајл
сценарија `scenarios/add-ollama.yml`. Овај прави Ollama контејнер који
аутоматски преузима и сервира `Llama3.2`, тако да је спреман за коришћење и
тестирање AI функција без додатне конфигурације.

Да бисте га користили у Zammad-у, додајте име сервиса и порт
(`http://ollama:11434`) у конфигурацију провидера.

### Додај LibreTranslate

Можете подићи додатни [Ollama](https://ollama.com/) контејнер како бисте
користили AI функционалности Zammad-а на свом рачунару.

Да бисте покренули LibreTranslate контејнер унутар Zammad стека, користите
датотеку сценарија `scenarios/add-libretranslate.yml`. Сервис не објављује
портове на хост серверу; Zammad може да се повеже путем интерне мреже преко
`http://libretranslate:5000`.

::: tip

Прво покретање траје неко време, јер контејнер преузима језичке моделе пре него што сервис постане доступан.
Модели се чувају у Docker волумену, тако да остају сачувани након поновног покретања stack-а.

:::

Прикупљамо податке о уређају коришћењем следећих технологија:

LT_LOAD_ONLY
: Листа језика за учитавање, раздвојених зарезом, нпр. `en,de,fr`. Ако није подешено, преузимају се сви језички модели, што
при хладном покретању може трајати неколико минута.

LT_UPDATE_MODELS
: Подесите на `true` да се при сваком покретању stack-а проверава да ли постоје ажурирани језички модели. Поново се преузимају само
модели за које је доступна новија верзија. Без тога, модели се преузимају само при првом покретању.

LT_API_KEYS
: Подесите на `true` да омогућите подршку за API кључеве. Сваки кључ има сопствени дозвољени број захтева у минуту. Да бисте издали кључ,
покрените сервис и извршите:

```sh
docker compose exec libretranslate ltmanage keys add 120
```

Број представља дозвољени број захтева у минуту за овај кључ. Команда исписује генерисани кључ, који је UUID
који прави сам LibreTranslate. Уместо тога, можете навести и сопствени кључ опцијом `--key`.

LT_REQUIRE_API_KEY_SECRET
: Подесите на `true` да API кључеви буду обавезни за све захтеве. Захтева
`LT_API_KEYS=true`.

::: info

LibreTranslate подржава још много опција. Оне су описане у
[званичној документацији](https://docs.libretranslate.com/){target=\_blank}, која наводи и променљиве окружења
које контејнер прихвата.

:::

### Ограничи ресурсе

Ако желите да ограничите хардверске ресурсе које Zammad стацк сме да
користи, користите сценариј `scenarios/apply-resource-limits.yml`. Тада се
примењују подразумеване вредности за коришћење CPU-а и меморије за сваки
контејнер у стацк-у. Ове подразумеване вредности можете пронаћи у
`.env.dist` фајлу. Унесите промењене променљиве које желите да користите као
променљиве окружења и deploysajte стацк.

### Остале намене

Ваш сценарио још није покривен? Слободно предложите своју намену. Планирамо
да додамо још уобичајених сценарија коришћења у стацк-у убудуће.

## Прилагођавање Zammad stack-а

Подразумевани stack одговара већини окружења, али понекад морате да га
прилагодите: да додате још један сервис, промените подешавања или користите
сопствене фајлове. Шта год да је у питању, не мењајте сам
`docker-compose.yml`. Чување измена у засебним фајловима омогућава да `git
pull` ажурира stack без конфликата.

Начин зависи од тога шта желите да постигнете:

### Промена подешавања фонта за одлазне HTML имејл поруке

Понекад је неопходно применити локалне измене за Zammad docker стек,
нпр. укључити додатне сервисе. Уколико планирате то да урадите,
препоручујемо да не мењате `docker-compose.yml` датотеку, већ да додате
локалну `docker-compose.override.yml` која укључује све ваше измене. Docker
compose ће [аутоматски учитати ову датотеку и применити измене на ваш
stack](https://docs.docker.com/compose/how-tos/multiple-compose-files/merge/).
Репозиториј стека укључује неактивну датотеку примера коју можете ископирати
и прилагодити:

```sh
cp docker-compose.override.yml.dist docker-compose.override.yml
```

Учитавање сценарија овде није подржано. Да бисте учитали сценарио, користите
променљиву `COMPOSE_FILE` у свом `.env` фајлу, како је описано у одељку
[општа употреба](#general-usage) изнад.

### Додавање сопствених фајлова

Код Docker Compose инсталације урађене клонирањем репозиторијума, фајлове
који припадају само вашој инстанци можете чувати у директоријуму `local/`
stack-а, нпр. делове конфигурације, прилагођене фајлове сценарија, скрипте,
белешке или сертификате. Git занемарује садржај директоријума осим фајла
README.md, тако да `git pull` ове фајлове нити пријављује нити мења.

Фајлови у `local/` се не учитавају аутоматски. Да бисте користили
прилагођени Compose фајл, наведите га у override фајлу или у `COMPOSE_FILE`
у свом .env фајлу, користећи путању као што је `./local/my-file`. Имајте на
уму да подешавање `COMPOSE_FILE` искључује аутоматско учитавање override
фајла, погледајте одељак [општа употреба](#general-usage) изнад. Docker
Compose разрешава релативне путање у односу на директоријум у коме се налази
главни compose фајл, укључујући путање које користе прилагођени фајлови
сценарија у `local/`.
