jhalter / mobius

A Hotline server implemented in Golang for macOS, Linux, and Windows operating systems
MIT License
73 stars 8 forks source link

Development at pace, breaking changes? #151

Open aptonline opened 1 month ago

aptonline commented 1 month ago

Hi Jeff, it's great to see so many updates to Mobius with fixes and features but I'm wondering if there are any breaking changes to existing configs that need to be considered before updating.

I've seen a few release notes from the past few released that seem to suggest configs (or setups) need to change before taking advantage of the new versions which has made me reluctant to update just yet as I have a working system.

If it worth including a section within release notes calling out anything specific that needs to change or be added to upgrade?

jhalter commented 1 month ago

Hey Ade, other than -api-addr replacing -stats-port, there are no intentional breaking changes. Any config changes or options added in new versions should be transparently handled without manual steps to update config files.

Your feedback in identifying any unintentional breaking changes would be appreciated! If you're making a big jump in versions, it wouldn't hurt to make a backup of the config files first.

aptonline commented 1 month ago

Hi Jeff,

I don't seem to be able to implement--api-port= in my docker run command. Could you provide a full Docker run example?

jhalter commented 1 month ago

Sorry, it looks like I documented this incorrectly in the readme. Example usage to bind the API to the localhost IP would be --api-addr=127.0.0.1:5503, or --api-addr=:5503 to bind to all IPs. Hope that helps!

aptonline commented 1 month ago

I'm receiving unknown flag when running with --api-addr=:5503

unknown flag: --api-addr

Would it be better to set these as environment variables?

Here's my full run command for reference:

sudo docker run \
    --pull=always \
    --rm \
    -p 5500:5500 \
    -p 5501:5501 \
    --api-addr=:5503 \
    -v /mobius:/usr/local/var/mobius/config \
    ghcr.io/jhalter/mobius-hotline-server:latest \
    -init
jhalter commented 1 month ago

Would it be better to set these as environment variables?

Yeah, generally I'd like to make it possible to set config options as environment variables. I'm setting up my own server on a new Raspberry Pi with Docker and I recognize that environment vars would make it easier and be more idiomatic for Docker. For Gptbot especially it's not ideal to have to set up a volume mount for the config file.

To fix your Docker run command, move api-addr to be after the Docker image name, as it's a flag for the container vs a flag for docker run and add another -p 5503:5503 to forward the api port into the container. That should do it.

sudo docker run \
    --pull=always \
    --rm \
    -p 5500:5500 \
    -p 5501:5501 \
    -p 5503:5503 \
    -v /mobius:/usr/local/var/mobius/config \
    ghcr.io/jhalter/mobius-hotline-server:latest \
    --api-addr=:5503 \
    -init
aptonline commented 1 month ago

School boy error there with the placement, thanks, all working now in my test setup :)

Small typo in the docs, you specify port 5503 but the GET/POST examples shows 5603.

Also for some reason when using RapidAPI to test POST localhost:5503/api/v1/shutdown it gives me a Bad Request but if I use the CURL example in terminal it works.

Screenshot 2024-08-08 at 16 37 11