Main features
- Forms uploaded as XLSForm spreadsheets, with drafts and versions
- Offline collection with the ODK Collect Android app
- Web forms for known users or public links
- Encrypted forms with your own or project-managed keys
- Projects with web user and app user roles
- Submission review, comments and edits
- Entities for follow-up visits and registries across forms
- OData feed for Excel, Power BI and R
- REST and OpenRosa APIs
- Media and data attachments in forms
What ODK Central does
ODK is a data collection toolkit used by researchers and field teams in public health, global development, crisis response and environmental research. Central is its server. It stores form definitions, manages projects, users and permissions, and receives submissions from the ODK Collect Android app and from web forms.
Forms are written in XLSForm, a spreadsheet format for questionnaires, and uploaded to Central, which converts them. Drafts let you test a new version before publishing it. A form can include media and data files, such as a list of villages for a choice question. Collect works offline and sends data when it reconnects, and web forms let known users or anyone with a public link fill a form in a browser.
On the server, submissions appear in a table where they can be reviewed, commented on and edited. Entities carry data from one form to another, so a household registered in one form can be selected and updated in later visits, with conflict handling when two people update it in parallel.
Security and data access
Central has two kinds of account: web users, who can be server or project administrators, data viewers or form fillers, and app users, who collect data on a device and see only their project. Forms can be encrypted with a key you supply or one managed by the project, so that submissions cannot be read on the server without it.
For analysis, Central exposes an OData feed that Excel, Power BI and R can read directly and refresh, alongside REST and OpenRosa APIs and exports compatible with ODK Briefcase.
Self-hosting ODK Central
Central ships as a Docker Compose application from the getodk/central repository, with an official installation guide for DigitalOcean that also works on other servers. The stack includes the Node.js back end and Vue front end, PostgreSQL 14 (an external database is supported), Enketo with Redis for web forms, a pyxform service for XLSForm conversion, nginx and a mail server. The guide recommends 2 GB of RAM, or 1 GB plus 2 GB of swap if you expect few submissions. A domain name pointing at the server is mandatory, and certificates come from Let’s Encrypt by default. The built-in mail server works for password resets, but the docs advise a dedicated email service for reliable delivery.
The whole project is Apache-2.0, the most permissive license among the larger platforms in this category.
Hosted version
ODK Cloud is the official managed hosting from Get ODK Inc., the team behind ODK, with paid plans and a choice of data storage in the United States, Europe or India.
Limitations
Central has no drag-and-drop form designer: forms are normally written in a spreadsheet, which is quick for long questionnaires but less approachable than Google Forms. Collect runs only on Android, so other devices use web forms. ODK is meant for structured data collection, not marketing forms, payments or conversational layouts. KoboToolbox uses the same XLSForm approach and adds a visual form builder and a free hosted plan.
Who it suits
ODK Central suits research groups, health programs, NGOs and governments that collect data on mobile devices in the field, often offline, and need encryption, follow-up workflows and a direct link to their analysis tools, on a modest server of their own or on ODK Cloud.
License details
Apache-2.0. getodk/central is the umbrella and packaging repository; the code is in central-backend and central-frontend, also Apache-2.0.
Technical details
Self-hosting needs
- PostgreSQL
- Redis
- Enketo
Built with
- Node.js
- Vue
- PostgreSQL
Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.