Радно Docker Compose окружење
Преглед
Ако "ванила" Zammad стацк не покрива ваш случај употребе, можете користити један од унапред дефинисаних сценарија. Не препоручујемо мењање Compose фајлова локално, јер ће тада бити тешко пратити упстреам промене за стацк. Зато треба да користите методу изградње repo-зиторијума у Portainer-у или да клонирате repo и редовно га ажурирате, када користите Docker Compose.
Следеће опције проксија приступа су подржане:
- Омогућавање доступности стацк-а путем HTTPS-а
- Додајте Cloudflare туннел сервис у стацк
- Додајте Nginx Proxy Manager (NPM) у стацк
- Додајте спољну Docker мрежу у Nginx
- Коришћење спољних сервиса
- Elasticsearch инсталација
- Омогућавање доступности сервиса споља
- Elasticsearch инсталација
- Elasticsearch инсталација
- Додатни сценарији
- Онемогућите сервис за резервне копије
- Додајте Ollama инстанцу у стацк
- Додајте Ollama инстанцу у стацк
- Ограничите хардверске ресурсе стацк-а
Изворни код Zammad-а можете пронаћи на GitHub-у у Zammad репозиторију.
Уопштено
Да бисте користили сценарио, наведите његов compose фајл у променљивој окружења COMPOSE_FILE. Направите фајл .env или копирајте и преименујте .env.dist у фасцикли клонираног репозиторијума. Главни compose фајл мора бити наведен први, а за њим један или више сценарија, раздвојених двотачком (:). Фајлови се примењују наведеним редоследом. Замените чувар места у витичастим заградама именом фајла сценарија који желите да користите.
Пример са два чувара места за сценарије:
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 се не учитава аутоматски. Ако желите да га користите, обавезно га додајте на листу у променљивој окружења.
Омогућавање доступности стека путем HTTPS-а
Ако постављате Zammad за употребу у продукцији, потребно га је заштитити коришћењем HTTPS конекције. Постоје различити сценарији за постизање овога:
Додај Cloudflare Туннел
Ако желите да објавите Zammad на врло практичан начин, можете користити Cloudflare тунел.
- Користите фајл сценарија
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.
Додајте спољну 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_SCHEMAELASTICSEARCH_HOSTELASTICSEARCH_PORTELASTICSEARCH_USERELASTICSEARCH_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 контејнер како бисте користили AI функционалности Zammad-а на свом рачунару.
INFO
Ово је намењено за развој или тестирање, јер је покретање продукцијског LLM стацк-а комплексно.
Да бисте deploysali Ollama контејнер унутар Zammad стацк-а, користите фајл сценарија scenarios/add-ollama.yml. Овај прави Ollama контејнер који аутоматски преузима и сервира Llama3.2, тако да је спреман за коришћење и тестирање AI функција без додатне конфигурације.
Да бисте га користили у Zammad-у, додајте име сервиса и порт (http://ollama:11434) у конфигурацију провидера.
Додај LibreTranslate
Можете подићи додатни Ollama контејнер како бисте користили 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 кључеве. Сваки кључ има сопствени дозвољени број захтева у минуту. Да бисте издали кључ, покрените сервис и извршите:shdocker compose exec libretranslate ltmanage keys add 120Број представља дозвољени број захтева у минуту за овај кључ. Команда исписује генерисани кључ, који је UUID који прави сам LibreTranslate. Уместо тога, можете навести и сопствени кључ опцијом
--key.- LT_REQUIRE_API_KEY_SECRET
- Подесите на
trueда API кључеви буду обавезни за све захтеве. ЗахтеваLT_API_KEYS=true.
INFO
LibreTranslate подржава још много опција. Оне су описане у званичној документацији, која наводи и променљиве окружења које контејнер прихвата.
Ограничи ресурсе
Ако желите да ограничите хардверске ресурсе које 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. Репозиториј стека укључује неактивну датотеку примера коју можете ископирати и прилагодити:
cp docker-compose.override.yml.dist docker-compose.override.ymlУчитавање сценарија овде није подржано. Да бисте учитали сценарио, користите променљиву COMPOSE_FILE у свом .env фајлу, како је описано у одељку општа употреба изнад.
Додавање сопствених фајлова
Код Docker Compose инсталације урађене клонирањем репозиторијума, фајлове који припадају само вашој инстанци можете чувати у директоријуму local/ stack-а, нпр. делове конфигурације, прилагођене фајлове сценарија, скрипте, белешке или сертификате. Git занемарује садржај директоријума осим фајла README.md, тако да git pull ове фајлове нити пријављује нити мења.
Фајлови у local/ се не учитавају аутоматски. Да бисте користили прилагођени Compose фајл, наведите га у override фајлу или у COMPOSE_FILE у свом .env фајлу, користећи путању као што је ./local/my-file. Имајте на уму да подешавање COMPOSE_FILE искључује аутоматско учитавање override фајла, погледајте одељак општа употреба изнад. Docker Compose разрешава релативне путање у односу на директоријум у коме се налази главни compose фајл, укључујући путање које користе прилагођени фајлови сценарија у local/.