Ideal Deadline: Today at 5pm ET (2h50m from now). Will tip accordingly.
Your goal is to create 1/ a docker and 2/ a simple Phoenix app.
The Phoenix app should listen to POST requests and for each POST request should publish messages on a RabbitMq queue. Delivery = git repo. See below for all the details.
1/ a dockerfile that will create a docker setup to run a simple phoenix app.
* Note1: which requires erlang + elixir — use latest versions for both ]
* Note2: and requires a postgres to be running — use version 14-main ]
* Note3: the docker should also have git installed. The container should mount the SSH key from the host ( ~/.ssh/id_ed25519.pub ) so that the container can use them temporarily and git clone/pull/push from the git you will share ]
* Note4: nginx to route the traffic sent to the public IP to the 128.0.0.1:4000 — which is what the Phoenix app will listen to ]
2/ The simple phoenix app should listen to POST requests on localhost, and PUBLISH their json content to a rabbitMq queue which is already running on a different server: I will share RabbitMq connection details in DM… and you pick a queue name (should be created automatically if it doesn’t exist)
* Note5: should use “amqp” dependency to create the rabbitMq messages, or alternative (but please explain reason to use the alternative) ]
* Note6: to be clear, I should be able to send the POST requests from a different machine/PC to the server where the container is using a public IP address, which the container will route to 127.0.0.1 through ngnix. ]
Deliverable = a git repo with the above code (the dockerfile should be in the same repo) and a readme with the commands from running the docker, to launching the phoenix app. To sending a dummy curl post request from a different PC:
Test: successful completion of the project means that I should be able to send that curl POST request, and I should see the message in the shell with the phoenix server log, and should also see the message show up in the RabbitMQ message queue.
To be shared in DMs:
– My git username for delivery
– The RabbitMQ details.