Skip to content

KARTOZA · QGIS DESKTOP DOCKER

QGIS in a browser tab, locked down by default

A full QGIS desktop over the web — four ways to sign in, an egress firewall that fails closed, and a home directory that outlives the container.

Pull it

Two tags on one image. Same container, same settings — the QGIS inside is the only difference.

  • QGIS 3.44.9 LTR


    The long-term release: bug fixes only, so a project that opens today opens the same way next month. This is the one to put in front of users. Pin :3.44.9 if even a new LTR would be unwelcome.

    docker run --rm -p 8443:8443 --cap-add=NET_ADMIN \
      ghcr.io/kartoza/qgis-desktop-docker:ltr
    
  • QGIS 4.0.1


    The current release, which becomes the next LTR. Open your real projects against it now, while a regression can still be reported upstream rather than discovered on the day the LTR ships.

    docker run --rm -p 8443:8443 --cap-add=NET_ADMIN \
      ghcr.io/kartoza/qgis-desktop-docker:latest
    

Then open http://localhost:8443 and sign in as user / password. Everything else is an environment variable — see Configuration.

What's in the box

  • A desktop, not a viewer


    KasmVNC serves the whole XFCE session to a browser tab. No VNC client, no local install, multi-monitor and dynamic resizing included.

    Quick start

  • Four ways to sign in


    No auth, the browser's HTTP Basic dialog, a LightDM greeter inside the desktop, or Keycloak/OIDC single sign-on with an authenticating proxy in front of the whole thing.

    Authentication

  • Homes that outlive the container


    Restored from object storage before the desktop starts, saved on an interval and again on shutdown. Delete the container, start another, and the user's projects are still there.

    Home persistence

  • Egress locked by default


    An nftables allowlist installed before the desktop starts, by a root entrypoint that then drops its own capabilities. No allowlist means no outbound traffic, and a container that cannot enforce it refuses to run.

    Egress lockdown

  • Data-loss controls


    Clipboard blocked in both directions unless you say otherwise, size caps and MIME allowlists, a screen watermark, DLP audit logging, and a switch that removes terminal access entirely.

    Permissions

  • Giswater-ready QGIS


    EPANET and SWMM built from upstream source — each solves a real model during the build — plus the Python packages the plugin imports, inside QGIS's own interpreter.

    Giswater

  • Reproducible by construction


    One Nix flake defines the whole image, so two builds on two machines produce the same artefact. Every release ships an SPDX SBOM and a Grype CVE scan.

    Building from source

  • Worked deployments


    Nine scenarios, each a compose file and one command: homes that survive the container, data delivered through a bucket, Keycloak brokering your own directory, a locked-down analyst session, a kiosk.

    Scenarios

Run it yourself, or let us run it

KARTOZA · COMMERCIAL SUPPORT

Need this in production?

Kartoza builds and maintains this image. We can deploy it into your infrastructure, integrate it with your identity provider and spatial database, add the domain tooling your team needs, and support it under an SLA.

  • Deployment and integration


    Kubernetes or Docker, single sign-on against your identity provider, per-user home directories on your object storage, and an egress policy that matches your security review rather than fighting it.

  • Domain tooling


    Giswater is in the box because a client needed it. If your team needs a different plugin stack, database schema or field workflow baked in and kept working across QGIS releases, that is the same job.

  • Hosted QGIS desktopscoming soon


    A managed service: browser-based QGIS for your team, with persistent home directories, your identity provider, and upgrades handled for you. Get in touch to hear first when it launches.

  • Support and training


    SLA-backed support for the image and the QGIS stack inside it, plus training for the people who will use it. Sponsorship keeps the open-source version moving for everyone else.

Status

Docker Docs QGIS KasmVNC Built with Nix License

Every pull request builds both QGIS channels, smoke-tests the desktop, and runs the test suite before either image is published.