Documentation Index
Fetch the complete documentation index at: https://mintlify.com/opengisch/qfieldcloud/llms.txt
Use this file to discover all available pages before exploring further.
Overview
QFieldCloud is a Django-based service designed to synchronize projects and data between QGIS (+ QFieldSync plugin) and QField. While OPENGIS.ch offers a hosted solution at qfield.cloud, you can also self-host your own QFieldCloud instance.Hosted vs Self-Hosted
Hosted Solution
The hosted version at app.qfield.cloud is:- Fully managed and maintained by OPENGIS.ch
- Integrated by default into QField
- Requires no infrastructure setup or maintenance
- Includes professional support options
- Ideal for getting up and running quickly
Self-Hosted Solution
Self-hosting QFieldCloud is suitable when you:- Need complete control over your data and infrastructure
- Have specific security or compliance requirements
- Want to integrate with existing on-premise systems
- Require custom configurations or modifications
- Have the technical resources to manage the infrastructure
Architecture
QFieldCloud consists of several key components:Core Services
- app: Django application server running with Gunicorn
- nginx: Reverse proxy handling HTTPS/TLS termination and static file serving
- worker_wrapper: Background job processor for QGIS operations
- qgis: QGIS worker container for processing geospatial data
- memcached: Caching layer for improved performance
- ofelia: Cron job scheduler for periodic tasks
- certbot: Automatic SSL certificate management via Let’s Encrypt
External Dependencies (Production)
For production deployments, you should use external managed services:- PostgreSQL/PostGIS: Database for storing application data
- S3-compatible storage: Object storage for project files (AWS S3, MinIO, etc.)
- SMTP server: Email delivery service
Standalone Services (Development/Testing Only)
For local development or small standalone deployments:- db: PostgreSQL/PostGIS database container
- minio: S3-compatible object storage
- smtp4dev: Local email testing server
- webdav: Alternative storage backend (optional)
System Requirements
Minimum Requirements
- Docker Engine 20.10 or later
- Docker Compose 2.0 or later
- 4 GB RAM (8 GB recommended)
- 20 GB disk space for application and dependencies
- Additional storage for project data and backups
Network Requirements
- Public domain name (for Let’s Encrypt SSL certificates)
- Open ports:
- 80 (HTTP) - for Let’s Encrypt certificate validation
- 443 (HTTPS) - for secure access to QFieldCloud
- 5432 (PostgreSQL) - if using external database
Recommended Production Setup
- 8+ GB RAM
- 4+ CPU cores
- SSD storage for database and application
- External managed PostgreSQL database
- External S3-compatible storage with versioning enabled
- External SMTP service for reliable email delivery
- Regular automated backups
Infrastructure Components
Based on the testdriven.io Django dockerization guide.Port Configuration
| Service | Port | Configuration | Local | Development | Production |
|---|---|---|---|---|---|
| nginx http | 80 | WEB_HTTP_PORT | ✓ | ✓ | ✓ |
| nginx https | 443 | WEB_HTTPS_PORT | ✓ | ✓ | ✓ |
| django http | 8011 | DJANGO_DEV_PORT | ✓ | ✗ | ✗ |
| postgres | 5433 | HOST_POSTGRES_PORT | ✓ | ✓ | ✓ |
| minio API | 8009 | MINIO_API_PORT | ✓ | ✗ | ✗ |
| minio browser | 8010 | MINIO_BROWSER_PORT | ✓ | ✗ | ✗ |
| smtp web | 8012 | SMTP4DEV_WEB_PORT | ✓ | ✗ | ✗ |
| smtp | 25 | SMTP4DEV_SMTP_PORT | ✓ | ✗ | ✗ |
| imap | 143 | SMTP4DEV_IMAP_PORT | ✓ | ✗ | ✗ |
Security Considerations
Essential Security Steps
- Change default secrets: Update
SECRET_KEYandSALT_KEYin.env - Set strong database password: Change
POSTGRES_PASSWORD - Disable debug mode: Set
DEBUG=0in production - Configure allowed hosts: Set
DJANGO_ALLOWED_HOSTSto your domain(s) - Use HTTPS: Configure SSL certificates (Let’s Encrypt recommended)
- Enable email verification: Set
ACCOUNT_EMAIL_VERIFICATION=mandatory - Secure storage credentials: Use strong passwords for MinIO or S3 credentials
- Regular updates: Keep Docker images and dependencies up to date
Production Deployment Checklist
- All default passwords changed
- DEBUG mode disabled (
DEBUG=0) - Valid SSL certificate configured
- Database backups configured
- Object storage backups enabled
- SMTP service configured and tested
- Monitoring and logging in place
- Firewall rules configured
- Resource limits set in docker-compose
- Regular update schedule established
Getting Started
To begin deploying QFieldCloud:- Review the Docker Setup guide for step-by-step installation instructions
- Configure your Environment Variables
- Set up SSL Certificates
- Configure Database and Storage