Introduction to QFieldCloud
QFieldCloud is a Django-based SaaS platform designed to synchronize projects and data between QGIS (+ QFieldSync plugin) and QField mobile app. It enables seamless field data collection with change tracking, team management, and online-offline work capabilities.What is QFieldCloud?
QFieldCloud allows you to:- Synchronize field data with your spatial infrastructure
- Track changes with versioned file storage and delta-based synchronization
- Collaborate with teams through role-based access control
- Work offline in the field and sync when connected
- Manage projects through a web interface or REST API
Key Concepts
Projects
Projects are the core organizational unit in QFieldCloud. Each project contains:- QGIS project files (.qgs, .qgz)
- GIS datasets (GeoPackage, Shapefiles, Rasters)
- Field-collected data and attachments
- Team member roles and permissions
Users and Organizations
QFieldCloud supports two types of accounts:- Persons: Individual user accounts
- Organizations: Team accounts with multiple members
Synchronization
QFieldCloud uses delta-based synchronization to efficiently transfer only the changes between QGIS desktop and QField mobile:- Package: QGIS project is packaged for field use via QFieldSync plugin
- Upload: Project files are uploaded to QFieldCloud
- Download: QField mobile app downloads the project
- Collect: Data is collected offline in the field
- Sync: Changes are pushed back to QFieldCloud
- Apply: QGIS desktop pulls the updates
Storage
QFieldCloud supports multiple storage backends:- S3-compatible storage (default with MinIO)
- WebDAV (including NextCloud integration)
- Custom storage backends
Architecture Overview
QFieldCloud is built with Django and designed to run as a containerized application using Docker.
Core Components
Web Application (app)
- Django application serving the REST API
- Gunicorn WSGI server for production
- Handles authentication, project management, and file operations
nginx)
- SSL/TLS termination
- Static file serving
- Request routing and load balancing
worker_wrapper + qgis)
- Background job processing
- QGIS server operations
- Project validation and transformation
- Docker-in-Docker architecture for isolation
db)
- PostgreSQL with PostGIS extension
- Stores user accounts, projects, permissions
- Manages synchronization metadata
- Versioned file storage (MinIO or S3)
- Stores project files and attachments
- Supports delta-based change tracking
memcached)
- Session storage
- API response caching
- Performance optimization
Authentication
QFieldCloud supports multiple authentication methods:- Password-based login (configurable)
- OAuth2/OIDC providers (Google, GitHub, Keycloak)
- API tokens with configurable expiration (default: 720 hours)
- Browser tokens
- QField mobile tokens (single-token per device)
- QFieldSync plugin tokens
- CLI/SDK tokens
API Access
QFieldCloud provides a REST API for programmatic access:- Base URL:
https://your-host/api/v1/ - Authentication: Token-based (Authorization header)
- Documentation: Available at
/swagger/endpoint - Status: Monitor health at
/api/v1/status/
Deployment Options
Hosted Service
The easiest way to use QFieldCloud is through the official hosted service at qfield.cloud, operated by OPENGIS.ch. This is the default service integrated into QField mobile app. Benefits:- No infrastructure management
- Automatic updates and backups
- Integrated with QField by default
- Professional support available
Self-Hosted
For organizations requiring data sovereignty or custom configurations, QFieldCloud can be self-hosted:- Full control over data and infrastructure
- Custom authentication providers
- Integration with existing storage systems
- Suitable for air-gapped or private networks
Next Steps
Quickstart
Get started with your first QFieldCloud project
Installation
Deploy your own QFieldCloud instance