Docker Install - metasfresh behind caddy server (reverse proxy)

english

#1

According to instructions here about changing ports, I have modified ports as following,

webui:
  build: webui
  links:
    - webapi:webapi
  ports:
    - "8080:80"
    - "8443:443"
  restart: always
  volumes:
    - /etc/localtime:/etc/localtime:ro
    - /etc/timezone:/etc/timezone:ro
  #uncomment and set to URL where metasfresh will be available from browsers
  #environment:
    - WEBAPI_URL=https://my.domain.com:8443

but it results in the below error,

Creating metasfresh_webui_1    ... error

ERROR: for metasfresh_webui_1  Cannot create container for service webui: b'invalid mode: 8443'

ERROR: for webui  Cannot create container for service webui: b'invalid mode: 8443'
ERROR: Encountered errors while bringing up the project.

trying to build for standard TLS port 443 https://my.domain.com results in the below error,

Creating metasfresh_webui_1 ... error

ERROR: for metasfresh_webui_1  Cannot create container for service webui: b'create WEBAPI_URL=https: "WEBAPI_URL=https" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path'

ERROR: for webui  Cannot create container for service webui: b'create WEBAPI_URL=https: "WEBAPI_URL=https" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path'
ERROR: Encountered errors while bringing up the project.

I’m looking for running metasfresh-docker on custom port 8443 behind caddy server; so that, external requests to https://my.domain.com to be directed by caddy to https://my.domain.com:8443 internally.

Please advise, Thanks.


#2

Hi @OnlineAlone

Looks like you forgot to uncomment environment: since it’s a new “section”.
If it’s not uncommented, docker-compose thinks it belongs to the section above volumes: - that’s why you get this weird error.

It should look like this:

...
  restart: always
  volumes:
    - /etc/localtime:/etc/localtime:ro
    - /etc/timezone:/etc/timezone:ro
  #uncomment and set to URL where metasfresh will be available from browsers
  environment:
    - WEBAPI_URL=https://my.domain.com:8443

(beware indentations)

Cheers.


#3

Thanks @julian.bischof

On other note, please advise on changing WEBAPI_URL later on after getting the platform running.
I want to deploy it on VPS using IP address before I get it pointed by URL with TLS certificate.

Cheers,


#4

metasfresh is installed by docker and waited long till the database being populated but still showing the blank page as below,

webui:
  build: webui
  links:
    - webapi:webapi
  ports:
    - "8080:80"
    - "8443:443"
  restart: always
  volumes:
    - /etc/localtime:/etc/localtime:ro
    - /etc/timezone:/etc/timezone:ro
  #uncomment and set to URL where metasfresh will be available from browsers
  #environment:
    #- WEBAPI_URL=http://example.com:8080

WEBAPI_URL entry were left commented (as it is) to allow access by IP address for now and only port 8080 is working while port 8443 doesn’t respond.

Please advise, Thanks