c2cgeoportal-geoportal 2.6.0__py2.py3-none-any.whl → 2.8.1.180__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- c2cgeoportal_geoportal/__init__.py +245 -95
- c2cgeoportal_geoportal/lib/__init__.py +67 -43
- c2cgeoportal_geoportal/lib/authentication.py +50 -26
- c2cgeoportal_geoportal/lib/bashcolor.py +17 -13
- c2cgeoportal_geoportal/lib/cacheversion.py +16 -8
- c2cgeoportal_geoportal/lib/caching.py +65 -193
- c2cgeoportal_geoportal/lib/check_collector.py +17 -10
- c2cgeoportal_geoportal/lib/checker.py +67 -65
- c2cgeoportal_geoportal/lib/common_headers.py +167 -0
- c2cgeoportal_geoportal/lib/dbreflection.py +61 -46
- c2cgeoportal_geoportal/lib/filter_capabilities.py +126 -88
- c2cgeoportal_geoportal/lib/fulltextsearch.py +6 -5
- c2cgeoportal_geoportal/lib/functionality.py +20 -17
- c2cgeoportal_geoportal/lib/headers.py +14 -5
- c2cgeoportal_geoportal/lib/i18n.py +4 -4
- c2cgeoportal_geoportal/lib/layers.py +30 -11
- c2cgeoportal_geoportal/lib/lingua_extractor.py +363 -240
- c2cgeoportal_geoportal/lib/loader.py +11 -16
- c2cgeoportal_geoportal/lib/metrics.py +28 -17
- c2cgeoportal_geoportal/lib/oauth2.py +392 -206
- c2cgeoportal_geoportal/lib/wmstparsing.py +105 -84
- c2cgeoportal_geoportal/lib/xsd.py +26 -16
- c2cgeoportal_geoportal/resources.py +15 -9
- c2cgeoportal_geoportal/scaffolds/advance_create/ci/config.yaml +26 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/cookiecutter.json +18 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.dockerignore +6 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.eslintrc.yaml +19 -0
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/+dot+prospector.yaml → advance_create/{{cookiecutter.project}}/geoportal/.prospector.yaml} +8 -2
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/Dockerfile_tmpl → advance_create/{{cookiecutter.project}}/geoportal/Dockerfile} +22 -15
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/alembic.yaml_tmpl → advance_create/{{cookiecutter.project}}/geoportal/alembic.yaml} +1 -1
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/development.ini_tmpl → advance_create/{{cookiecutter.project}}/geoportal/development.ini} +34 -15
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/gunicorn.conf.py +100 -0
- c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/lingua-client.cfg +1 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/production.ini +38 -0
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/setup.py_tmpl → advance_create/{{cookiecutter.project}}/geoportal/setup.py} +6 -7
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/tsconfig.json +8 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.api.js +77 -0
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/webpack.apps.js_tmpl → advance_create/{{cookiecutter.project}}/geoportal/webpack.apps.js} +29 -28
- c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/webpack.commons.js +4 -7
- c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/webpack.config.js +1 -1
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/__init__.py +42 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/authentication.py +10 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/dev.py +14 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/models.py +8 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/multi_organization.py +7 -0
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/+package+_geoportal → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/resources.py +4 -3
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/+package+_geoportal/static-ngeo/api/index.js_tmpl → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/api/index.js} +1 -2
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/+package+_geoportal/static-ngeo/js/+package+module.js_tmpl → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/js/{{cookiecutter.package}}module.js} +4 -4
- c2cgeoportal_geoportal/scaffolds/{create/geoportal/+package+_geoportal/subscribers.py_tmpl → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/subscribers.py} +1 -3
- c2cgeoportal_geoportal/scaffolds/advance_update/cookiecutter.json +18 -0
- c2cgeoportal_geoportal/scaffolds/{update/geoportal/CONST_Makefile_tmpl → advance_update/{{cookiecutter.project}}/geoportal/CONST_Makefile} +3 -27
- c2cgeoportal_geoportal/scaffolds/create/cookiecutter.json +18 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.dockerignore +14 -0
- c2cgeoportal_geoportal/scaffolds/create/{+dot+editorconfig → {{cookiecutter.project}}/.editorconfig} +2 -5
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/main.yaml +57 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/rebuild.yaml +46 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/update_l10n.yaml +66 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.gitignore +16 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierignore +1 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierrc.yaml +2 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Dockerfile +76 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Makefile +70 -0
- c2cgeoportal_geoportal/scaffolds/create/{README.rst_tmpl → {{cookiecutter.project}}/README.rst} +4 -4
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/build +186 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/config.yaml +22 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/docker-compose-check +25 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/requirements.txt +1 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-db.yaml +26 -0
- c2cgeoportal_geoportal/scaffolds/create/{docker-compose-lib.yaml → {{cookiecutter.project}}/docker-compose-lib.yaml} +165 -22
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-qgis.yaml +23 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.override.sample.yaml +66 -0
- c2cgeoportal_geoportal/scaffolds/create/{docker-compose.yaml → {{cookiecutter.project}}/docker-compose.yaml} +20 -15
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.default +101 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.project +69 -0
- c2cgeoportal_geoportal/scaffolds/create/{geoportal/vars.yaml_tmpl → {{cookiecutter.project}}/geoportal/vars.yaml} +126 -36
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/mobile.css +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/data/Readme.txt +3 -3
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/demo.map.tmpl +224 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.conf +15 -0
- c2cgeoportal_geoportal/scaffolds/create/{mapserver/mapserver.map.tmpl_tmpl → {{cookiecutter.project}}/mapserver/mapserver.map.tmpl} +9 -18
- c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A3_Landscape.jrxml +13 -8
- c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A3_Portrait.jrxml +13 -8
- c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A4_Landscape.jrxml +13 -8
- c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/A4_Portrait.jrxml +13 -8
- c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/config.yaml.tmpl +11 -4
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation.properties +4 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation_fr.properties +4 -0
- c2cgeoportal_geoportal/scaffolds/create/{project.yaml_tmpl → {{cookiecutter.project}}/project.yaml} +6 -6
- c2cgeoportal_geoportal/scaffolds/create/{pyproject.toml → {{cookiecutter.project}}/pyproject.toml} +4 -0
- c2cgeoportal_geoportal/scaffolds/create/{qgisserver/pg_service.conf.tmpl_tmpl → {{cookiecutter.project}}/qgisserver/pg_service.conf.tmpl} +2 -2
- c2cgeoportal_geoportal/scaffolds/create/{run_alembic.sh → {{cookiecutter.project}}/run_alembic.sh} +3 -5
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-backup +110 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-restore +114 -0
- c2cgeoportal_geoportal/scaffolds/create/{setup.cfg_tmpl → {{cookiecutter.project}}/setup.cfg} +1 -1
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/spell-ignore-words.txt +5 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/__init__.py +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/test_app.py +38 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tilegeneration/config.yaml.tmpl +195 -0
- c2cgeoportal_geoportal/scaffolds/update/cookiecutter.json +18 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/.upgrade.yaml +61 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_CHANGELOG.txt +273 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_create_template/tests/test_testapp.py +48 -0
- c2cgeoportal_geoportal/scaffolds/update/{geoportal → {{cookiecutter.project}}/geoportal}/CONST_config-schema.yaml +64 -17
- c2cgeoportal_geoportal/scaffolds/update/{geoportal/CONST_vars.yaml_tmpl → {{cookiecutter.project}}/geoportal/CONST_vars.yaml} +396 -19
- c2cgeoportal_geoportal/scripts/__init__.py +16 -30
- c2cgeoportal_geoportal/scripts/c2cupgrade.py +272 -234
- c2cgeoportal_geoportal/scripts/create_demo_theme.py +3 -6
- c2cgeoportal_geoportal/scripts/manage_users.py +34 -39
- c2cgeoportal_geoportal/scripts/pcreate.py +310 -0
- c2cgeoportal_geoportal/scripts/theme2fts.py +128 -24
- c2cgeoportal_geoportal/scripts/urllogin.py +19 -11
- c2cgeoportal_geoportal/templates/login.html +88 -84
- c2cgeoportal_geoportal/templates/notlogin.html +59 -59
- c2cgeoportal_geoportal/templates/testi18n.html +6 -8
- c2cgeoportal_geoportal/views/__init__.py +23 -6
- c2cgeoportal_geoportal/views/dev.py +9 -7
- c2cgeoportal_geoportal/views/dynamic.py +56 -19
- c2cgeoportal_geoportal/views/entry.py +85 -24
- c2cgeoportal_geoportal/views/fulltextsearch.py +29 -23
- c2cgeoportal_geoportal/views/geometry_processing.py +17 -9
- c2cgeoportal_geoportal/views/i18n.py +91 -9
- c2cgeoportal_geoportal/views/layers.py +166 -133
- c2cgeoportal_geoportal/views/login.py +161 -93
- c2cgeoportal_geoportal/views/mapserverproxy.py +47 -31
- c2cgeoportal_geoportal/views/memory.py +12 -12
- c2cgeoportal_geoportal/views/ogcproxy.py +52 -30
- c2cgeoportal_geoportal/views/pdfreport.py +30 -26
- c2cgeoportal_geoportal/views/printproxy.py +60 -52
- c2cgeoportal_geoportal/views/profile.py +24 -23
- c2cgeoportal_geoportal/views/proxy.py +88 -72
- c2cgeoportal_geoportal/views/raster.py +37 -26
- c2cgeoportal_geoportal/views/resourceproxy.py +13 -11
- c2cgeoportal_geoportal/views/shortener.py +27 -25
- c2cgeoportal_geoportal/views/theme.py +472 -332
- c2cgeoportal_geoportal/views/tinyowsproxy.py +42 -44
- c2cgeoportal_geoportal/views/vector_tiles.py +80 -0
- {c2cgeoportal_geoportal-2.6.0.dist-info → c2cgeoportal_geoportal-2.8.1.180.dist-info}/METADATA +19 -8
- c2cgeoportal_geoportal-2.8.1.180.dist-info/RECORD +191 -0
- {c2cgeoportal_geoportal-2.6.0.dist-info → c2cgeoportal_geoportal-2.8.1.180.dist-info}/WHEEL +1 -1
- {c2cgeoportal_geoportal-2.6.0.dist-info → c2cgeoportal_geoportal-2.8.1.180.dist-info}/entry_points.txt +3 -0
- tests/__init__.py +10 -5
- tests/test_cachebuster.py +3 -5
- tests/test_caching.py +18 -26
- tests/test_checker.py +1 -3
- tests/test_decimaljson.py +5 -5
- tests/test_headerstween.py +1 -3
- tests/test_i18n.py +2 -2
- tests/test_init.py +16 -20
- tests/test_locale_negociator.py +4 -6
- tests/test_mapserverproxy_route_predicate.py +1 -4
- tests/test_raster.py +15 -17
- tests/test_wmstparsing.py +10 -12
- tests/xmlstr.py +1 -3
- c2cgeoportal_geoportal/scaffolds/__init__.py +0 -227
- c2cgeoportal_geoportal/scaffolds/create/+dot+dockerignore_tmpl +0 -12
- c2cgeoportal_geoportal/scaffolds/create/+dot+github/workflows/main.yaml_tmpl +0 -89
- c2cgeoportal_geoportal/scaffolds/create/+dot+github/workflows/rebuild.yaml_tmpl +0 -78
- c2cgeoportal_geoportal/scaffolds/create/+dot+gitignore_tmpl +0 -16
- c2cgeoportal_geoportal/scaffolds/create/Dockerfile_tmpl +0 -67
- c2cgeoportal_geoportal/scaffolds/create/Makefile +0 -3
- c2cgeoportal_geoportal/scaffolds/create/build_tmpl +0 -167
- c2cgeoportal_geoportal/scaffolds/create/ci/config.yaml_tmpl +0 -23
- c2cgeoportal_geoportal/scaffolds/create/ci/requirements.txt +0 -1
- c2cgeoportal_geoportal/scaffolds/create/ci/trigger +0 -68
- c2cgeoportal_geoportal/scaffolds/create/docker-compose.override.sample.yaml +0 -54
- c2cgeoportal_geoportal/scaffolds/create/env.default_tmpl +0 -67
- c2cgeoportal_geoportal/scaffolds/create/env.project_tmpl +0 -48
- c2cgeoportal_geoportal/scaffolds/create/geoportal/+dot+dockerignore_tmpl +0 -6
- c2cgeoportal_geoportal/scaffolds/create/geoportal/+dot+eslintrc_tmpl +0 -15
- c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal/__init__.py_tmpl +0 -58
- c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal/models.py_tmpl +0 -10
- c2cgeoportal_geoportal/scaffolds/create/geoportal/+package+_geoportal/static/robot.txt +0 -3
- c2cgeoportal_geoportal/scaffolds/create/geoportal/production.ini_tmpl +0 -106
- c2cgeoportal_geoportal/scaffolds/create/geoportal/tools/extract-messages.js +0 -39
- c2cgeoportal_geoportal/scaffolds/create/geoportal/tsconfig.json_tmpl +0 -9
- c2cgeoportal_geoportal/scaffolds/create/geoportal/webpack.api.js_tmpl +0 -72
- c2cgeoportal_geoportal/scaffolds/create/mapserver/demo.map.tmpl_tmpl +0 -262
- c2cgeoportal_geoportal/scaffolds/create/mapserver/tinyows.xml +0 -36
- c2cgeoportal_geoportal/scaffolds/create/print/print-apps/+package+/config.yaml +0 -168
- c2cgeoportal_geoportal/scaffolds/create/qgisserver/geomapfish.yaml.tmpl_tmpl +0 -16
- c2cgeoportal_geoportal/scaffolds/create/spell-ignore-words.txt +0 -1
- c2cgeoportal_geoportal/scaffolds/create/tilegeneration/config.yaml.tmpl_tmpl +0 -185
- c2cgeoportal_geoportal/scaffolds/create/yamllint.yaml +0 -11
- c2cgeoportal_geoportal/scaffolds/update/+dot+upgrade.yaml_tmpl +0 -181
- c2cgeoportal_geoportal/scaffolds/update/CONST_CHANGELOG.txt_tmpl +0 -454
- c2cgeoportal_geoportal/templates/dynamic.js +0 -21
- c2cgeoportal_geoportal-2.6.0.dist-info/RECORD +0 -173
- /c2cgeoportal_geoportal/{scaffolds/create/geoportal/+package+_geoportal/static/css/desktop.css → py.typed} +0 -0
- /c2cgeoportal_geoportal/scaffolds/{create/geoportal/Makefile_tmpl → advance_create/{{cookiecutter.project}}/geoportal/Makefile} +0 -0
- /c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/alembic.ini +0 -0
- /c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/language_mapping +0 -0
- /c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/lingua-server.cfg +0 -0
- /c2cgeoportal_geoportal/scaffolds/{create → advance_create/{{cookiecutter.project}}}/geoportal/requirements.txt +0 -0
- /c2cgeoportal_geoportal/scaffolds/{create/geoportal/+package+_geoportal → advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/views/__init__.py +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal/locale/en/LC_MESSAGES/+package+_geoportal-client.po → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/locale/en/LC_MESSAGES/{{cookiecutter.package}}_geoportal-client.po} +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal/static/css/iframe_api.css → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/desktop.css} +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal/static/css/mobile.css → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/iframe_api.css} +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/banner_left.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/banner_right.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/blank.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/markers/marker-blue.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/markers/marker-gold.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/markers/marker-green.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/images/markers/marker.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{geoportal/+package+_geoportal → {{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal}/static/robot.txt.tmpl +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/data/TM_EUROPE_BORDERS-0.3.sql +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Arial.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Arialbd.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Arialbi.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Ariali.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-Bold.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-BoldItalic.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-Italic.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/NotoSans-Regular.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdana.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdanab.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdanai.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts/Verdanaz.ttf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/fonts.conf +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{mapserver → {{cookiecutter.project}}/mapserver}/tinyows.xml.tmpl +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/legend.jrxml +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/logo.png +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/north.svg +0 -0
- /c2cgeoportal_geoportal/scaffolds/create/{print/print-apps/+package+ → {{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}}/results.jrxml +0 -0
- {c2cgeoportal_geoportal-2.6.0.dist-info → c2cgeoportal_geoportal-2.8.1.180.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,186 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
|
3
|
+
import argparse
|
4
|
+
import os
|
5
|
+
import os.path
|
6
|
+
import platform
|
7
|
+
import re
|
8
|
+
import shlex
|
9
|
+
import shutil
|
10
|
+
import stat
|
11
|
+
import subprocess
|
12
|
+
import sys
|
13
|
+
import urllib.request
|
14
|
+
from typing import TYPE_CHECKING, Any, List, Optional
|
15
|
+
|
16
|
+
import yaml
|
17
|
+
|
18
|
+
CompletedProcess = subprocess.CompletedProcess[str] if TYPE_CHECKING else subprocess.CompletedProcess
|
19
|
+
|
20
|
+
|
21
|
+
def run(
|
22
|
+
args: argparse.Namespace, command: List[str], exit_on_error: bool = True, **kwargs: Any
|
23
|
+
) -> Optional[CompletedProcess]:
|
24
|
+
if args.verbose or args.dry_run:
|
25
|
+
print(" ".join([shlex.quote(c) for c in command]))
|
26
|
+
if not args.dry_run or "stdout" in kwargs:
|
27
|
+
if args.stack_trace and exit_on_error and not "checks" in kwargs:
|
28
|
+
kwargs["check"] = True
|
29
|
+
process = subprocess.run(command, **kwargs) # nosec
|
30
|
+
if exit_on_error and process.returncode != 0:
|
31
|
+
print(
|
32
|
+
"An error occurred during execution of `{}`".format(
|
33
|
+
" ".join([shlex.quote(c) for c in command])
|
34
|
+
)
|
35
|
+
)
|
36
|
+
sys.exit(process.returncode)
|
37
|
+
return process
|
38
|
+
return None
|
39
|
+
|
40
|
+
|
41
|
+
def main() -> None:
|
42
|
+
parser = argparse.ArgumentParser(description="Build the project")
|
43
|
+
parser.add_argument("--verbose", action="store_true", help="Display the Docker build commands")
|
44
|
+
parser.add_argument(
|
45
|
+
"--dry-run", action="store_true", help="Display the docker build commands without executing them"
|
46
|
+
)
|
47
|
+
parser.add_argument("--service", help="Build only the specified service")
|
48
|
+
parser.add_argument("--env", action="store_true", help="Build only the .env file")
|
49
|
+
parser.add_argument("--simple", action="store_true", help="Force simple application mode")
|
50
|
+
parser.add_argument("--not-simple", action="store_true", help="Force not simple application mode")
|
51
|
+
parser.add_argument("--upgrade", help="Start upgrading the project to version")
|
52
|
+
parser.add_argument(
|
53
|
+
"--reload",
|
54
|
+
nargs="?",
|
55
|
+
action="store",
|
56
|
+
const="",
|
57
|
+
help="Comma separate list of services that will be reloaded after the build",
|
58
|
+
)
|
59
|
+
parser.add_argument(
|
60
|
+
"--no-pull",
|
61
|
+
action="store_true",
|
62
|
+
default=os.environ.get("CI", "FALSE").upper() == "TRUE",
|
63
|
+
help="Do not pull external or base images for faster rebuild during development.",
|
64
|
+
)
|
65
|
+
parser.add_argument(
|
66
|
+
"--debug", help="Path to c2cgeoportal source folder to be able to debug the upgrade procedure"
|
67
|
+
)
|
68
|
+
parser.add_argument("--stack-trace", action="store_true", help="Display the stack trace on error")
|
69
|
+
parser.add_argument(
|
70
|
+
"--docker-compose-version-2", action="store_true", help="Use Docker Compose version 2"
|
71
|
+
)
|
72
|
+
parser.add_argument("env_files", nargs="*", help="The environment config")
|
73
|
+
args = parser.parse_args()
|
74
|
+
|
75
|
+
if args.upgrade:
|
76
|
+
major_version = args.upgrade
|
77
|
+
match = re.match(r"^([0-9]+\.[0-9]+)\.[0-9]+$", args.upgrade)
|
78
|
+
if match is not None:
|
79
|
+
major_version = match.group(1)
|
80
|
+
match = re.match(r"^([0-9]+\.[0-9]+)\.[0-9a-z]+\.[0-9]+$", args.upgrade)
|
81
|
+
if match is not None:
|
82
|
+
major_version = match.group(1)
|
83
|
+
full_version = args.upgrade
|
84
|
+
with open("upgrade", "w", encoding="utf-8") as f:
|
85
|
+
with urllib.request.urlopen( # nosec
|
86
|
+
"https://raw.githubusercontent.com/camptocamp/c2cgeoportal/{major_version}/scripts/upgrade".format(
|
87
|
+
major_version=major_version
|
88
|
+
)
|
89
|
+
) as result:
|
90
|
+
if result.code != 200:
|
91
|
+
print("ERROR:")
|
92
|
+
print(result.read())
|
93
|
+
sys.exit(1)
|
94
|
+
f.write(result.read().decode())
|
95
|
+
debug_args = []
|
96
|
+
if args.debug:
|
97
|
+
shutil.copyfile(os.path.join(args.debug, "scripts", "upgrade"), "upgrade")
|
98
|
+
debug_args = ["--debug", args.debug]
|
99
|
+
os.chmod("upgrade", os.stat("upgrade").st_mode | stat.S_IXUSR)
|
100
|
+
try:
|
101
|
+
if platform.system() == "Windows":
|
102
|
+
run(args, ["python", "upgrade", full_version] + debug_args)
|
103
|
+
else:
|
104
|
+
run(args, ["./upgrade", full_version] + debug_args)
|
105
|
+
except subprocess.CalledProcessError:
|
106
|
+
sys.exit(1)
|
107
|
+
sys.exit(0)
|
108
|
+
|
109
|
+
with open("project.yaml", encoding="utf-8") as project_file:
|
110
|
+
project_env = yaml.load(project_file, Loader=yaml.SafeLoader)["env"]
|
111
|
+
if len(args.env_files) != project_env["required_args"]:
|
112
|
+
print(project_env["help"])
|
113
|
+
sys.exit(1)
|
114
|
+
env_files = [e.format(*args.env_files) for e in project_env["files"]]
|
115
|
+
print("Use env files: {}".format(", ".join(env_files)))
|
116
|
+
for env_file in env_files:
|
117
|
+
if not os.path.exists(env_file):
|
118
|
+
print("Error: the env file '{env_file}' does not exist.".format(env_file=env_file))
|
119
|
+
sys.exit(1)
|
120
|
+
|
121
|
+
with open(".env", "w", encoding="utf-8") as dest:
|
122
|
+
for file_ in env_files:
|
123
|
+
with open(file_, encoding="utf-8") as src:
|
124
|
+
dest.write(src.read() + "\n")
|
125
|
+
|
126
|
+
simple = not os.path.exists("geoportal/Dockerfile")
|
127
|
+
if args.simple:
|
128
|
+
simple = True
|
129
|
+
if args.not_simple:
|
130
|
+
simple = False
|
131
|
+
|
132
|
+
git_hash = run(args, ["git", "rev-parse", "HEAD"], stdout=subprocess.PIPE).stdout.decode().strip()
|
133
|
+
|
134
|
+
dest.write("SIMPLE={}\n".format(str(simple).upper()))
|
135
|
+
dest.write("GIT_HASH={git_hash}\n".format(git_hash=git_hash))
|
136
|
+
|
137
|
+
dest.write("# Used env files: {}\n".format(", ".join(env_files)))
|
138
|
+
|
139
|
+
docker_compose = ["docker", "compose"] if args.docker_compose_version_2 else ["docker-compose"]
|
140
|
+
if not args.env:
|
141
|
+
docker_compose_build_cmd = [*docker_compose, "build"]
|
142
|
+
|
143
|
+
if not args.no_pull:
|
144
|
+
# Pull all the images
|
145
|
+
if not args.service:
|
146
|
+
run(args, [*docker_compose, "pull", "--ignore-pull-failures"]) # nosec
|
147
|
+
docker_compose_build_cmd.append("--pull")
|
148
|
+
|
149
|
+
if args.service:
|
150
|
+
docker_compose_build_cmd.append(args.service)
|
151
|
+
|
152
|
+
print_args = [a.replace(" ", "\\ ") for a in docker_compose_build_cmd]
|
153
|
+
print_args = [a.replace('"', '\\"') for a in print_args]
|
154
|
+
print_args = [a.replace("'", "\\'") for a in print_args]
|
155
|
+
try:
|
156
|
+
env = {"DOCKER_BUILDKIT": "1", "COMPOSE_DOCKER_CLI_BUILD": "1"}
|
157
|
+
env.update(os.environ)
|
158
|
+
run(args, docker_compose_build_cmd, env=env) # nosec
|
159
|
+
except subprocess.CalledProcessError as e:
|
160
|
+
print("Error with command: " + " ".join(print_args))
|
161
|
+
sys.exit(e.returncode)
|
162
|
+
|
163
|
+
if args.reload:
|
164
|
+
services = args.reload.split(",")
|
165
|
+
elif args.reload == "":
|
166
|
+
services = [
|
167
|
+
service
|
168
|
+
for service in run(
|
169
|
+
args,
|
170
|
+
[*docker_compose, "ps", "--services", "--all"],
|
171
|
+
stdout=subprocess.PIPE,
|
172
|
+
exit_on_error=True,
|
173
|
+
)
|
174
|
+
.stdout.decode()
|
175
|
+
.splitlines()
|
176
|
+
if not service.startswith("redis")
|
177
|
+
]
|
178
|
+
|
179
|
+
if args.reload is not None:
|
180
|
+
run(args, [*docker_compose, "rm", "--force", "-v", "config"])
|
181
|
+
for service in services:
|
182
|
+
run(args, [*docker_compose, "up", "--detach", "--force-recreate", service])
|
183
|
+
|
184
|
+
|
185
|
+
if __name__ == "__main__":
|
186
|
+
main()
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/camptocamp/c2cciutils/1.4/c2cciutils/schema.json
|
2
|
+
|
3
|
+
checks:
|
4
|
+
codespell: False
|
5
|
+
required_workflows: False
|
6
|
+
dependabot_config: False
|
7
|
+
prospector_config: False
|
8
|
+
setup: False
|
9
|
+
|
10
|
+
version:
|
11
|
+
branch_to_version_re:
|
12
|
+
- from: (prod-[0-9]+-[0-9]+)
|
13
|
+
to: \1
|
14
|
+
- from: (int-[0-9]+-[0-9]+)
|
15
|
+
to: \1
|
16
|
+
|
17
|
+
publish:
|
18
|
+
pypi: false
|
19
|
+
docker:
|
20
|
+
dispatch: {}
|
21
|
+
images:
|
22
|
+
- name: camptocamp/{{cookiecutter.package}}-config
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
|
3
|
+
import argparse
|
4
|
+
import subprocess
|
5
|
+
import sys
|
6
|
+
|
7
|
+
|
8
|
+
def _main() -> None:
|
9
|
+
argparser = argparse.ArgumentParser("Tests that's all the services are running")
|
10
|
+
argparser.parse_args()
|
11
|
+
|
12
|
+
services = [
|
13
|
+
s.strip()
|
14
|
+
for s in subprocess.run(["docker", "compose", "ps"], check=True, stdout=subprocess.PIPE)
|
15
|
+
.stdout.decode("utf-8")
|
16
|
+
.splitlines()
|
17
|
+
]
|
18
|
+
errors_statuses = [s for s in services if " Exit " in s and not s.endswith(" Exit 0")]
|
19
|
+
if errors_statuses:
|
20
|
+
print("\n".join(errors_statuses))
|
21
|
+
sys.exit(1)
|
22
|
+
|
23
|
+
|
24
|
+
if __name__ == "__main__":
|
25
|
+
_main()
|
@@ -0,0 +1 @@
|
|
1
|
+
c2cciutils[checks,publish]==1.4.21
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This file is used by the acceptance tests to have a local database.
|
2
|
+
|
3
|
+
version: '2.3'
|
4
|
+
|
5
|
+
volumes:
|
6
|
+
postgresql_data:
|
7
|
+
|
8
|
+
services:
|
9
|
+
config: &db-config
|
10
|
+
environment:
|
11
|
+
- PGHOST=db
|
12
|
+
- PGHOST_SLAVE=db
|
13
|
+
- PGSSLMODE=prefer
|
14
|
+
geoportal: *db-config
|
15
|
+
# geoportal-advance: *db-config
|
16
|
+
tools: *db-config
|
17
|
+
alembic: *db-config
|
18
|
+
# alembic-advance: *db-config
|
19
|
+
# webpack_dev_server: *db-config
|
20
|
+
|
21
|
+
db:
|
22
|
+
extends:
|
23
|
+
file: docker-compose-lib.yaml
|
24
|
+
service: db
|
25
|
+
volumes:
|
26
|
+
- postgresql_data:/var/lib/postgresql/data
|
@@ -1,9 +1,18 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# This file is managed by c2cgeoportal, it contains the default services configuration
|
2
|
+
|
3
|
+
version: '2.3'
|
3
4
|
|
4
5
|
services:
|
5
6
|
config:
|
6
7
|
image: ${DOCKER_BASE}-config:${DOCKER_TAG}
|
8
|
+
build:
|
9
|
+
context: .
|
10
|
+
args:
|
11
|
+
SIMPLE: ${SIMPLE}
|
12
|
+
PGSCHEMA: ${PGSCHEMA}
|
13
|
+
GEOMAPFISH_VERSION: ${GEOMAPFISH_VERSION}
|
14
|
+
GEOMAPFISH_MAIN_VERSION: ${GEOMAPFISH_MAIN_VERSION}
|
15
|
+
GEOMAPFISH_MAIN_MINOR_VERSION: ${GEOMAPFISH_MAIN_MINOR_VERSION}
|
7
16
|
user: www-data
|
8
17
|
environment:
|
9
18
|
- VISIBLE_WEB_HOST
|
@@ -18,9 +27,13 @@ services:
|
|
18
27
|
- PGDATABASE
|
19
28
|
- PGSSLMODE
|
20
29
|
- PGSCHEMA_STATIC
|
30
|
+
- SRID
|
21
31
|
- SQLALCHEMY_POOL_RECYCLE
|
22
32
|
- SQLALCHEMY_POOL_SIZE
|
23
33
|
- SQLALCHEMY_MAX_OVERFLOW
|
34
|
+
- SQLALCHEMY_SLAVE_POOL_RECYCLE
|
35
|
+
- SQLALCHEMY_SLAVE_POOL_SIZE
|
36
|
+
- SQLALCHEMY_SLAVE_MAX_OVERFLOW
|
24
37
|
- GEOPORTAL_INTERNAL_URL
|
25
38
|
- GEOPORTAL_INTERNAL_HOST
|
26
39
|
- GEOPORTAL_INTERNAL_PORT
|
@@ -30,7 +43,10 @@ services:
|
|
30
43
|
- MUTUALIZED_PRINT_URL
|
31
44
|
- DISABLE_MUTUALIZED_PRINT
|
32
45
|
- DISABLE_LOCAL_PRINT
|
46
|
+
- DISABLE_MUTUALIZE
|
47
|
+
- DISABLE_LOCAL
|
33
48
|
- MAPSERVER_URL
|
49
|
+
- QGISSERVER_URL
|
34
50
|
- REDIS_HOST
|
35
51
|
- REDIS_PORT
|
36
52
|
- REDIS_DB
|
@@ -42,9 +58,18 @@ services:
|
|
42
58
|
- AWS_SECRET_ACCESS_KEY
|
43
59
|
- AWS_DEFAULT_REGION
|
44
60
|
- AWS_S3_ENDPOINT
|
61
|
+
- AZURE_STORAGE_CONNECTION_STRING
|
62
|
+
- AZURE_STORAGE_ACCOUNT
|
63
|
+
- AZURE_STORAGE_ACCESS_TOKEN
|
64
|
+
- AZURE_STORAGE_ACCESS_KEY
|
65
|
+
- AZURE_STORAGE_SAS_TOKEN
|
66
|
+
- TILEGENERATION_AZURE_CONTAINER
|
67
|
+
- RASTER_BASE_PATH
|
68
|
+
- DISABLE_HAPROXY_LOGGING
|
69
|
+
- HAPROXY_LOGGING_OPTIONS
|
45
70
|
|
46
71
|
print:
|
47
|
-
image: camptocamp/mapfish_print:3.
|
72
|
+
image: camptocamp/mapfish_print:3.30
|
48
73
|
user: www-data
|
49
74
|
restart: unless-stopped
|
50
75
|
environment:
|
@@ -52,12 +77,26 @@ services:
|
|
52
77
|
- PGOPTIONS
|
53
78
|
|
54
79
|
mapserver:
|
55
|
-
image: camptocamp/mapserver:7
|
80
|
+
image: camptocamp/mapserver:8.0-gdal3.7
|
56
81
|
user: www-data
|
57
82
|
restart: unless-stopped
|
58
83
|
entrypoint: []
|
59
84
|
environment:
|
60
85
|
- PGOPTIONS
|
86
|
+
- MAPSERVER_CONFIG_FILE=/etc/mapserver/mapserver.conf
|
87
|
+
- AWS_ACCESS_KEY_ID
|
88
|
+
- AWS_SECRET_ACCESS_KEY
|
89
|
+
- AWS_DEFAULT_REGION
|
90
|
+
- AWS_S3_ENDPOINT
|
91
|
+
- AZURE_STORAGE_CONNECTION_STRING
|
92
|
+
- AZURE_STORAGE_ACCOUNT
|
93
|
+
- AZURE_STORAGE_ACCESS_TOKEN
|
94
|
+
- AZURE_STORAGE_ACCESS_KEY
|
95
|
+
- AZURE_STORAGE_SAS_TOKEN
|
96
|
+
- CPL_VSIL_CURL_USE_CACHE
|
97
|
+
- CPL_VSIL_CURL_CACHE_SIZE
|
98
|
+
- CPL_VSIL_CURL_USE_HEAD
|
99
|
+
- GDAL_DISABLE_READDIR_ON_OPEN
|
61
100
|
|
62
101
|
qgisserver:
|
63
102
|
image: camptocamp/geomapfish-qgisserver:gmf${GEOMAPFISH_MAIN_VERSION}-qgis${QGIS_VERSION}
|
@@ -75,16 +114,35 @@ services:
|
|
75
114
|
- AWS_SECRET_ACCESS_KEY
|
76
115
|
- AWS_DEFAULT_REGION
|
77
116
|
- AWS_S3_ENDPOINT
|
117
|
+
- AZURE_STORAGE_CONNECTION_STRING
|
118
|
+
- AZURE_STORAGE_ACCOUNT
|
119
|
+
- AZURE_STORAGE_ACCESS_TOKEN
|
120
|
+
- AZURE_STORAGE_ACCESS_KEY
|
121
|
+
- AZURE_STORAGE_SAS_TOKEN
|
78
122
|
- CPL_VSIL_CURL_USE_CACHE
|
79
123
|
- CPL_VSIL_CURL_CACHE_SIZE
|
80
124
|
- CPL_VSIL_CURL_USE_HEAD
|
81
125
|
- GDAL_DISABLE_READDIR_ON_OPEN
|
82
|
-
- QGIS_SERVER_LOG_LEVEL
|
83
|
-
-
|
126
|
+
- QGIS_SERVER_LOG_LEVEL
|
127
|
+
- QGIS_AUTH_DB_DIR_PATH
|
128
|
+
- QGIS_SERVER_IGNORE_BAD_LAYERS
|
129
|
+
- QGIS_SERVER_DISABLE_GETPRINT
|
130
|
+
- PGSERVICEFILE
|
131
|
+
- LOG_LEVEL=${QGIS_LOG_LEVEL}
|
84
132
|
- LOG_TYPE
|
85
133
|
- C2CGEOPORTAL_LOG_LEVEL
|
86
134
|
- SQL_LOG_LEVEL
|
87
135
|
- OTHER_LOG_LEVEL
|
136
|
+
- GEOMAPFISH_ACCESSCONTROL_BASE_URL=${QGISSERVER_URL}
|
137
|
+
- QGIS_SERVER_TRUST_LAYER_METADATA
|
138
|
+
- QGIS_SERVER_PARALLEL_RENDERING
|
139
|
+
- MAX_CACHE_LAYERS
|
140
|
+
- QGIS_SERVER_CACHE_SIZE
|
141
|
+
- QGIS_SERVER_WMS_MAX_HEIGHT
|
142
|
+
- QGIS_SERVER_WMS_MAX_WIDTH
|
143
|
+
- QGIS_SERVER_API_WFS3_MAX_LIMIT
|
144
|
+
- QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES
|
145
|
+
- QGIS_SERVER_OVERRIDE_SYSTEM_LOCALE
|
88
146
|
|
89
147
|
tinyows:
|
90
148
|
image: camptocamp/tinyows:master
|
@@ -92,7 +150,7 @@ services:
|
|
92
150
|
restart: unless-stopped
|
93
151
|
|
94
152
|
redis:
|
95
|
-
image: redis:
|
153
|
+
image: &redis-image redis:7.0
|
96
154
|
user: www-data
|
97
155
|
restart: unless-stopped
|
98
156
|
command:
|
@@ -109,10 +167,10 @@ services:
|
|
109
167
|
- '30'
|
110
168
|
|
111
169
|
redis_master:
|
112
|
-
image: redis
|
170
|
+
image: *redis-image
|
113
171
|
|
114
172
|
redis_slave:
|
115
|
-
image: redis
|
173
|
+
image: *redis-image
|
116
174
|
command: redis-server --slaveof redis_master 6379
|
117
175
|
|
118
176
|
redis_sentinel:
|
@@ -123,16 +181,21 @@ services:
|
|
123
181
|
- MASTER=redis_master
|
124
182
|
|
125
183
|
tilecloudchain:
|
126
|
-
image: camptocamp/tilecloud-chain:1.
|
184
|
+
image: &tilecloudchain-image camptocamp/tilecloud-chain:1.17
|
127
185
|
user: www-data
|
128
186
|
restart: unless-stopped
|
129
187
|
environment:
|
130
188
|
- DEVELOPMENT
|
131
|
-
- GUNICORN_PARAMS
|
132
189
|
- VISIBLE_ENTRY_POINT
|
133
190
|
- TILEGENERATION_CONFIGFILE=/etc/tilegeneration/config.yaml
|
134
191
|
- AWS_ACCESS_KEY_ID
|
135
192
|
- AWS_SECRET_ACCESS_KEY
|
193
|
+
- AZURE_STORAGE_CONNECTION_STRING
|
194
|
+
- AZURE_STORAGE_ACCOUNT
|
195
|
+
- AZURE_STORAGE_ACCESS_TOKEN
|
196
|
+
- AZURE_STORAGE_ACCESS_KEY
|
197
|
+
- AZURE_STORAGE_SAS_TOKEN
|
198
|
+
- AZURE_STORAGE_ACCOUNT_URL
|
136
199
|
- C2C_BASE_PATH
|
137
200
|
- C2C_REDIS_URL
|
138
201
|
- C2C_REDIS_SENTINELS
|
@@ -148,6 +211,14 @@ services:
|
|
148
211
|
- C2C_PROFILER_PATH
|
149
212
|
- C2C_PROFILER_MODULES
|
150
213
|
- C2C_SECRET
|
214
|
+
- C2C_AUTH_GITHUB_REPOSITORY
|
215
|
+
- C2C_AUTH_GITHUB_ACCESS_TYPE
|
216
|
+
- C2C_AUTH_GITHUB_CLIENT_ID
|
217
|
+
- C2C_AUTH_GITHUB_CLIENT_SECRET
|
218
|
+
- C2C_AUTH_GITHUB_SCOPE
|
219
|
+
- C2C_AUTH_GITHUB_SECRET
|
220
|
+
- C2C_AUTH_GITHUB_PROXY_URL
|
221
|
+
- C2C_USE_SESSION=true
|
151
222
|
- TILECLOUD_LOG_LEVEL
|
152
223
|
- TILECLOUD_CHAIN_LOG_LEVEL
|
153
224
|
- C2CWSGI_LOG_LEVEL
|
@@ -155,7 +226,7 @@ services:
|
|
155
226
|
- LOG_TYPE
|
156
227
|
|
157
228
|
tilegeneration_slave:
|
158
|
-
image:
|
229
|
+
image: *tilecloudchain-image
|
159
230
|
user: www-data
|
160
231
|
restart: unless-stopped
|
161
232
|
entrypoint:
|
@@ -165,12 +236,18 @@ services:
|
|
165
236
|
environment:
|
166
237
|
- AWS_ACCESS_KEY_ID
|
167
238
|
- AWS_SECRET_ACCESS_KEY
|
239
|
+
- AZURE_STORAGE_CONNECTION_STRING
|
240
|
+
- AZURE_STORAGE_ACCOUNT
|
241
|
+
- AZURE_STORAGE_ACCESS_TOKEN
|
242
|
+
- AZURE_STORAGE_ACCESS_KEY
|
243
|
+
- AZURE_STORAGE_SAS_TOKEN
|
244
|
+
- AZURE_STORAGE_ACCOUNT_URL
|
168
245
|
|
169
246
|
geoportal:
|
170
|
-
image:
|
247
|
+
image: camptocamp/geomapfishapp-geoportal:${GEOMAPFISH_MAIN_MINOR_VERSION}
|
171
248
|
user: www-data
|
172
249
|
restart: unless-stopped
|
173
|
-
environment:
|
250
|
+
environment: &geoportal-env
|
174
251
|
- DEVELOPMENT
|
175
252
|
- VISIBLE_ENTRY_POINT
|
176
253
|
- PACKAGE
|
@@ -182,16 +259,28 @@ services:
|
|
182
259
|
- PGPASSWORD
|
183
260
|
- PGDATABASE
|
184
261
|
- PGSSLMODE
|
262
|
+
- PGSCHEMA
|
185
263
|
- PGSCHEMA_STATIC
|
186
264
|
- PGOPTIONS
|
187
265
|
- SQLALCHEMY_POOL_RECYCLE
|
188
266
|
- SQLALCHEMY_POOL_SIZE
|
189
267
|
- SQLALCHEMY_MAX_OVERFLOW
|
268
|
+
- SQLALCHEMY_SLAVE_POOL_RECYCLE
|
269
|
+
- SQLALCHEMY_SLAVE_POOL_SIZE
|
270
|
+
- SQLALCHEMY_SLAVE_MAX_OVERFLOW
|
190
271
|
- AWS_ACCESS_KEY_ID
|
191
272
|
- AWS_SECRET_ACCESS_KEY
|
192
273
|
- AWS_DEFAULT_REGION
|
193
274
|
- AWS_S3_ENDPOINT
|
194
|
-
-
|
275
|
+
- AZURE_STORAGE_CONNECTION_STRING
|
276
|
+
- AZURE_STORAGE_ACCOUNT
|
277
|
+
- AZURE_STORAGE_ACCESS_TOKEN
|
278
|
+
- AZURE_STORAGE_ACCESS_KEY
|
279
|
+
- AZURE_STORAGE_SAS_TOKEN
|
280
|
+
- CPL_VSIL_CURL_USE_CACHE
|
281
|
+
- CPL_VSIL_CURL_CACHE_SIZE
|
282
|
+
- CPL_VSIL_CURL_USE_HEAD
|
283
|
+
- GDAL_DISABLE_READDIR_ON_OPEN
|
195
284
|
- VISIBLE_WEB_HOST
|
196
285
|
- VISIBLE_WEB_PROTOCOL
|
197
286
|
- AUTHTKT_TIMEOUT
|
@@ -227,19 +316,43 @@ services:
|
|
227
316
|
- C2C_PROFILER_MODULES
|
228
317
|
- C2C_DEBUG_VIEW_ENABLED=TRUE
|
229
318
|
- C2C_SECRET
|
319
|
+
- C2C_AUTH_GITHUB_REPOSITORY
|
320
|
+
- C2C_AUTH_GITHUB_ACCESS_TYPE
|
321
|
+
- C2C_AUTH_GITHUB_CLIENT_ID
|
322
|
+
- C2C_AUTH_GITHUB_CLIENT_SECRET
|
323
|
+
- C2C_AUTH_GITHUB_SCOPE
|
324
|
+
- C2C_AUTH_GITHUB_SECRET
|
325
|
+
- C2C_AUTH_GITHUB_PROXY_URL
|
230
326
|
- LOG_LEVEL
|
231
327
|
- C2CGEOPORTAL_LOG_LEVEL
|
232
328
|
- SQL_LOG_LEVEL
|
233
329
|
- GUNICORN_LOG_LEVEL
|
234
330
|
- OTHER_LOG_LEVEL
|
235
331
|
- DOGPILECACHE_LOG_LEVEL
|
332
|
+
- C2CWSGIUTILS_LOG_LEVEL
|
236
333
|
- LOG_TYPE
|
334
|
+
- C2CGEOPORTAL_THEME_TIMEOUT=300
|
335
|
+
|
336
|
+
geoportal-advance:
|
337
|
+
image: ${DOCKER_BASE}-geoportal:${DOCKER_TAG}
|
338
|
+
build: &geoportal-build
|
339
|
+
context: geoportal
|
340
|
+
args:
|
341
|
+
GIT_HASH: ${GIT_HASH}
|
342
|
+
PGSCHEMA: ${PGSCHEMA}
|
343
|
+
GEOMAPFISH_VERSION: ${GEOMAPFISH_VERSION}
|
344
|
+
GEOMAPFISH_MAIN_VERSION: ${GEOMAPFISH_MAIN_VERSION}
|
345
|
+
GEOMAPFISH_MAIN_MINOR_VERSION: ${GEOMAPFISH_MAIN_MINOR_VERSION}
|
346
|
+
user: www-data
|
347
|
+
restart: unless-stopped
|
348
|
+
environment: *geoportal-env
|
237
349
|
|
238
350
|
tools:
|
239
351
|
image: camptocamp/geomapfish-tools:${GEOMAPFISH_VERSION}
|
240
352
|
restart: unless-stopped
|
353
|
+
volumes:
|
354
|
+
- .:/src
|
241
355
|
environment:
|
242
|
-
- PGSCHEMA
|
243
356
|
# From geoportal
|
244
357
|
- DEVELOPMENT
|
245
358
|
- VISIBLE_ENTRY_POINT
|
@@ -252,13 +365,18 @@ services:
|
|
252
365
|
- PGPASSWORD
|
253
366
|
- PGDATABASE
|
254
367
|
- PGSSLMODE
|
368
|
+
- PGSCHEMA
|
255
369
|
- PGSCHEMA_STATIC
|
256
370
|
- PGOPTIONS
|
257
371
|
- AWS_ACCESS_KEY_ID
|
258
372
|
- AWS_SECRET_ACCESS_KEY
|
259
373
|
- AWS_DEFAULT_REGION
|
260
374
|
- AWS_S3_ENDPOINT
|
261
|
-
-
|
375
|
+
- AZURE_STORAGE_CONNECTION_STRING
|
376
|
+
- AZURE_STORAGE_ACCOUNT
|
377
|
+
- AZURE_STORAGE_ACCESS_TOKEN
|
378
|
+
- AZURE_STORAGE_ACCESS_KEY
|
379
|
+
- AZURE_STORAGE_SAS_TOKEN
|
262
380
|
- VISIBLE_WEB_HOST
|
263
381
|
- VISIBLE_WEB_PROTOCOL
|
264
382
|
- AUTHTKT_TIMEOUT
|
@@ -293,17 +411,18 @@ services:
|
|
293
411
|
- C2C_PROFILER_PATH
|
294
412
|
- C2C_PROFILER_MODULES
|
295
413
|
- C2C_DEBUG_VIEW_ENABLED=TRUE
|
296
|
-
- C2C_SECRET
|
297
414
|
- LOG_LEVEL
|
298
415
|
- C2CGEOPORTAL_LOG_LEVEL
|
299
416
|
- SQL_LOG_LEVEL
|
300
417
|
- GUNICORN_LOG_LEVEL
|
301
418
|
- OTHER_LOG_LEVEL
|
302
419
|
- DOGPILECACHE_LOG_LEVEL
|
420
|
+
- C2CWSGIUTILS_LOG_LEVEL
|
303
421
|
- LOG_TYPE
|
422
|
+
- SUFFIX=
|
304
423
|
|
305
|
-
alembic:
|
306
|
-
image:
|
424
|
+
alembic: &alembic
|
425
|
+
image: camptocamp/geomapfishapp-geoportal:${GEOMAPFISH_MAIN_VERSION}
|
307
426
|
user: www-data
|
308
427
|
entrypoint: []
|
309
428
|
command:
|
@@ -323,11 +442,16 @@ services:
|
|
323
442
|
- PGSCHEMA_STATIC
|
324
443
|
- LOG_TYPE
|
325
444
|
|
445
|
+
alembic-advance:
|
446
|
+
<<: *alembic
|
447
|
+
image: ${DOCKER_BASE}-geoportal:${DOCKER_TAG}
|
448
|
+
build: *geoportal-build
|
449
|
+
|
326
450
|
front:
|
327
|
-
image: haproxy:2.
|
451
|
+
image: haproxy:2.6.7
|
328
452
|
restart: unless-stopped
|
329
453
|
volumes:
|
330
|
-
-
|
454
|
+
- ${FRONT_LOG_DIRECTORY}:/dev/log:rw
|
331
455
|
command:
|
332
456
|
- haproxy
|
333
457
|
- -f
|
@@ -337,6 +461,13 @@ services:
|
|
337
461
|
|
338
462
|
webpack_dev_server:
|
339
463
|
image: ${DOCKER_BASE}-geoportal-dev:${DOCKER_TAG}
|
464
|
+
build:
|
465
|
+
context: geoportal
|
466
|
+
target: builder
|
467
|
+
args:
|
468
|
+
GEOMAPFISH_VERSION: ${GEOMAPFISH_VERSION}
|
469
|
+
GEOMAPFISH_MAIN_VERSION: ${GEOMAPFISH_MAIN_VERSION}
|
470
|
+
GEOMAPFISH_MAIN_MINOR_VERSION: ${GEOMAPFISH_MAIN_MINOR_VERSION}
|
340
471
|
volumes:
|
341
472
|
- ./geoportal/${PACKAGE}_geoportal/static-ngeo:/app/${PACKAGE}_geoportal/static-ngeo
|
342
473
|
environment:
|
@@ -356,3 +487,15 @@ services:
|
|
356
487
|
- AWS_SECRET_ACCESS_KEY
|
357
488
|
- AWS_DEFAULT_REGION
|
358
489
|
- AWS_S3_ENDPOINT
|
490
|
+
- AZURE_STORAGE_CONNECTION_STRING
|
491
|
+
- AZURE_STORAGE_ACCOUNT
|
492
|
+
- AZURE_STORAGE_ACCESS_TOKEN
|
493
|
+
- AZURE_STORAGE_ACCESS_KEY
|
494
|
+
- AZURE_STORAGE_SAS_TOKEN
|
495
|
+
|
496
|
+
db:
|
497
|
+
image: camptocamp/postgres:${POSTGRES_TAG}
|
498
|
+
environment:
|
499
|
+
- POSTGRES_PASSWORD=${PGPASSWORD}
|
500
|
+
- POSTGRES_DB=${PGDATABASE}
|
501
|
+
- POSTGRES_USER=${PGUSER}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# This file is used to run QGIS client from the Docker image
|
2
|
+
|
3
|
+
version: '2'
|
4
|
+
|
5
|
+
services:
|
6
|
+
qgis:
|
7
|
+
extends:
|
8
|
+
file: docker-compose-lib.yaml
|
9
|
+
service: qgisserver
|
10
|
+
image: camptocamp/qgis-server:${QGIS_VERSION}-desktop
|
11
|
+
user: root
|
12
|
+
volumes_from:
|
13
|
+
- config
|
14
|
+
volumes:
|
15
|
+
- ${HOME}:${HOME}
|
16
|
+
- /tmp/.X11-unix:/tmp/.X11-unix
|
17
|
+
environment:
|
18
|
+
- PGSERVICEFILE=/etc/qgisserver/pg_service.conf
|
19
|
+
- DISPLAY=unix${DISPLAY}
|
20
|
+
- QGIS_DEBUG=0
|
21
|
+
- QGIS_LOG_FILE=/dev/null
|
22
|
+
- PGOPTIONS=-c statement_timeout=30000
|
23
|
+
- AZURE_STORAGE_CONNECTION_STRING
|