From 691aa4604a16088d12341e7a35373cc95fe4d097 Mon Sep 17 00:00:00 2001 From: Brett Date: Wed, 5 Jan 2022 14:30:19 +0100 Subject: [PATCH] More README updates, environ file, local ckan.ini file --- README.txt | 7 +- ckan.ini | 252 +++++++++++++++++++++++++++++++++++++++++++++++++++++ environ | 34 ++++++++ 3 files changed, 290 insertions(+), 3 deletions(-) create mode 100644 ckan.ini create mode 100644 environ diff --git a/README.txt b/README.txt index 0a61e51..7396a20 100644 --- a/README.txt +++ b/README.txt @@ -1,12 +1,14 @@ ### Please note that this re-purposed CKAN Docker repo is a WORK IN PROGRESS ### ### It should not be used to install CKAN via Docker until this page is updated ### +------------------------------------- (From Adria) Be limited in scope, and act as a base that users can extend to their own needs Be opinionated, and provide one way to do things Be automatically tested +------------------------------------- -have an nginx container included? +should we have an nginx container included? maybe just instructions on how to include one ARG should be used for sensitive variables so as to keep the values of these variables out of the build and hence will not show with an "inspect image" command @@ -16,7 +18,6 @@ Do we pre-build a CKAN image and use that (and extend) as the base image OR Use a bind mount for the config file (ckan.ini) docker cp ckan:/srv/app/ckan.ini ./ckan.ini - docker run -p : --mount type=bind,source="$(pwd)"/ckan.ini,target=/srv/app/ckan.ini -d + docker run -p 0.0.0.0:5000:5000 --net ckan-docker_default --hostname ckan --name ckan --env-file=./environ --mount type=bind,source=$(pwd)/ckan.ini,target=/srv/app/ckan.ini -d ckan-docker_ckan Maybe include a script to replace docker-compose if required - diff --git a/ckan.ini b/ckan.ini new file mode 100644 index 0000000..61e85d2 --- /dev/null +++ b/ckan.ini @@ -0,0 +1,252 @@ +# +# CKAN - Pylons configuration +# +# These are some of the configuration options available for your CKAN +# instance. Check the documentation in 'doc/configuration.rst' or at the +# following URL for a description of what they do and the full list of +# available options: +# +# http://docs.ckan.org/en/latest/maintaining/configuration.html +# +# The %(here)s variable will be replaced with the parent directory of this file +# + +[DEFAULT] + +# WARNING: *THIS SETTING MUST BE SET TO FALSE ON A PUBLIC ENVIRONMENT* +# With debug mode enabled, a visitor to your site could execute malicious commands. +debug = false + +[app:main] +use = egg:ckan + +## Development settings +ckan.devserver.host = localhost +ckan.devserver.port = 5000 + + +## Session settings +cache_dir = /tmp/%(ckan.site_id)s/ +beaker.session.key = ckan + +# This is the secret token that the beaker library uses to hash the cookie sent +# to the client. `ckan generate config` generates a unique value for this each +# time it generates a config file. +beaker.session.secret = EHU6ef6rWzspiSQutl2F4G28n + +# `ckan generate config` generates a unique value for this each time it generates +# a config file. +app_instance_uuid = 52ba6253-cf07-4f0b-ba3f-1c685b4a708c + +# repoze.who config +who.config_file = %(here)s/who.ini +who.log_level = warning +who.log_file = %(cache_dir)s/who_log.ini +# Session timeout (user logged out after period of inactivity, in seconds). +# Inactive by default, so the session doesn't expire. +# who.timeout = 86400 + +## Database Settings +sqlalchemy.url = postgresql://ckan_default:ManHat212@localhost/ckan_default + +#ckan.datastore.write_url = postgresql://ckan_default:pass@localhost/datastore_default +#ckan.datastore.read_url = postgresql://datastore_default:pass@localhost/datastore_default + +# PostgreSQL' full-text search parameters +ckan.datastore.default_fts_lang = english +ckan.datastore.default_fts_index_method = gist + + +## Site Settings + +ckan.site_url = +#ckan.use_pylons_response_cleanup_middleware = true + +## Authorization Settings + +ckan.auth.anon_create_dataset = false +ckan.auth.create_unowned_dataset = false +ckan.auth.create_dataset_if_not_in_organization = false +ckan.auth.user_create_groups = false +ckan.auth.user_create_organizations = false +ckan.auth.user_delete_groups = true +ckan.auth.user_delete_organizations = true +ckan.auth.create_user_via_api = false +ckan.auth.create_user_via_web = true +ckan.auth.roles_that_cascade_to_sub_groups = admin +ckan.auth.public_user_details = true +ckan.auth.public_activity_stream_detail = true +ckan.auth.allow_dataset_collaborators = false +ckan.auth.create_default_api_keys = false + +## API Token Settings +api_token.nbytes = 60 +api_token.jwt.encode.secret = string:EHU6ef6rWzspiSQutl2F4G28n +api_token.jwt.decode.secret = string:EHU6ef6rWzspiSQutl2F4G28n +api_token.jwt.algorithm = HS256 + +## API Token: expire_api_token plugin +expire_api_token.default_lifetime = 3600 + +## Search Settings + +ckan.site_id = default +#solr_url = http://127.0.0.1:8983/solr + + +## Redis Settings + +# URL to your Redis instance, including the database to be used. +#ckan.redis.url = redis://localhost:6379/0 + + +## CORS Settings + +# If cors.origin_allow_all is true, all origins are allowed. +# If false, the cors.origin_whitelist is used. +# ckan.cors.origin_allow_all = true +# cors.origin_whitelist is a space separated list of allowed domains. +# ckan.cors.origin_whitelist = http://example1.com http://example2.com + + +## Plugins Settings + +# Note: Add ``datastore`` to enable the CKAN DataStore +# Add ``datapusher`` to enable DataPusher +# Add ``resource_proxy`` to enable resorce proxying and get around the +# same origin policy +ckan.plugins = image_view text_view recline_view datastore datapusher envvars + +# Define which views should be created by default +# (plugins must be loaded in ckan.plugins) +ckan.views.default_views = image_view text_view recline_view + +# Customize which text formats the text_view plugin will show +#ckan.preview.json_formats = json +#ckan.preview.xml_formats = xml rdf rdf+xml owl+xml atom rss +#ckan.preview.text_formats = text plain text/plain + +# Customize which image formats the image_view plugin will show +#ckan.preview.image_formats = png jpeg jpg gif + +## Front-End Settings + +ckan.site_title = CKAN +ckan.site_logo = /base/images/ckan-logo.png +ckan.site_description = +ckan.favicon = /base/images/ckan.ico +ckan.gravatar_default = identicon +ckan.preview.direct = png jpg gif +ckan.preview.loadable = html htm rdf+xml owl+xml xml n3 n-triples turtle plain atom csv tsv rss txt json +ckan.display_timezone = server + +# package_hide_extras = for_search_index_only +#package_edit_return_url = http://another.frontend/dataset/ +#package_new_return_url = http://another.frontend/dataset/ +#ckan.recaptcha.publickey = +#ckan.recaptcha.privatekey = +#licenses_group_url = http://licenses.opendefinition.org/licenses/groups/ckan.json +# ckan.template_footer_end = + + +## Internationalisation Settings +ckan.locale_default = en +ckan.locale_order = en pt_BR ja it cs_CZ ca es fr el sv sr sr@latin no sk fi ru de pl nl bg ko_KR hu sa sl lv +ckan.locales_offered = +ckan.locales_filtered_out = en_GB + +## Feeds Settings + +ckan.feeds.authority_name = +ckan.feeds.date = +ckan.feeds.author_name = +ckan.feeds.author_link = + +## Storage Settings + +#ckan.storage_path = /var/lib/ckan +#ckan.max_resource_size = 10 +#ckan.max_image_size = 2 + +## Webassets Settings +#ckan.webassets.use_x_sendfile = false +#ckan.webassets.path = /var/lib/ckan/webassets + + +## Datapusher settings + +# Make sure you have set up the DataStore + +#ckan.datapusher.formats = csv xls xlsx tsv application/csv application/vnd.ms-excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet +#ckan.datapusher.url = http://127.0.0.1:8800/ +#ckan.datapusher.assume_task_stale_after = 3600 + +# Resource Proxy settings +# Preview size limit, default: 1MB +#ckan.resource_proxy.max_file_size = 1048576 +# Size of chunks to read/write. +#ckan.resource_proxy.chunk_size = 4096 + +## Activity Streams Settings + +#ckan.activity_streams_enabled = true +#ckan.activity_list_limit = 31 +#ckan.activity_streams_email_notifications = true +#ckan.email_notifications_since = 2 days +ckan.hide_activity_from_users = %(ckan.site_id)s + + +## Email settings + +#email_to = errors@example.com +#error_email_from = ckan-errors@example.com +#smtp.server = localhost +#smtp.starttls = False +#smtp.user = username@example.com +#smtp.password = your_password +#smtp.mail_from = +#smtp.reply_to = + +## Background Job Settings +ckan.jobs.timeout = 180 + +## Logging configuration +[loggers] +keys = root, ckan, ckanext, werkzeug + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARNING +handlers = console + +[logger_werkzeug] +level = WARNING +handlers = console +qualname = werkzeug +propagate = 0 + +[logger_ckan] +level = INFO +handlers = console +qualname = ckan +propagate = 0 + +[logger_ckanext] +level = DEBUG +handlers = console +qualname = ckanext +propagate = 0 + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)-5.5s [%(name)s] %(message)s diff --git a/environ b/environ new file mode 100644 index 0000000..df4e7f3 --- /dev/null +++ b/environ @@ -0,0 +1,34 @@ +REDIS_CONTAINERNAME=redis +REDIS_HOSTNAME=redis + +SOLR_CONTAINERNAME=solr +SOLR_HOSTNAME=solr +SOLR_IMAGENAME=solr + +DB_CONTAINERNAME=db +DB_HOSTNAME=db +DB_IMAGENAME=db +POSTGRES_PASSWORD=ckan +DS_RO_PASS=datastore +PGDATA=/var/lib/postgresql/data/db + +CKAN_CONTAINERNAME=ckan +CKAN_HOSTNAME=ckan +CKAN_IMAGENAME=ckan + +CKAN_SQLALCHEMY_URL=postgresql://ckan:ckan@db/ckan +CKAN_DATASTORE_WRITE_URL=postgresql://ckan:ckan@db/datastore +CKAN_DATASTORE_READ_URL=postgresql://datastore_ro:datastore@db/datastore +CKAN_SOLR_URL=http://solr:8983/solr/ckan +CKAN_REDIS_URL=redis://redis:6379/1 +CKAN_SITE_URL=http://localhost +CKAN_MAX_UPLOAD_SIZE_MB=32 +POSTGRES_PASSWORD=ckan +DS_RO_PASS=datastore +CKAN_PORT=5000 +CKAN_DATAPUSHER_URL=http://datapusher:8800 +CKAN__DATAPUSHER__CALLBACK_URL_BASE=http://ckan:5000 + +NGINX_CONTAINERNAME=nginx +NGINX_HOSTNAME=nginx +NGINX_IMAGENAME=nginx