A possible solution to running a full node. Can be installed on a VPS with no ability to send.
If you only need to receive and not spend on the server create a watch only wallet on your server and then use the addrequest command with the –force switch to get new addresses. You can give it any dummy amount. See `electrum help addrequest` on the command line for more info. This command can also be used over a JSON RPC interface.
Alternatively you can use pybitcoin tools or some other implementation of bip32 in python to generate addresses from your wallet’s master public key aka xpub.https://bitcointalk.org/index.php?topic=2721832.msg27959367#msg27959367
More research is needed!