I've setup Aggregate from the VM package on my server. I have the VM setup as a NAT device, with port forwarding that forwards requests from port 1337 on the host system to port 80 on the guest device.
I can navigate a web browser to http://my.ip.address:1337/ and Aggregate loads just fine. I can login, go to submit?, and everything looks like it works great.
The problem is that when I try to configure ODK Collect on my Android device to connect to this server, I enter http://my.ip.address:1337/ and after typing in the login details, sending forms always result in a "No route to host" error. Further, it looks like it's trying to talk on port 80 which obviously won't work. I can open a web browser to the aggregate interface on this device.
Does Collect not have a way of recognizing a custom port on the server URL?
What ODK tool and version are you using? And on what device and operating system version?
Latest ODK Aggregate and last ODK Collect from the app store. Aggregate runs as a VM on a CentOS system I have, Collect on a Samsung tablet.
What steps can we take to reproduce the problem?
Run an aggregate server on a custom port and try to connect to it with Collect.
Hi @Gunn777! When you installed Aggregate, it asked you for a fully qualified domain name that s publicly accessible on the Internet. You'll need to re-run the installer and put http://my.ip.address:1337 as that fully qualified domain name.
3b) it returns an error message with the following:
So I think it's trying to talk to the ODK Aggregate server on port 80, even though I am setting the port in the URL string.
I might just decide to run aggregate as a bridged VM, where it has its own IP. But there might be a situation in the future where I can't take another IP on my network so I'll be forced to use a custom port on my VM host.
The form download (but not the form listing) relies on the FQDN. If you want to use Collect to interact with Aggregate, you need to configure Aggregate with that FQDN.
I understand that you can navigate to Aggregate via your tablet's browser, but that doesn't matter in this case because, again, Aggregate uses the FQDN to build the URLs that Collect uses to download the forms. That is, it'll happily get a form list from port 1337, but it will expect to download the actual forms from port 80.
I've been struggling with issues to do with external access of my Aggregate Server. My ISP has done a static mapping from my internal address to the public IP address. So i followed your method (before i encountered this post) and edited security.properties file to reflect the outside IP address. When i enter the inside IP address,that works properly but redirects me to the outside public address after i enter authentication credentials, which of course throws a '400' error at me. I'm still working at it.
Need more support?ODK Cloud, the official hosting service from the creators of ODK, comes with priority support. Get started today.