FlowFuse / docker-compose

Docker Compose file to run FlowForge
Apache License 2.0
15 stars 19 forks source link

Node app not opening via browser #65

Closed satyapv21 closed 1 year ago

satyapv21 commented 1 year ago

Current Behavior

Setup everything including docker-compose, tested ports are working in/.out

Expected Behavior

We should login to NodeRed

Steps To Reproduce

Run the shell script (Build Containers.sh) docker-compose up Login to flowforge

Environment

Would be great if you have an example of /etc/flowforge.yml please for local setup? Current configs

port: 3000 host: 172.31.43.56. #Should this be the public IP or private IP? domain: www.stellardock.com. #This is a valid domain but can we use localhost to get rid of this to test local? base_url: localhost api_url: http://forge:3000

Should I make any changes to /etc/hosts file too?

Any help would be appreciated

hardillb commented 1 year ago
  1. Don't change the host field, it is which address the FlowForge application process binds to, in a Docker environment you don't know what (docker internal) IP address will be assigned to the container before it is created so this should always be 0.0.0.0 so it will bind to all.
  2. The domain value is what the project names will be appended to e.g. if you pass example.com then a project called test will end up being accessed at test.example.com. You should not pass a full hostname (e.g. www.example.com) but only a domain that you can allocate any host within. You will need to set up a wildcard DNS entry for this domain.
  3. base_url is the fully qualified host name that will be used for the FlowForge application. e.g. forge.example.com. You can not use localhost for this.

You can NOT use localhost for any of the values because in a docker environment localhost will always point to the container that is trying to resolve it, so in the case of FlowForge project this would mean it could never find the FlowForge application.

While it is possible to do a very small test by editing /etc/hosts it really is not recommended (You would point forge.example.com and test.example.com at the IP address of the docker0 interface and ensure you make the name of your project first test). You need to either have access to your domains DNS server or set up a local DNS server to resolve entries in the domain you have supplied. This is mentioned in the READMD.md and the Install Docs.

The version of the flowforge.yml file that ships with the project is the example to use for local testing, you will need to setup a DNS server to resolve for the example.com domain.

Instructions on how to setup dnsmasq to do local testing can be found here