monkey icon indicating copy to clipboard operation
monkey copied to clipboard

Setting `MONKEY_MONGO_URL` env variable to non-default value results in island exiting with error

Open cakekoa opened this issue 1 year ago • 1 comments

Describe the bug

The mongo URL is configurable via the MONKEY_MONGO_URL environment variable. However, Flask-Security also has a connection to mongodb, and it uses hard-coded values instead of the connection details from MONKEY_MONGO_URL. Thus, if MONKEY_MONGO_URL differs from the defaults, the server will error out because one of the connections to mongo will fail.

Introduced in 564c15dc1cc2395151a545ea89f1d9ff9260becc #2157

To Reproduce

Steps to reproduce the behavior:

  1. Setup and run mongodb on a different port (e.g. 27019)
  2. Set MONKEY_MONGO_URL environment variable with the port (e.g. mongodb://localhost:27019/monkey_island)
  3. Run the island
  4. Observe that the island exits because it failed to connect to mongodb

Expected behavior

I expect both connections to mongodb to use the same connection details.

Machine version (please complete the following information):

  • OS: Windows or Linux

cakekoa avatar May 08 '24 17:05 cakekoa

I'm also trying to run it using docker compose but facing the same problem. Here's my workaround:

  • copy file /monkey/monkey_island/cc/mongo_consts.py from inside the container to your docker-host (using docker cp)
  • edit the file on your docker-host and replace HOST,PORT with your valid values. ( i only changed DEFAULT_MONGO_DB_HOST from "localhost" to "db" which is the service name of the mongodb container in my compose)
  • mount the file into your container e.g.
volumes:
      - ${DOCKER_DIR}mongo_consts.py:/monkey/monkey_island/cc/mongo_consts.py

aleex1848 avatar Oct 29 '24 19:10 aleex1848