Note
Questa versione dockerizzata ha scopo dimostrativo: non è una repository ufficiale. Vi consiglio di leggere il CHANGELOG dove ci sono dei passaggi delicati da implementare o sostituire.
Demo live: https://www.piersoftckan.biz/
This is a set of configuration and setup files to run a CKAN site.
The CKAN images used are from the official CKAN ckan-docker repo
The non-CKAN images are as follows:
- DataPusher: CKAN's pre-configured DataPusher image.
- PostgreSQL: Official PostgreSQL image. Database files are stored in a named volume.
- Solr: CKAN's pre-configured Solr image. Index data is stored in a named volume.
- Redis: standard Redis image
- NGINX: latest stable nginx image that includes SSL and Non-SSL endpoints
The site is configured using environment variables that you can set in the .env file.
Install Docker by following the following instructions: Install Docker Engine on Ubuntu
To verify a successful Docker installation, run docker run hello-world and docker version. These commands should output
versions for client and server.
Note
docker compose vs docker-compose
All Docker Compose commands in this README will use the V2 version of Compose ie: docker compose. The older version (V1)
used the docker-compose command. Please see Docker Compose for
more information.
-
Clona il repo
git clone https://github.com/piersoft/ckan-docker.git -
Rinomina
.env.examplein.env. -
Modifica
.envsulla base delle tue necessità. -
Sostituisci tutte le stringhe del tipo
www.piersoftckan.biznel file.envcon, ad esempio,https://127.0.0.1:8443o con IP privato e poi in produzione con il FQDN. -
Change in
.envvalues forCKAN_SYSADMIN_NAMEandCKAN_SYSADMIN_PASSWORD. Default values are:CKAN_SYSADMIN_NAME = ckan_admin CKAN_SYSADMIN_PASSWORD = test1234 -
To build the images:
docker compose build -
To start the containers:
docker compose up -d -
if CKAN failed (
unhealty) launchdocker start ckanand after 2-3 minutes launchdocker start nginx. -
IMPORTANT AFTER CKAN IS RUNNING HEALTY (ONLY FIRST TIME):
# Go to into docker docker exec -it ckan bash cd /docker-entrypoint.d sh 03_ckan_groups.end exit docker restart ckan
This will start up the containers in the current window. By default the containers will log direct to this window with each container using a different colour.
At the end of the container start sequence there should be 6 containers running
After this step, CKAN should be running at CKAN_SITE_URL (defined in .env file).
Note
Please note that when accessing CKAN directly (via a browser) ie: not going through NGINX you will need to make sure you have "ckan" set up
to be an alias to localhost in the local hosts file. Either that or you will need to change the .env entry for CKAN_SITE_URL
Le varie patch che in continuazione si stanno applicando, scaturiscono dall'analisi degli harvesting dei cataloghi nazionali, regionali e comunali, presenti su dati.gov.it. Vi consiglio di leggere il CHANGELOG dove ci sono dei passaggi delicati da implementare o sostituire.
Ogni harvesting ha le sue peculiarietà e quindi necessita di avere patch nei file processors.py e presenti nella dir patches e profiles.py presente nell'estensione ckanext-dcatapit customizzata che trovate inserita in questa repo, cosi come quella ckanext-dcat abilitata e patchata per i nuovi HVD (High Value Dataset). Motivo per cui in questi files ci sono delle sostituzioni anche della radice delle url (www.piersoftckan.biz sostituito ad esempio con dati.toscana.it se holder_identifier è r_toscan).
Questo è dovuto al fatto che i cataloghi non sono tutti harvestabili nello stesso modo. Ad esempio dati.trentino.it viene harvestato correttamente tramite il catalog.rdf per cui tutti i metadati (se presenti e corretti) vengono rispecchiati nel catalogo che importa. Mentre i cataloghi che vengono harvestati tramite API (Toscana, Emilia, Marche, Basilicata) o non hanno proprio i metadati perchè hanno una versione molto datata di ckan (Marche e Basilicata) oppure vanno inserite delle configurazioni nelle sezioni di harvesting per imporre alcuni campi extra altrimenti non presenti (home page del catalog ect).
Questo perchè il catalogo finale presente su www.piersoftckan.biz viene poi esportato in Linked Open Data e l'associazione corretta dei dataset/cataloghi/risorse è fondamentale.
Perchè non si importa anche la Toscana o Emilia-Romagna con il catalog.rdf? perchè il loro portale da errore. Se digitate dati.emilia-romagna.it/catalog.ttl(o rdf) e poi magari a campione catalog.rdf?page=x vedrete che da errore. (aggiornamento al 15.11.2025 ora Toscana , Marche e Emilia-Romagna funzionano correttamente in RDF per cui molte patch non si applicano più ai loro cataloghi)
Se fossi il gestore del catalogo andrei a vedere i log. E' molto complicato "neutralizzare" gli errori nei cataloghi federati perchè non si è il proprietario della banca dati. Toscana importa ad esempio Firenze ma anche il Consorsio Lamma. Ci sono molti errori nei titoli, identificativi, tags ect e quindi le motivazioni per cui il catalog.ttl non viene generato possono essere molteplici. E' per questo che poi a sua volta, l'errore si propaga nel catalogo "centrale", in questo caso www.piersoftckan.biz. Ecco il motivo delle patch sui files su citati profiles, processors di dcat e profiles di dcatapit. Si possono vedere quelle patch e magari replicarle nel catalogo locale.
Consiglio di osservare anche il file rdf.py sempre nella cartella patches.
Il plugin originale DCATAP_IT è disponibile nella repo di github di Geosolutions, ed è stato adeguato alla versione 2.10.3 di CKAN
