The Push and Market services are disabled by default. The supplied Compose file starts them only when their profiles are selected. Each profile runs the corresponding isolated Agent mode instead of the complete web stack.
Before starting the Push profile, place the signing PFX at ./push/product.pfx. Compose mounts this file read-only at /run/emakin/push/product.pfx and passes its password through PUSH_PRODUCT_CERTIFICATE_PASSWORD. Keep the PFX and password outside source control. The Push profile listens on HTTP port 5110 and HTTPS port 5111; only 5111 is published by the supplied Compose configuration.
The Agent image exposes these runtime ports for custom deployments: Web 80/443, Market 5100, Push 5110/5111, FullText 5120, Health 5121, and Host Administration 7180.
Use the following script to package Docker images for deployment to a closed network. After execution, emakin-deploy.tar.gz will be created in the current directory.
In some environments, the PostgreSQL image may not work correctly with WSL because of file system permission issues. In these cases, use a Docker volume instead of mounting a Windows file path.
The following example shows how an HAProxy service can be added for load balancing across multiple Emakin web nodes:
1 2 3 4 5 6 7 8 9101112131415
#...previous services definition...haproxy:image:haproxy:latestvolumes:-"./haproxy.cfg:/usr/local/etc/haproxy:ro"restart:alwaysports:-"80:80"-"443:443"-"7180:7180"-"25:25"-"587:587"-"465:465"#...rest of the configuration...
You also need a separate haproxy.cfg file. The documented sample is:
1 2 3 4 5 6 7 8 9101112131415
frontend http
bind *:80
bind *:443
bind *:5000
mode http
timeout client 1000s
use_backend all
backend all
mode http
timeout server 1000s
timeout connect 1000s
server s1 web1:80
server s2 web2:80
server s3 web3:80
Adapt the sample to your actual hostnames, ports, and network layout.