I would like to be able to set up a webserver on the same address as my node such that

curl https://iota.example.com
<html><body> Welcome to My IOTA Node! </body></html>


curl https://iota.example.com/api ...
{"appName":"IRI","appVersion":"", ...

I can easily do this using a ProxyPass in apache:

ProxyPass           /api
ProxyPassReverse    /api

And it works! I can use the address https://iota.example.com/api to successfully make API calls to IRI; however, I cannot seem to be able to connect to it from a wallet.

At least using Light Wallet 2.5.4 w/ IR, paths do not seem to be accepted as part of the host address.

enter image description here

Is there a fundamental issue with running the API on a path? Or is this an issue in the wallet not properly parsing / handing paths? Will functionality be added for this?


Probably depends on what library is used to access your node. The Java library (as well as the Android wallet) uses three parameters for protocol, hostname and port, and therefore would require some redesign to support nodes who don't provide the API at /. The JS library seems to take the full URL, so probably it should work to access such nodes (if the wallet did not check for it).

Therefore, to go this route, probably open a feature request against the wallets or APIs you want to use it with.

If you just want a friendly home page for users who are not wallets, you could also use mod_rewrite to rewrite URLs that do not have a X-IOTA-API-Version header to /help.html, and exclude the rewritten URL from mod_proxy by using

ProxyPass /help.html !

(BTW: I guess there is a specific reason you don't want to use a different name based virtual host for your node?)


This is definitely just an issue with the IOTA Wallet. You can create an issue on GitHub. It's probably very easy to add functionality for this and just nobody needed it until now. I assume it just wasn't considered when writing the check regex and you would work fine if you would change it.

I found it here in the GUI Wallet code. Click on the link then press Ctrl+F and enter "host.match" to find the line.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.