diff --git a/.github/workflows/build_docker_images.yml b/.github/workflows/build_docker_images.yml
index 5b24d4f..2340b0e 100644
--- a/.github/workflows/build_docker_images.yml
+++ b/.github/workflows/build_docker_images.yml
@@ -44,12 +44,12 @@ jobs:
- id: nightly
name: building nightly
- run: docker build -t qgis/${{ env.DOCKER_TAG }}:nightly -f ${{ matrix.qgis_type }}.Dockerfile --build-arg repo=ubuntu-nightly .
+ run: docker build -t qgis/${{ env.DOCKER_TAG }}:nightly --build-arg repo=ubuntu-nightly ${{ matrix.qgis_type }}
- name: test
if: ${{ matrix.qgis_type == 'server' }}
run: |
- docker run -d -v $(pwd)/test/data:/io/data -p 8010:80 --name qgis-server qgis/qgis-server:nightly
+ docker run -d -v $(pwd)/${{ matrix.qgis_type }}/test/data:/io/data -p 8010:80 --name qgis-server qgis/qgis-server:nightly
docker exec -i qgis-server dpkg -l qgis-server
sleep 5
curl -s 'http://localhost:8010/ogc/test_project?service=WMS&request=GetCapabilities' | grep -ivq exception
diff --git a/.gitignore b/.gitignore
index a47fb1d..91e2d02 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
+*.orig
.idea
__pycache__
\ No newline at end of file
diff --git a/README.md b/README.md
index 8473b5a..427b3f6 100644
--- a/README.md
+++ b/README.md
@@ -1,191 +1,11 @@
-# QGIS Docker
+# QGIS Docker Images
-This repository automates the build of QGIS desktop and QGIS server Docker images.
+This repository automates the build of QGIS desktop and QGIS server Docker images. The respective docs are located here:
-## QGIS server
+- [QGIS Server](./server/README.md)
+- [QGIS Desktop](./desktop/README.md)
-### General information
+**Warning**:
-The Docker image is built using *Ubuntu 20.04 (focal) and 22.04 (jammy)* and official QGIS DEBs from .
-It includes *Nginx* and *Xvfb* and can be used as a standalone service (via HTTP TCP port 80) or as *FCGI* backend (via TCP port 9993).
-
-### Requisites
-
-You need **Docker >= 18.04** with `seccomp`. Support for the `statx` syscall, required by Qt 5.10+, may be made necessary in the future. This is generally included in **libseccomp >= 2.3.3**;
-a kernel with `statx` support is also required; any kernel newer than 4.11 should be ok. Please check with your vendor.
-
-Known good configurations are:
-- Ubuntu 18.04.2+
-- CentOS 8
-- Fedora 29+
-
-See for further details.
-
-Containers are not tested on hosts running OSes other than Linux.
-
-### Services provided
-
-This Docker container exposes HTTP on port `80` via Nginx and a direct FastCGI on port `9993` that can be used directly by an external HTTP proxy (like the provided `docker-compose.yml` does).
-A sample Nginx configuration for using it as a *FastCGI* backend is also [provided](conf/nginx-fcgi-sample.conf).
-
-### Available tags
-
-Image name: `qgis/qgis-server`
-
-- **QGIS stable**: `stable` | `stable-ubuntu`
-- **QGIS LTR**: `ltr` | `ltr-ubuntu`
-
-Example:
-
-```sh
-docker pull qgis/qgis-server:ltr
-```
-
-### Build the container
-
-#### QGIS stable
-
-```sh
-# stable version
-docker build -t qgis/qgis-server:stable .
-
-# ltr version
-docker build --build-arg repo=ubuntu-ltr -t qgis/qgis-server:ltr .
-```
-
-You may skip this step. The container will be downloaded from the Docker Hub.
-
-### Run the docker and map host data
-
-```sh
-docker run -v $(pwd)/data:/io/data --name qgis-server -d -p 8010:80 qgis/qgis-server:ltr
-```
-
-`WMS` and `WFS` for a specific project will be published at `http://localhost:8010/ogc/`.
-An `/ows/` endpoint is also available for direct access to the `fcgi` (bypassing the `map=` rewrite).
-Direct access to `WFS3` is accessible via `http://localhost:8010/wfs3/`.
-
-
-#### PostgreSQL connection service file (optional)
-
-The [connection service file](https://www.postgresql.org/docs/12/libpq-pgservice.html) allows connection parameters to be associated with a single service name and thus to be able to use the same QGIS projects in different environments. This could also be achieved with [QGIS authentications](https://docs.qgis.org/3.16/en/docs/user_manual/auth_system/auth_workflows.html#database-authentication).
-To use a pg_service file you need to bind mount it as shown in the [docker-compose](docker-compose.yml) or on run:
-
-```sh
--v $(pwd)/conf/pg_service.conf:/etc/postgresql-common/pg_service.conf:ro
-```
-
-
-#### Plugins, fonts and SVG symbols (optional)
-
-Plugins, custom fonts and SVG can be optionally exposed from host to the containers:
-
-- plugins: `-v $(pwd)/plugins:/io/plugins`
-- fonts: `-v $(pwd)/fonts:/usr/share/fonts`
-- svg symbols: `-v $(pwd)/svg:/var/lib/qgis/.local/share/QGIS/QGIS3/profiles/default/svg`
-
-Example:
-
-```sh
-docker run -v $(pwd)/data:/io/data -v $(pwd)/plugins:/io/plugins -v $(pwd)/fonts:/usr/share/fonts --name qgis-server -d -p 8010:80 qgis/qgis-server:ltr
-```
-
-#### Access the container via bash
-
-```sh
-docker exec -ti qgis-server /bin/bash
-```
-
-where `qgis-server` is the name of the container.
-
-#### Logs and debugging
-
-QGIS server log can retreived via `docker logs`
-
-```sh
-docker logs [-f] qgis-server
-```
-
-where `qgis-server` is the name of the container.
-
-Default log level is set to `warning`. Log level can be increased during container deployment passing the `-e QGIS_SERVER_LOG_LEVEL=0` option:
-
-```sh
-docker run -e QGIS_SERVER_LOG_LEVEL=0 -v $(pwd)/data:/io/data -v $(pwd)/plugins:/io/plugins --name qgis-server -d -p 8010:80 qgis/qgis-server:ltr
-```
-
-### Run multiple instances of QGIS server
-
-Adjust first the configuration in `conf/nginx.conf` with the proper number of expected workers
-and `docker-compose.yml` with the path of data folder on the host.
-
-Then:
-
-```sh
-docker-compose up -d --scale qgis-server=N
-```
-
-Where N is the number of expected QGIS server workers.
-
-
-### Data dir structure
-
-`$(pwd)/data` must have the following structure:
-
-```text
-data
- |
- |--
- |-- .qgs
-```
-
-[oq-consolidate](https://github.com/gem/oq-consolidate) may helps you in exporting data suitable for QGIS server (consolidating project and layers).
-
-`$(pwd)/plugins` must have the following structure:
-
-```text
-plugins
- |
- |--
- |-- .py
- |-- metadata.txt
- |-- __init__.py
-```
-
-Custom fonts are loaded into `/usr/share/fonts`. `fc-cache` is run when container is started.
-
-### Runtime customizations
-
-The following variables can be customized during container deployment:
-
-#### Nginx
-
-When `SKIP_NGINX` is set to a different value than `0` or `false` the embedded copy of Nginx will not be started and an external reverse proxy is then required to access the FastCGI QGIS backend.
-
-- `SKIP_NGINX`: default is *unset* (do not skip Nginx startup)
-
-#### QGIS
-
-- `QGIS_SERVER_LOG_LEVEL`: default is `1`
-- `QGIS_SERVER_PARALLEL_RENDERING`: default is `true`
-- `QGIS_SERVER_MAX_THREADS`: default is `2`
-- `QGIS_SERVER_WMS_MAX_WIDTH`: not set by default
-- `QGIS_SERVER_WMS_MAX_WIDTH`: not set by default
-
-See [QGIS server documentation](https://docs.qgis.org/testing/en/docs/server_manual/config.html#environment-variables) for further details.
-
-It is also possible to customized the ID of the user running QGIS server processes when it is required to write to host volumes (see [notes](#notes)):
-
-- `QGIS_USER`: default is `nginx`, a numerical id must be proivided
-
-Example: `docker run -e QGIS_USER=1000` or `docker run -e QGIS_USER=$(id -u qgis)`
-
-### Notes
-
-GeoPackages do not play well with multiple processes having gpkg files opened in `rw` mode. By default QGIS server processes lack write permission on `/io/data`.
-If it is required to let QGIS server write data to `/io/data` make sure that either you are using a process-safe datastore (i.e. a Postgres backend) or you are
-limiting horizontal scaling to one container only. QGIS server user can be customized via the `QGIS_USER` environment variable.
-
-## QGIS Desktop
-
-There is currently no documentation how to run the QGIS Desktop via docker.
+There are discussions on how to build these images and they are not considered stable.
+They are considered as NOT production ready.
diff --git a/desktop.Dockerfile b/desktop/Dockerfile
similarity index 100%
rename from desktop.Dockerfile
rename to desktop/Dockerfile
diff --git a/desktop/README.md b/desktop/README.md
new file mode 100644
index 0000000..9aec490
--- /dev/null
+++ b/desktop/README.md
@@ -0,0 +1,8 @@
+# QGIS Desktop standalone
+
+A simple QGIS desktop Docker image
+
+**Warning**
+
+There are discussions on how to build these images and they are not considered stable.
+They are considered as NOT production ready.
\ No newline at end of file
diff --git a/scripts/build-push-docker.sh b/scripts/build-push-docker.sh
index 478390a..4a80c82 100755
--- a/scripts/build-push-docker.sh
+++ b/scripts/build-push-docker.sh
@@ -43,5 +43,5 @@ for TAG in ${TAGS}; do
ALL_TAGS="${ALL_TAGS} --tag qgis/${REPO}:${TAG}"
done
-docker buildx build --push --platform linux/amd64,linux/arm64 --build-arg ubuntu_dist=${UBUNTU_DIST} --build-arg repo=${QGIS_UBUNTU_PPA} ${ALL_TAGS} -f ${QGIS_TYPE}.Dockerfile .
+docker buildx build --push --platform linux/amd64,linux/arm64 --build-arg ubuntu_dist=${UBUNTU_DIST} --build-arg repo=${QGIS_UBUNTU_PPA} ${ALL_TAGS} ${QGIS_TYPE}
diff --git a/server.Dockerfile b/server/Dockerfile
similarity index 100%
rename from server.Dockerfile
rename to server/Dockerfile
diff --git a/server/README.md b/server/README.md
new file mode 100644
index 0000000..ecef8a9
--- /dev/null
+++ b/server/README.md
@@ -0,0 +1,42 @@
+# QGIS Server
+
+**Warning**
+
+There are discussions on how to build these images and they are not considered stable.
+They are considered as NOT production ready.
+
+## General information
+
+The Docker image is built using *Ubuntu 20.04 (focal) and 22.04 (jammy)* and official QGIS DEBs from .
+It includes *Nginx* and *Xvfb* and can be used as a standalone service (via HTTP TCP port 80) or as *FCGI* backend (via TCP port 9993).
+
+## Requisites
+
+You need **Docker >= 18.04** with `seccomp`. Support for the `statx` syscall, required by Qt 5.10+, may be made necessary in the future. This is generally included in **libseccomp >= 2.3.3**;
+a kernel with `statx` support is also required; any kernel newer than 4.11 should be ok. Please check with your vendor.
+
+Known good configurations are:
+- Ubuntu 18.04.2+
+- CentOS 8
+- Fedora 29+
+
+See for further details.
+
+Containers are not tested on hosts running OSes other than Linux.
+
+## Services provided
+
+This Docker container exposes HTTP on port `80` via Nginx and a direct FastCGI on port `9993` that can be used directly by an external HTTP proxy (like the provided `docker-compose.yml` does).
+A sample Nginx configuration for using it as a *FastCGI* backend is also [provided](conf/nginx-fcgi-sample.conf).
+
+## Available tags
+
+Image name: `qgis/qgis-server`
+
+- **QGIS stable**: `stable` | `stable-ubuntu`
+- **QGIS LTR**: `ltr` | `ltr-ubuntu`
+
+Example:
+
+```sh
+docker pull qgis/qgis-server:ltr
diff --git a/conf/nginx-fcgi-sample.conf b/server/conf/nginx-fcgi-sample.conf
similarity index 100%
rename from conf/nginx-fcgi-sample.conf
rename to server/conf/nginx-fcgi-sample.conf
diff --git a/conf/pg_service.conf b/server/conf/pg_service.conf
similarity index 100%
rename from conf/pg_service.conf
rename to server/conf/pg_service.conf
diff --git a/conf/qgis-server-nginx.conf b/server/conf/qgis-server-nginx.conf
similarity index 100%
rename from conf/qgis-server-nginx.conf
rename to server/conf/qgis-server-nginx.conf
diff --git a/start-xvfb-nginx.sh b/server/start-xvfb-nginx.sh
similarity index 100%
rename from start-xvfb-nginx.sh
rename to server/start-xvfb-nginx.sh
diff --git a/test/data/test_project/layers/layer.gpkg b/server/test/data/test_project/layers/layer.gpkg
similarity index 100%
rename from test/data/test_project/layers/layer.gpkg
rename to server/test/data/test_project/layers/layer.gpkg
diff --git a/test/data/test_project/test_project.qgd b/server/test/data/test_project/test_project.qgd
similarity index 100%
rename from test/data/test_project/test_project.qgd
rename to server/test/data/test_project/test_project.qgd
diff --git a/test/data/test_project/test_project.qgs b/server/test/data/test_project/test_project.qgs
similarity index 100%
rename from test/data/test_project/test_project.qgs
rename to server/test/data/test_project/test_project.qgs