Using ODK collect without a server (without Central)

We are having a terrible time trying to get an ODK Central server set up in China. Many things are easier there; many things are harder. There are extra licensing steps to getting (or using!) an IP name, for instance.

Question: what are the options for using ODK collect without a proper ODK Central server?

I am thinking:
Is there such a thing as a self-signed certificate, assigned for an IP address without a domain name, that one could install on a field laptop, whose LAN IP address would change with changing hotels (or a consistent LAN IP address; I guess that could be arranged by a router or something)?
Then could we nightly connect tablets to the laptop rather than to an ODK Central on the Internet?

I have very limited knowledge of how certificates, etc work, and we had been hoping to just use the automated one that the installation script seems to get.

Thank you!

Hello ceebeelee, i think this trick - workaround could be what you are looking for.
I've try it once (just for teh sake of experimentation) and the trick was working.

If you can access to Google sheets, it should be an option.
Of course you will not get the management features embeded on Central but at least you will be able to collect and upload data to Google Sheets.

I hope this can be helpful. :wink:

Wow, thank you Neri,
That is really neat.
Alas, Google cannot be easily accessed from China, and we need to have the data storage stay within China for this project. It's also not a "small project," I suppose.

So I'm still looking for a trick to use a mobile ODK Central, most likely...

@ceebeelee How many devices are you deploying? Will all those devices be in the same physical location every night?

Hi Yaw!
Hm, that is a good question. I think even though we will have two teams, they will always be in the same hotel as each other each evening, so yes.
Twenty-five tablets, total.

Some options...

  • Use ODK Briefcase and you can pull the submissions from each device via a USB cable. Then you export the submissions to CSV or push them to a Central server when you are out of country. It's not great for form management, but if you aren't changing your forms, it's not terrible.

  • Register a domain name in the US and get a long-lived cert. Install that cert on the laptop with Central and connect the laptop and phones to a router with OpenWRT installed (or another computer on the same network with a DNS server like dnsmasq). In OpenWRT or on computer with DNS server, map the domain name to the server.

  • Try or I'm not sure they work inside China, but it's easy enough to try.

1 Like

Thanks Yaw. This looks very helpful indeed. We will investigate.

Due to the large number of photos that are recorded by us, I do not use a server.

My workflow

  1. Create a folder on Windows (e.g. ODK replica or any other name)
  2. Create two more folders in this folder and name them instances and forms
  3. Connect a tablet to the laptop with a USB cable
  4. Navigate to your tablet via Windows
  5. There you navigate to
    sdcard / android / data / / filed / projects / "your project" /
  6. Copy the metadata folder
  7. Add this in the Windows folder ODK replica (you only have to do it once)
  8. Navigate back to the folder in Android
  9. Copy your XML form from the folder called forms and paste it into the folder with the same name in Windows (also only has to be done once)
  10. Navigate back to the Android folder and mark all folders in the folder named instances and copy them to the instances folder on Windows
  11. If you have other devices, connect them to your laptop and do the same as in step 10.
  12. Start ODK Briefcase
    Under settings you create a file path for temporarily storing your data under Windows
  13. Now go to the tab labeled pull in ODK Briefcase
  14. Select "collect directory" and choose the file path of the ODK replica
  15. Your form should now be displayed in ODK Briefcase.
  16. Perform pull
  17. Then switch to the tab labeled Export and carry out your desired export
1 Like

We developed a system like this for the Carter Center. We used a Raspberry Pi instead of a laptop as the server. We built little units like this:

Once they are built, all you do is plug them in and join your devices to the wifi network and you're off to the races. No internet required. This was running NEMO but it could run Central just as easily.

Happy to share some documentation on this if you're interested, just @ me.

One thing to keep in mind about SSL certs now is that as far as I know the longest you can get them for now is a year. You can pay for 5 years at once but you still have to re-issue the cert each year. So we just have an annual maintenance period where we update the cert and the software on the server and etc.


Thank you, @Dominik1 ! We are working on implementing your work flow.

Thank you, @tomsmyth ! Wow, that is what we should have done. That looks amazing.