{"id":21615183,"url":"https://github.com/eea/eea.docker.kgs","last_synced_at":"2025-10-06T02:52:07.969Z","repository":{"id":50918118,"uuid":"51607975","full_name":"eea/eea.docker.kgs","owner":"eea","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-08T12:49:17.000Z","size":45988,"stargazers_count":3,"open_issues_count":0,"forks_count":4,"subscribers_count":38,"default_branch":"master","last_synced_at":"2025-05-08T13:43:56.525Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eea.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-02-12T18:32:35.000Z","updated_at":"2025-05-08T12:49:21.000Z","dependencies_parsed_at":"2024-11-24T22:11:01.661Z","dependency_job_id":"62d669fa-be56-4d2f-b52a-ef29fbc64091","html_url":"https://github.com/eea/eea.docker.kgs","commit_stats":null,"previous_names":[],"tags_count":415,"template":false,"template_full_name":null,"purl":"pkg:github/eea/eea.docker.kgs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eea%2Feea.docker.kgs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eea%2Feea.docker.kgs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eea%2Feea.docker.kgs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eea%2Feea.docker.kgs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eea","download_url":"https://codeload.github.com/eea/eea.docker.kgs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eea%2Feea.docker.kgs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278551493,"owners_count":26005388,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-24T22:10:47.687Z","updated_at":"2025-10-06T02:52:07.953Z","avatar_url":"https://github.com/eea.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EEA Plone KGS w/ EEA Add-ons ready to run Docker image\n\n[![Build Status](https://ci.eionet.europa.eu/buildStatus/icon?job=eea/eea.docker.kgs/master)](https://ci.eionet.europa.eu/job/eea/job/eea.docker.kgs/job/master/display/redirect)\n[![Pipeline Status](https://ci.eionet.europa.eu/buildStatus/icon?job=eea/eea.docker.www/master\u0026subject=pipeline)](https://ci.eionet.europa.eu/job/eea/job/eea.docker.www/job/master/display/redirect)\n[![Release](https://img.shields.io/github/release/eea/eea.docker.kgs)](https://github.com/eea/eea.docker.kgs/releases)\n\nDocker image for Plone with EEA Common Add-ons available (formerly known as [EEA Common Plone Buildout (KGS)](https://github.com/eea/eea.plonebuildout.core)\n\nThis image is generic, thus you can obviously re-use it within\nyour non-related EEA projects.\n\n## Supported tags and respective Dockerfile links\n\n  - [Tags](https://hub.docker.com/r/eeacms/kgs/tags/)\n\n## Base docker image\n\n - [hub.docker.com](https://hub.docker.com/r/eeacms/kgs/)\n\n## Source code\n\n  - [github.com](http://github.com/eea/eea.docker.kgs)\n\n## Installation\n\n1. Install [Docker](https://www.docker.com/)\n2. Install [Docker Compose](https://docs.docker.com/compose/) (optional)\n\n## Versions\n\n* Python 2.7.12\n* Plone 4.3.10\n* Zope  2.13.24\n\n## Simple Usage\n\n    $ docker run -p 8080:8080 eeacms/kgs\n\nNow, ask for http://localhost:8080/ in your workstation web browser and add a Plone site (default credentials `admin:admin`).\n\nSee more at [plone](https://hub.docker.com/_/plone)\n\n## Advanced usage (ZEO, RelStorage, etc.)\n\nStart `ZEO` server:\n\n    $ docker run -d --name=zeo \\\n                 -e ZOPE_MODE=zeoserver \\\n             eeacms/kgs\n\nStart 2 Plone clients:\n\n    $ docker run -d --name=zclient1 \\\n                 -e ZOPE_MODE=zeo_client \\\n                 --link=zeo:zeoserver \\\n             eeacms/kgs\n\n    $ docker run -d --name=zclient2 \\\n                 -e ZOPE_MODE=zeo_client \\\n                 --link=zeo:zeoserver \\\n             eeacms/kgs\n\nStart load balancer:\n\n    $ docker run -d --name=lb \\\n                 -p 8080:5000 \\\n                 -p 1936:1936 \\\n                 --link=zclient1 \\\n                 --link=zclient2 \\\n                 -e BACKENDS=\"zclient1 zclient2\" \\\n                 -e BACKENDS_PORT=8080 \\\n                 -e DNS_ENABLED=true \\\n             eeacms/haproxy\n\nCheck load-balancer back-ends health at http://localhost:1936/ (default credentials `admin:admin`).\nIf everything looks OK go to http://localhost:8080/ and add your Plone site.\n\nSee detailed [ZEO client](https://github.com/eea/eea.docker.kgs/tree/master/examples/zeoclient/README.md) examples.\n\nAlso you can run this image as:\n\n* [RelStorage/PostgreSQL client](https://github.com/eea/eea.docker.kgs/tree/master/examples/relstorage/README.md)\n* [Development mode](https://github.com/eea/eea.docker.kgs/tree/master/examples/develop/README.md)\n\n## Extending this image\n\nFor this you'll have to provide the following custom files:\n\n* `buildout.cfg`\n* `Dockerfile`\n\nBelow is an example of `buildout.cfg` and `Dockerfile` to build a custom version\nof Plone with your custom versions of packages based on `EEA KGS` image:\n\n**buildout.cfg**:\n\n    [buildout]\n    extends = eea.cfg\n\n    auto-checkout =\n      land.copernicus.theme\n      land.copernicus.content\n\n    [configuration]\n    eggs +=\n      land.copernicus.theme\n      land.copernicus.content\n\n    [sources]\n    land.copernicus.theme = git https://github.com/eea/land.copernicus.theme.git\n    land.copernicus.content = git https://github.com/eea/land.copernicus.content.git\n\n\n**Dockerfile**:\n\n    FROM eeacms/kgs:8.4\n\n    COPY buildout.cfg /plone/instance/\n    RUN buildout\n\nand then run\n\n    $ docker build -t plone-land-copernicus .\n\n\n## Persist/Migrate data\n\n* [Plone/ZEO: Where to Store Data](https://github.com/plone/plone.docker/blob/master/docs/usage.rst#8-where-to-store-data)\n* [RelStorage: Persistent data as you wish](https://github.com/eea/eea.docker.postgres#persistent-data-as-you-wish)\n\n## Upgrade\n\n    $ docker pull eeacms/kgs\n\n\n## Supported environment variables\n\n**ZOPE:**\n\n* `ZOPE_MODE` Can be `zeoserver`, `standalone`, `zeo_client`, `zeo_async`,  `rel_client`, `rel_async`. Default `standalone`\n* `ZOPE_THREADS` Configure zserver-threads. Default `2` (e.g.: `ZOPE_THREADS=4`)\n* `ZOPE_FAST_LISTEN` Set to `off` to defer opening of the HTTP socket until the end of the Zope startup phase. Defaults to `off` (e.g.: `ZOPE_FAST_LISTEN=on`)\n* `ZOPE_FORCE_CONNECTION_CLOSE` Set to `on` to enforce Zope to set `Connection: close header`. Default `on` (e.g.: `ZOPE_FORCE_CONNECTION_CLOSE=off`)\n\n**RELSTORAGE:**\n\n* `RELSTORAGE_HOST` Custom PostgreSQL address, `postgres` by default (e.g.: `RELSTORAGE_HOST=1.2.3.4`)\n* `RELSTORAGE_USER` Custom PostgreSQL user, `zope` by default (e.g.: `RELSTORAGE_USER=plone`)\n* `RELSTORAGE_PASS` Custom PostgreSQL password, `zope` by default (e.g.: `RELSTORAGE_PASS=secret`)\n* `RELSTORAGE_KEEP_HISTORY` history-preserving database schema, `true` by default (e.g.: `RELSTORAGE_KEEP_HISTORY=false`)\n\n**GRAYLOG:**\n\n* `GRAYLOG` Configure zope inside container to send logs to GrayLog. Default `logcentral.eea.europa.eu:12201`. (e.g.: `GRAYLOG=logs.example.com:12201`)\n* `GRAYLOG_FACILITY` Custom GrayLog facility. Default `eea.docker.kgs` (e.g.: `GRAYLOG_FACILITY=staging.example.com`)\n\n**SENTRY:**\n\n* `SENTRY_DSN` Send python tracebacks to sentry.eea.europa.eu (e.g.: `SENTRY_DSN=https://\u003cpublic_key\u003e:\u003csecret_key\u003e@sentry.eea.europa.eu`)\n* `SENTRY_SITE` ,`SERVER_NAME` Usually the application URL without scheme (e.g.: `SERVER_NAME=staging.eea.europa.eu`)\n* `SENTRY_RELEASE` Your custom KGS application version (e.g: `SENTRY_RELEASE=18.5.9-2.26`)\n* `SENTRY_ENVIRONMENT`, `ENVIRONMENT` Override environment. Leave empty to automatically get it from `rancher-metadata`\n\n**CORS:**\n\n* `CORS_ALLOW_ORIGIN` - Origins that are allowed access to the resource. Either a comma separated list of origins, for example `http://example.net,http://mydomain.com` or `*`. Defaults to `http://localhost:3000,http://127.0.0.1:3000`\n* `CORS_ALLOW_METHODS` - A comma separated list of HTTP method names that are allowed by this CORS policy, for example `DELETE,GET,OPTIONS,PATCH,POST,PUT`. Defaults to `DELETE,GET,OPTIONS,PATCH,POST,PUT`\n* `CORS_ALLOW_CREDENTIALS` - Indicates whether the resource supports user credentials in the request. Defaults to `true`\n* `CORS_EXPOSE_HEADERS` - A comma separated list of response headers clients can access, for example `Content-Length`. Defaults to `Content-Length,X-My-Header`\n* `CORS_ALLOW_HEADERS` - A comma separated list of request headers allowed to be sent by the client, for example `X-My-Header`. Defaults to `Accept,Authorization,Content-Type`\n* `CORS_MAX_AGE` - Indicates how long the results of a preflight request can be cached. Defaults to `3600`\n\n\n\n## Release new versions of this image\n\nGet source code\n\n    $ git clone git@github.com:eea/eea.docker.kgs.git\n\nUpdate `EEA_KGS_VERSION` env within `Dockerfile`\n\n    $ cd eea.docker.kgs\n    $ vim Dockerfile\n\nCommit changes\n\n    $ git commit -am \"Release 19.5\"\n\nCreate tag\n\n    $ git tag 19.5\n\nPush changes\n\n    $ git push --tags\n    $ git push\n\nUpdate release notes\n\n    $ docker run -it --rm -e GIT_NAME=\"eea.docker.kgs\" eeacms/gitflow bash\n    $ /unifyChangelogs.py 19.4 19.5 2\u003e /dev/null\n\nAdd output to https://github.com/eea/eea.docker.kgs/releases/new\n\n\n## Copyright and license\n\nThe Initial Owner of the Original Code is European Environment Agency (EEA).\nAll Rights Reserved.\n\nThe Original Code is free software;\nyou can redistribute it and/or modify it under the terms of the GNU\nGeneral Public License as published by the Free Software Foundation;\neither version 2 of the License, or (at your option) any later\nversion.\n\n## Funding\n\n[European Environment Agency (EU)](http://eea.europa.eu)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feea%2Feea.docker.kgs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feea%2Feea.docker.kgs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feea%2Feea.docker.kgs/lists"}