"Did you try changing the definition of open-socket that you found, adding a fourth argument with the right IP address?"
I think that's exactly how to make this work (albeit hackishly). Here's the code for that, but note that I haven't actually tried this out:
(xdef open-socket
(lambda (num)
(tcp-listen num 50 #t (getenv "OPENSHIFT_DIY_IP"))))
I've done some OpenShift experiments using a Node.js cartridge; I'm not engrossed enough for a DIY cartridge yet. :) It's nice as a freemium host for long-running servers, so getting news.arc to run on it would be pretty exciting.
---
"...and I've never heard of a server needing to know its own IP address."
This isn't its own IP address; just looking at the way this needs to be used, it's the a IP address of a reverse proxy. I assume this is so the OpenShift cloud can easily hibernate and migrate these hosted servers while it does its own load balancing and maintenance.