actualbudget / actual-server

Actual's server
https://actualbudget.org
MIT License
3.24k stars 625 forks source link

Docker: Server ignores ENV port #137

Closed Matesaktesak closed 1 year ago

Matesaktesak commented 1 year ago

I'm running Actual-server in a docker on UnRAID. I don't like it having the 5006 port, I like having my dockers on they're own IPs with the default 80 port for WebGUI, because I'm running local DNS so the program should be accesable from 'http://actual.lan'.

So the docker is set to custom IP on the 'br0' interface - when so, containers don't need port mapping (in fact its useless) so the only thing I should need to change is Actuals port. In the documentation it says that the port can be set with an environment variable 'ACTUAL_PORT' - when I set that in the docker with -e 'ACTUAL_PORT'='80' it does nothing.

Matesaktesak commented 1 year ago

Here is my docker run command:

docker run
  -d
  --name='actual-server'
  --net='br0'
  --ip='192.168.201.226'
  -e TZ="Europe/Budapest"
  -e HOST_OS="Unraid"
  -e HOST_HOSTNAME="REDACTED"
  -e HOST_CONTAINERNAME="actual-server"
  -e 'ACTUAL_PORT'='80'
  -l net.unraid.docker.managed=dockerman
  -l net.unraid.docker.webui='http://[IP]:[PORT:80]'
  -l net.unraid.docker.icon='https://raw.githubusercontent.com/xavier-hernandez/unraid-templates/master/resources/budget.png'
  -v '/mnt/user/appdata/actual-server/data':'/data':'rw' 'jlongster/actual-server:latest'

In the log it still outputs Listening on 0.0.0.0:5006

MatissJanis commented 1 year ago

(not a Docker expert)

Could it be because of the mixed single quotes?

Try this: -e ACTUAL_PORT="80"

j-f1 commented 1 year ago

That might be the issue, if it sees the env variable as '80' instead of 80 it will fall back to the default port. If you add env on to the end of your docker run command you should see all of the env variables, maybe that will help?

Matesaktesak commented 1 year ago

Thank you both, I've looked at the code and still couldn't see why it was not working. I tried using the double quotes and I tried looking at the env variables, nothing stood out. I eventually got it resolved by force-updating the container to the :latest-alpine version. So I figure it wasn't really Actuals fault, but a Docker/unRAID one - perhaps it caches the ENV? IDK... but it works (out of the blue) now!