Hi Matt,
I'm running on a Ubuntu server, with a GUI through VNC so I can have TWS running in the background as a sanity check. It works the same with the IB Gateway, which consumes a lot less resources than TWS. I believe it's possible to launch the gateway without any GUI at all, but haven't experimented.
Another difference is that TWS wants to log you out/in on a daily basis (at a time you specify) so this would need to be coded in your app. The gateway can run indefinitely.