selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

QFieldCloud logo

Self-host QFieldCloud

v26.29

Field data synchronization platform for QGIS and QField

ReleaseOpen SourceMIT
Docker ComposeCompose file & guide
docker compose up -d --build
Updated10 hours ago
LanguagePython
Setup difficultyAdvanced
Stars
246
Ports
80 (nginx HTTP), 443 (nginx HTTPS), 8000 (Django app (container internal)), 8011 (Django development server (host)), 5432 (PostgreSQL (container internal))
Requires
Email provider (SMTP), PostgreSQL/PostGIS, S3-compatible Object Storage

What is QFieldCloud?

QFieldCloud is a Django-based synchronization service that connects QGIS desktop software with the QField mobile application for field data collection. It enables teams to collaborate on geospatial projects with change tracking, version history, and online-offline workflows. The platform supports PostGIS and GeoPackage data formats, exposes a complete REST API for custom integrations, and can be self-hosted using Docker Compose with PostgreSQL/PostGIS, S3-compatible object storage, and an email provider. The hosted version at qfield.cloud offers additional features like SSO, advanced team management, and paid support plans, while the self-hosted MIT-licensed backend provides full data residency control.

Should you self-host QFieldCloud?

QFieldCloud scores 54/100 on selfhost.directory (how scoring works) and ranks #4 of 9 in Mapping & GPS. It has 246 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v26.29, came out on 23 October 2026. New versions land roughly every 9 days.

Setup is advanced: plan for several services and some ongoing maintenance. It is MIT-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is God's Eye View (83/100, 60 784 stars). It scores higher overall, so compare the two before you pick. See QFieldCloud vs God's Eye View side by side.

Features

  • Data Synchronization
  • Django Admin interface
  • GeoPackage Support
  • Let's Encrypt SSL
  • Multi-language Support
  • Offline EditingPostGIS offline editing requires paid plan on hosted version; self-hosted has no such restriction
  • OIDC/OAuth2 AuthenticationConfigured via SOCIALACCOUNT_PROVIDERS environment variable
  • Organization ManagementOrganizations are a paid feature on hosted version
  • PostGIS Support
  • Project CollaborationPrivate project collaboration requires Flat/Flex plan on hosted version
  • REST API
  • Team Management
  • Version History
  • WebDAV Storage

QFieldCloud README

How to install QFieldCloud

Install QFieldCloud with Docker Compose

  1. Copy the .env.example into .env file:
cp .env.example .env
  1. Build development images and run the containers:
docker compose up -d --build
  1. Run Django database migrations.
docker compose exec app python manage.py migrate
  1. And collect the static files (CSS, JS etc):
docker compose run app python manage.py collectstatic --noinput
  1. Now you can get started by adding your super user that has access to the Django Admin interface:
docker compose run app python manage.py createsuperuser --username super_user --email super@user.com

For production, set DEBUG=0 and use docker-compose.override.standalone.yml with external PostgreSQL, S3, and email provider

