{"id":18597736,"url":"https://github.com/aem-design/docker-dispatcher","last_synced_at":"2025-06-14T17:38:16.527Z","repository":{"id":80556446,"uuid":"205742580","full_name":"aem-design/docker-dispatcher","owner":"aem-design","description":"aem dispatcher image that allow running Author and Publish modes from one image","archived":false,"fork":false,"pushed_at":"2021-05-15T14:23:59.000Z","size":1371,"stargazers_count":9,"open_issues_count":5,"forks_count":5,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-25T01:31:47.878Z","etag":null,"topics":["aem","devops","dispatcher","docker","httpd"],"latest_commit_sha":null,"homepage":"http://aem.design","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aem-design.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"patreon":"maxbarrass","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2019-09-01T23:08:15.000Z","updated_at":"2023-11-04T13:27:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"c99417e6-bfb6-4abe-b917-043719fa4b0d","html_url":"https://github.com/aem-design/docker-dispatcher","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aem-design%2Fdocker-dispatcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aem-design%2Fdocker-dispatcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aem-design%2Fdocker-dispatcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aem-design%2Fdocker-dispatcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aem-design","download_url":"https://codeload.github.com/aem-design/docker-dispatcher/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248261993,"owners_count":21074229,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aem","devops","dispatcher","docker","httpd"],"created_at":"2024-11-07T01:29:14.295Z","updated_at":"2025-04-10T17:31:11.777Z","avatar_url":"https://github.com/aem-design.png","language":"Shell","readme":"## CentOS 7 with HTTPD\n\n[![build_status](https://github.com/aem-design/docker-dispatcher/workflows/build/badge.svg)](https://github.com/aem-design/docker-dispatcher/actions?query=workflow%3Abuild) \n[![github license](https://img.shields.io/github/license/aem-design/dispatcher)](https://github.com/aem-design/dispatcher) \n[![github issues](https://img.shields.io/github/issues/aem-design/dispatcher)](https://github.com/aem-design/dispatcher) \n[![github last commit](https://img.shields.io/github/last-commit/aem-design/dispatcher)](https://github.com/aem-design/dispatcher) \n[![github repo size](https://img.shields.io/github/repo-size/aem-design/dispatcher)](https://github.com/aem-design/dispatcher) \n[![docker stars](https://img.shields.io/docker/stars/aemdesign/dispatcher)](https://hub.docker.com/r/aemdesign/dispatcher) \n[![docker pulls](https://img.shields.io/docker/pulls/aemdesign/dispatcher)](https://hub.docker.com/r/aemdesign/dispatcher) \n[![github release](https://img.shields.io/github/release/aem-design/dispatcher)](https://github.com/aem-design/dispatcher)\n\nThis is docker image based on CentOS 7 with HTTPD\n\n### Included Packages\n\nFollowing is the list of packages included\n\n* httpd                 - for use of dispatcher module\n\n### Container Logs\n\nAll apache and dispatcher logs are piped to container stdout, following is an example of ```docker logs -f publish-dispatcher``` \n\n```\n{\"@timestamp\":\"2019-06-25 13:09:31.317603\", \"level\":\"notice\", \"module\":\"suexec\", \"process\":\"6\", \"message\":\"AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)\", \"host\":\"dispatcher\",\n{\"@timestamp\":\"2019-06-25 13:09:31.317775\", \"level\":\"info\", \"module\":\"ssl\", \"process\":\"6\", \"message\":\"AH01887: Init: Initializing (virtual) servers for SSL\", \"host\":\"dispatcher\",\n{\"@timestamp\":\"2019-06-25 13:09:31.317797\", \"level\":\"info\", \"module\":\"ssl\", \"process\":\"6\", \"message\":\"AH01876: mod_ssl/2.4.6 compiled against Server: Apache/2.4.6, Library: OpenSSL/1.0.2k\", \"host\":\"dispatcher\",\n{\"@timestamp\":\"2019-06-25 13:09:31.344707\", \"level\":\"notice\", \"module\":\"auth_digest\", \"process\":\"6\", \"message\":\"AH01757: generating secret for digest authentication ...\", \"host\":\"dispatcher\",\n{\"@timestamp\":\"2019-06-25 13:09:31.345385\", \"level\":\"notice\", \"module\":\"lbmethod_heartbeat\", \"process\":\"6\", \"message\":\"AH02282: No slotmem from mod_heartmonitor\", \"host\":\"dispatcher\",\n{\"@timestamp\":\"2019-06-25 13:09:31.345490\", \"level\":\"warn\", \"module\":\"ssl\", \"process\":\"6\", \"message\":\"AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]\", \"host\":\"dispatcher\",\n{\"@timestamp\":\"2019-06-25 13:09:31.345497\", \"level\":\"info\", \"module\":\"ssl\", \"process\":\"6\", \"message\":\"AH01887: Init: Initializing (virtual) servers for SSL\", \"host\":\"dispatcher\",\n{\"@timestamp\":\"2019-06-25 13:09:31.345510\", \"level\":\"info\", \"module\":\"ssl\", \"process\":\"6\", \"message\":\"AH01876: mod_ssl/2.4.6 compiled against Server: Apache/2.4.6, Library: OpenSSL/1.0.2k\", \"host\":\"dispatcher\",\n{\"@timestamp\":\"2019-06-25 13:09:31.349115\", \"level\":\"notice\", \"module\":\"mpm_prefork\", \"process\":\"6\", \"message\":\"AH00163: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips Communique/4.3.2 configured -- resuming normal operations\", \"host\":\"dispatcher\",\n{\"@timestamp\":\"2019-06-25 13:09:31.349154\", \"level\":\"info\", \"module\":\"mpm_prefork\", \"process\":\"6\", \"message\":\"AH00164: Server built: Apr 24 2019 13:45:48\", \"host\":\"dispatcher\",\n{\"@timestamp\":\"2019-06-25 13:09:31.349174\", \"level\":\"notice\", \"module\":\"core\", \"process\":\"6\", \"message\":\"AH00094: Command line: 'httpd -f /dispatcher/httpd/httpd.conf -D FOREGROUND'\", \"host\":\"dispatcher\",\n{\"@date\":\"Tue Jun 25 13:09:31 2019\", \"level\":\"I\", \"type\":\"dispatcher\", \"format\":\"simple\", \"pid\":\"pid 6\", \"message\":\"IP list for backend rend01 will be resolved on every request.\"}\n{\"@date\":\"Tue Jun 25 13:09:31 2019\", \"level\":\"I\", \"type\":\"dispatcher\", \"format\":\"simple\", \"pid\":\"pid 6\", \"message\":\"Dispatcher initialized (build 4.3.2/apache2.4-linux-x86_64)\"}\n{\"@timestamp\":\"uc\", \"client_ip\":\"172.17.0.1\", \"client_port\":\"60260\", \"server_ip\":\"172.17.0.7\", \"Connection\": \"-:- \", \"X-Forwarded-For\":\"-\", \"X-Powered-By\": \"-\" \"user\":\"-\", \"REMOTE_USER\":\"-\", \"JSESSIONID\":\"-\", \"host\":\"dispatcher\", \"pid\":\"80\", \"tid\":\"tid\", \"request\":\"-\", \"protocol\":\"HTTP/1.1\", \"http_method\":\"GET\", \"vhost\":\"localhost\", \"service_port\":\"80\", \"path\":\"/content/aemdesign-showcase/au/en/component/lists/page-list.html\", \"query_string\":\"\", \"referer\":\"-\", \"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36\", \"response_code\":\"200\", \"response_location\":\"-\", \"Content-Type\":\"text/html\", \"bytes_in\":\"2375\", \"bytes_out\":\"8486\", \"keepalive\":\"+\", \"duration_micros\":\"4810243\", \"duration_sec\": 4, \"status\":\"200\", \"short_message\": \"GET /content/aemdesign-showcase/au/en/component/lists/page-list.html HTTP/1.1\" },\n{\"@date\":\"Tue Jun 25 13:10:43 2019\", \"level\":\"I\", \"type\":\"dispatcher\", \"format\":\"render\", \"pid\":\"pid 10\", \"method\":\"GET\", \"path\":\"/content/aemdesign-showcase/au/en/component/lists/page-list.html\", \"status\":\"200\", \"size\":\"158170\", \"duration\":\"4809ms\", \"renderer\":\"publish/rend01\"}\n{\"@timestamp\":\"uc\", \"client_ip\":\"172.17.0.1\", \"client_port\":\"60260\", \"server_ip\":\"172.17.0.7\", \"Connection\": \"-:- \", \"X-Forwarded-For\":\"-\", \"X-Powered-By\": \"-\" \"user\":\"-\", \"REMOTE_USER\":\"-\", \"JSESSIONID\":\"-\", \"host\":\"dispatcher\", \"pid\":\"80\", \"tid\":\"tid\", \"request\":\"-\", \"protocol\":\"HTTP/1.1\", \"http_method\":\"GET\", \"vhost\":\"localhost\", \"service_port\":\"80\", \"path\":\"/content/dam/aemdesign-showcase/en/components/media/image/city1.jpg\", \"query_string\":\"\", \"referer\":\"http://localhost/content/aemdesign-showcase/au/en/component/lists/page-list.html\", \"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36\", \"response_code\":\"404\", \"response_location\":\"-\", \"Content-Type\":\"text/html\", \"bytes_in\":\"2334\", \"bytes_out\":\"920\", \"keepalive\":\"+\", \"duration_micros\":\"22320\", \"duration_sec\": 0, \"status\":\"404\", \"short_message\": \"GET /content/dam/aemdesign-showcase/en/components/media/image/city1.jpg HTTP/1.1\" },\n{\"@date\":\"Tue Jun 25 13:10:43 2019\", \"level\":\"I\", \"type\":\"dispatcher\", \"format\":\"render\", \"pid\":\"pid 10\", \"method\":\"GET\", \"path\":\"/content/dam/aemdesign-showcase/en/components/media/image/city1.jpg\", \"status\":\"404\", \"size\":\"568\", \"duration\":\"22ms\", \"renderer\":\"publish/rend01\"}\n{\"@timestamp\":\"uc\", \"client_ip\":\"172.17.0.1\", \"client_port\":\"60262\", \"server_ip\":\"172.17.0.7\", \"Connection\": \"-:- \", \"X-Forwarded-For\":\"-\", \"X-Powered-By\": \"-\" \"user\":\"-\", \"REMOTE_USER\":\"-\", \"JSESSIONID\":\"-\", \"host\":\"dispatcher\", \"pid\":\"80\", \"tid\":\"tid\", \"request\":\"-\", \"protocol\":\"HTTP/1.1\", \"http_method\":\"GET\", \"vhost\":\"localhost\", \"service_port\":\"80\", \"path\":\"/libs/granite/csrf/token.json\", \"query_string\":\"\", \"referer\":\"http://localhost/content/aemdesign-showcase/au/en/component/lists/page-list.html\", \"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36\", \"response_code\":\"200\", \"response_location\":\"-\", \"Content-Type\":\"application/json\", \"bytes_in\":\"2260\", \"bytes_out\":\"348\", \"keepalive\":\"+\", \"duration_micros\":\"17257\", \"duration_sec\": 0, \"status\":\"200\", \"short_message\": \"GET /libs/granite/csrf/token.json HTTP/1.1\" },\n{\"@date\":\"Tue Jun 25 13:10:43 2019\", \"level\":\"I\", \"type\":\"dispatcher\", \"format\":\"render\", \"pid\":\"pid 11\", \"method\":\"GET\", \"path\":\"/libs/granite/csrf/token.json\", \"status\":\"200\", \"size\":\"2\", \"duration\":\"17ms\", \"renderer\":\"publish/rend01\"}\n{\"@timestamp\":\"uc\", \"client_ip\":\"172.17.0.1\", \"client_port\":\"60262\", \"server_ip\":\"172.17.0.7\", \"Connection\": \"-:- \", \"X-Forwarded-For\":\"-\", \"X-Powered-By\": \"-\" \"user\":\"-\", \"REMOTE_USER\":\"-\", \"JSESSIONID\":\"-\", \"host\":\"dispatcher\", \"pid\":\"80\", \"tid\":\"tid\", \"request\":\"-\", \"protocol\":\"HTTP/1.1\", \"http_method\":\"GET\", \"vhost\":\"localhost\", \"service_port\":\"80\", \"path\":\"/content/dam/aemdesign-showcase/en/components/media/image/city1.jpg\", \"query_string\":\"\", \"referer\":\"http://localhost/content/aemdesign-showcase/au/en/component/lists/page-list.html\", \"user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36\", \"response_code\":\"404\", \"response_location\":\"-\", \"Content-Type\":\"text/html\", \"bytes_in\":\"2334\", \"bytes_out\":\"920\", \"keepalive\":\"+\", \"duration_micros\":\"10906\", \"duration_sec\": 0, \"status\":\"404\", \"short_message\": \"GET /content/dam/aemdesign-showcase/en/components/media/image/city1.jpg HTTP/1.1\" },\n{\"@date\":\"Tue Jun 25 13:10:43 2019\", \"level\":\"I\", \"type\":\"dispatcher\", \"format\":\"render\", \"pid\":\"pid 11\", \"method\":\"GET\", \"path\":\"/content/dam/aemdesign-showcase/en/components/media/image/city1.jpg\", \"status\":\"404\", \"size\":\"568\", \"duration\":\"11ms\", \"renderer\":\"publish/rend01\"}\n```\n\n#### Log Format\n \n- All records with ```@timestamp``` are from apache generated using CustomLog and ErrorLog \n- All records with ```@date``` are from apache Dispatcher module generated using DispatcherLog \n- Apache can spit out non JSON formatted logs into STDOUT\n\n### Environment Variables\n\nFollowing environment variables are available\n\n| Name                          | Default Value                 | Notes |\n| ---                           | ---                           | ---   |\n| APACHE_MODULES                | \"/dispatcher/httpd/modules\"   |  |\n| APACHE_SSL_SUBJ               | \"/C=AU/ST=VIC/L=Melbourne/O=AEM.Design/CN=dispatcher\" |  |\n| APACHE_RUN_USER               | \"apache\" | this is the container user |\n| APACHE_RUN_GROUP              | \"apache\" |  |\n| APACHE_RUN_USERID             | 1100 |  |\n| APACHE_RUN_GROUPID            | 1100 |  |\n| APACHE_LOGLEVEL               | \"debug\" |  |\n| APACHE_VERSION                | \"2.4\" |  |\n| DISPATCHER_SSL_VERSION        | \"1.1\" | SSL version for dispatcher module  |\n| DISPATCHER_VERSION            | \"4.3.2\" |  |\n| DISPATCHER_LOGLEVEL           | 1 |  |\n| DISPATCHER_CONFIG             | \"author\" | can be author/publish corresponds to config folders in container |\n| DISPATCHER_NAME               | \"dispatcher\" |  |\n| DISPATCHER_PROPOGATESYNDPOST  | 0 |  |\n| DISPATCHER_SERVESTALEONERROR  | 1 |  |\n| DISPATCHER_STATLEVEL          | 3 |  |\n| DISPATCHER_CACHEAUTHORIZED    | 0 |  |\n| DISPATCHER_SESSIONMANAGEMENT  | 0 |  |\n| DISPATCHER_DOWNLOAD_URL       | \"http://download.macromedia.com/dispatcher/download/dispatcher-apache${APACHE_VERSION}-linux-x86_64-${DISPATCHER_VERSION}.tar.gz\" |  |\n| DISPATCHER_DOWNLOAD_URL_SSL   | \"http://download.macromedia.com/dispatcher/download/dispatcher-apache${APACHE_VERSION}-linux-x86_64-ssl${SSL_VERSION}-${DISPATCHER_VERSION}.tar.gz\" |  |\n| RENDERER_HOST                 | \"0.0.0.0\" |  |\n| RENDERER_PORT                 | 4502 |  |\n| RENDERER_TIMEOUT              | 10000 |  |\n| RENDERER_RESOLVE              | 1 |  |\n| RENDERER_RECEIVE_TIMEOUT      | 600000 |  |\n| RENDERER_IPV4                 | 0 |  |\n\n\n### Volumes\n\nFollowing volumes are exposed\n\n| Path | Notes  |\n| ---  | ---    |\n| \"/data/httpd/cache\" | |\n| \"/data/httpd/logs\" | latest updated outputs all logs to container stdout so you will not see any logs generated |\n| \"/data/httpd/redirectmap\" | |\n\n### Ports\n\nFollowing Ports are exposed\n\n| Path | Notes  |\n| ---  | ---    |\n| 8080 |        |\n| 8433 |        |\n\n### Starting\n\nTo start local dispatcher on port 9090 using local docker publish instance using poert 4503\n\n```bash\ndocker run --name dispatcher-publish \\\n-e \"RENDERER_HOST=`docker run --rm alpine /sbin/ip route | awk '/default/ { print $3 }'`\" \\\n-e \"RENDERER_PORT=4503\" \\\n-e \"DISPATCHER_CONFIG=publish\" \\\n-p9090:8080 -d \\\n-p9433:8433 -d \\\naemdesign/dispatcher\n``` \n\nTo start local dispatcher on port 9091 using local docker author instance using poert 4502\n\n```bash\ndocker run --name dispatcher-author \\\n-e \"RENDERER_HOST=`docker run --rm alpine /sbin/ip route | awk '/default/ { print $3 }'`\" \\\n-e \"RENDERER_PORT=4502\" \\\n-p9091:8080 -d \\\n-p9434:8433 -d \\\naemdesign/dispatcher\n``` \n","funding_links":["https://patreon.com/maxbarrass"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faem-design%2Fdocker-dispatcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faem-design%2Fdocker-dispatcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faem-design%2Fdocker-dispatcher/lists"}