How to configure QFieldCloud

  • ACCOUNT_EMAIL_VERIFICATIONoptionalEmail verification requirement

    Email verification requirement

    values: mandatory, optional, none

  • CORS_ALLOWED_ORIGINShttps://docs.qfield.orgComma-separated list of origins allowed to make cross-origin requests

    Comma-separated list of origins allowed to make cross-origin requests

    values: comma-separated URLs without trailing slashes

  • DEBUG1Whether the environment is in debug mode (e.g. Django debug)

    Whether the environment is in debug mode (e.g. Django debug)

    values: 0 - non debug mode; 1 - debug mode

  • DEFAULT_FROM_EMAILwebmaster@localhostDefault email address to use on behalf of QFieldCloud

    Default email address to use on behalf of QFieldCloud

  • DJANGO_ALLOWED_HOSTSlocalhost 127.0.0.1 0.0.0.0 app nginxSpace separated list of allowed hostnames

    Space separated list of allowed hostnames

    values: space-separated hostnames, * for all (not recommended in production)

  • EMAIL_HOSTsmtp4devHostname of the email server

    Hostname of the email server

  • EMAIL_PORT25Port to use for the email server

    Port to use for the email server

  • ENVIRONMENTdevelopmentEnvironment where QFieldCloud runs

    Environment where QFieldCloud runs

    values: development, staging, test, production

  • LETSENCRYPT_EMAILtest@example.comLet's Encrypt email for registration and recovery

    Let's Encrypt email for registration and recovery

  • LETSENCRYPT_STAGING1Whether to use Let's Encrypt staging environment

    Whether to use Let's Encrypt staging environment

    values: 0 - production; 1 - staging

  • OBJECT_STORAGE_API_PORT8009Public port to the object storage API endpoint

    Public port to the object storage API endpoint

  • OBJECT_STORAGE_BROWSER_PORT8010Public port to the object storage browser endpoint

    Public port to the object storage browser endpoint

  • POSTGIS_IMAGE_VERSION17-3.5-alpineDocker image tag for PostGIS database

    Docker image tag for PostGIS database

    values: any valid postgis/postgis tag

  • POSTGRES_DBqfieldcloud_dbPostgreSQL database name

    PostgreSQL database name

  • POSTGRES_HOSTdbPostgreSQL host

    PostgreSQL host

  • POSTGRES_PASSWORD3shJDd2r7TwwkehbPostgreSQL connection password

    PostgreSQL connection password

    values: generated with pwgen -sn 16

  • POSTGRES_PORT5432PostgreSQL port

    PostgreSQL port

  • POSTGRES_SSLMODEpreferPostgreSQL SSL mode

    PostgreSQL SSL mode

    values: disable, allow, prefer, require, verify-ca, verify-full

  • POSTGRES_USERqfieldcloud_db_adminPostgreSQL connection user

    PostgreSQL connection user

  • QFIELDCLOUD_AUTH_TOKEN_EXPIRATION_HOURS720Auth token expiration in hours

    Auth token expiration in hours

  • QFIELDCLOUD_HOSTlocalhostMain hostname of the QFieldCloud instance. Must be included in DJANGO_ALLOWED_HOSTS.

    Main hostname of the QFieldCloud instance. Must be included in DJANGO_ALLOWED_HOSTS.

    values: hostname without http:// or https:// and no trailing slash or port

  • QFIELDCLOUD_PASSWORD_LOGIN_IS_ENABLED1Whether password based login is enabled for QFC clients

    Whether password based login is enabled for QFC clients

    values: 0 - password login disabled; 1 - password login enabled

  • QFIELDCLOUD_WORKER_REPLICAS1Number of parallel QGIS workers

    Number of parallel QGIS workers

  • QFIELDCLOUD_WORKER_TIMEOUT_S600Timeout of QGIS workers before termination

    Timeout of QGIS workers before termination

  • SALT_KEY0123456789abcdefghijklmnopqrstuvwxyzKey used for cryptographic operations on encrypted fields

    Key used for cryptographic operations on encrypted fields

    values: generated with pwgen -sn 128

  • SECRET_KEYchange_meSecret key used by Django for cryptographic signing

    Secret key used by Django for cryptographic signing

    values: generated with pwgen -sn 128

  • WEB_HTTP_PORT80Public port for HTTP connections

    Public port for HTTP connections

  • WEB_HTTPS_PORT443Public port for HTTPS connections

    Public port for HTTPS connections

QFieldCloud releases & version history

FAQ

What kind of account do you need to use PostGIS layers with offline editing?

You can work with live PostGIS layers with any plan, but offline editing requires a paid plan on the hosted version.

Are QField and QFieldCloud two separate applications?

Yes, QField is a mobile app for field data collection; QFieldCloud is a platform that allows data synchronization for seamless fieldwork. QField can be used without QFieldCloud.

Can I self-host QFieldCloud?

Yes, QFieldCloud is open-source and you can run it on your own infrastructure using the GitHub repository instructions.

Do you offer a trial period for paid plans?

Yes, organizations get 28 days free of charge. Individual users can use the community plan for as long as they want.

Where are the servers hosted for the hosted QFieldCloud service?

All data is stored on servers hosted in Switzerland.

How can I collaborate with other users on private projects?

Private project collaboration requires a Flat or Flex plan on the hosted version; members of an organization can collaborate on all projects owned by the organization.

Does QFieldCloud support simultaneous editing from QField and QGIS on the same layers?

Not yet for GeoPackage layers; you must wait for fieldwork to finish before synchronizing and editing on QGIS, or merge GeoPackages manually.

What are the officially supported vector data sources in QFieldCloud?

QFieldCloud officially supports PostGIS and GeoPackage data source formats.

Is it possible to work offline with QFieldCloud?

Yes, working offline is possible by configuring PostGIS layers as offline editing and synchronizing when connected to the internet again.

Are there any limits per project in the community plan?

The community plan has storage limits and does not support offline editing for PostGIS layers, but allows unlimited private and public projects.

More in Mapping & GPS

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…