Autor
Gonzalo Cuesta Marín
Tutores
Carlos López Nozal
Mario Juez Gil
Colaboradores del CENIEH
Javier Valladolid Aguinaga
Joseba Rios Garaizar
En el presente TFG se propone una infraestructura software capaz de gestionar los conjuntos de datos del CENIEH para posteriormente ser integrados en la plataforma ARIADNEplus. La aplicación escogida para llevar a cabo este cometido ha sido Omeka Classic. Sobre esta se han realizado una serie de desarrollos propios (plugins) con el fin de adaptar dicha aplicación a las necesidades del proyecto.
Existen tres posibilidades distintas para desplegar la aplicación en tu servidor: Manual, Docker o Kubernetes.
Si escoges está opción deberás estar seguro de que tu servidor cumple con todos y cada uno de los siguientes requisitos:
Sistema Operativo Linux
Apache HTTP Server (con el módulo rewrite activado)
MySQL / MariaDB v5.0 o superior.
PHP v5.4 o superior con las sisguientes extensiones instaladas:
ImageMagick (Tratamiento de imágenes)
El siguiente consistirá en configurar tu servidor. Para ello, hay que seguir una serie de pasos:
Crear la base de datos MySQL desde un usuario con permisos suficientes como para poder realizar operaciones sobre ella.
Durante el proceso, conviene que apuntes por separado los siguientes datos:
La base de datos ha de estar codificada en utf8
. Actualmente la opción más recomendable para ello es mediante el siguiente comando:
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Descargar la última version de Omeka, desde su web oficial o desde su repositorio en GitHub.
Descomprimir el fichero .zip
recién descargado sobre un directorio donde podamos trabajar.
Buscar el fichero db.ini
y sustituir los valores 'XXXXX' por los datos de la base de datos (anotados en el paso 1).
prefix
o port
.Descargar el contenido de este repositorio del proyecto.
Descomprimir las carpetas /omeka/plugins
y /omeka/themes
del fichero .zip
recién descargado.
Desde el directorio de trabajo, reemplazar las carpetas originales plugins y themes por las recién descomprimidas.
Movemos todo el contenido a la carpeta al servidor.
Dar permisos de escritura sobre la carpeta files
.
Desde este instante, la aplicación será accesible desde el navegador. El último paso consistiría en completar la instalación guiada desde el navegador, disponible en el directorio /install/
de la aplicación (e.g. http://localhost/install).
Ver Manual de usuario para información más detallada.
He optado por desarrollar un entorno con tecnología Docker para facilitar el despliegue de la aplicación. En este caso, los requisitos son:
Para proceder al despliegue debes descargar, de este repositorio, los siguientes ficheros:
IMPORTANTE: Mantén los subdirectorios intactos.
Opcionalmente modificar los ficheros /ConfigFiles/php.ini.modificar
y /ConfigFiles/config.ini.modificar
a tu gusto.
A continuación debes compilar la imagen. Para ello, desde el directorio raiz (donde tengas el fichero Dockerfile), ejecuta el siguiente comando:
docker build -t nombre_imagen:tag .
Recuerda muy bien el nombre de la imagen y el tag que pongas ya que será necesario para el siguiente paso, que consiste en configurar el docker-compose.yml
.
En él, solo tenemos que cambiar la etiqueta image
del servicio omeka_app
:
...
omeka_app:
image: nombre_imagen:tag
Si hemos publicado nuestra imagen en DockerHub, deberemos añadir además nuestro nombre de usuario (e.g. username/nombre_de_mi_imagen:tag).
Por último, debes crear los secrets correspondientes a las contraseñas de la base de datos:
echo 'contraseña_usuario_db' | docker secret create omeka_db_password -
echo 'contraseña_root_db' | docker secret create omeka_db_root_password -
cp configFiles/db.ini.modificar configFiles/db.ini
cp configFiles/mail.ini.modificar configFiles/db.ini
IMPORTANTE: debes modificar los ficheros recién creados (db.ini
y mail.ini
con los datos relacionados con la base de datos y el protocolo IMAP. Ten en cuenta que la contraseña que introduzcas en el fichero tiene que coincidir con la del secret omeka_db_password
.
Por último, ejecuta el siguiente comando desde el directorio raiz (donde se encuentra docker-compose.yml
).
docker stack deploy -c docker-compose.yml nombre_del_entorno
Desde este instante la aplicación debería ser accesible desde el navegador (puerto 80). El último paso consistiría en completar la instalación guiada desde el navegador, disponible en el directorio /install/
de la aplicación (e.g. http://localhost/install).
Requisitos:
El primer paso para desplegar la aplicación mediante Kubernetes es montar nuestra imagen Docker (Sigue los primeros pasos del punto anterior, hasta la compilación de la imagen).
El siguiente paso consiste en desplegar la aplicación. Para esta tarea utilizo el gestor de objetos Kustomize. Por ello, deberás contar con dicha herramienta. Además debes estar en posesión de los siguientes ficheros alojados en este repositorio:
/kustomization.yaml
/patch.yaml
/gke-mysql/*
/gke-omeka/*
/configFiles/*.gke
Se deben definir en el servidor los secrets y configMaps utilizados por los ficheros de configuración .yaml
.
Para ello se ejecutan los siguientes comandos:
omeka-db
: secretos relacionados con la base de datos. kubectl create secret generic omeka-db \
--from-literal=user-password=<contraseña_db_usuario> \
--from-literal=root-password=<contraseña_db_root> \
--from-literal=username=<nombre_usuario>\
--from-literal=database=<nombre_bd>
omeka-snmp
: secretos relacionados con el protocolo SNMP. kubectl create secret generic omeka-snmp \
--from-literal=host=<host_snmp> \
--from-literal=username=<correo_electronico> \
--from-literal=password=<contraseña_correo> \
--from-literal=port=<puerto_snmp> \
--from-literal=ssl=<protocolo_seguridad_snmp>
omeka-imap
: secretos relacionados con el protocolo IMAP. kubectl create secret generic omeka-imap \
--from-literal=host=<host_imap> \
--from-literal=username=<correo_electronico> \
--from-literal=password=<contraseña_correo> \
--from-literal=port=<puerto_imap> \
--from-literal=ssl=<protocolo_seguridad_imap>
db-config
: mapa de configuración para la base de datos. kubectl create configmap db-config \
--from-file=./configFiles/db.ini.gke
snmp-config
: mapa de configuración para el protocolo SNMP. kubectl create configmap snmp-config \
--from-file=./configFiles/config.ini.gke
imap-config
: mapa de configuración para el protocolo IMAP. kubectl create configmap imap-config \
--from-file=./configFiles/mail.ini.gke
Por último, debemos indicar el identificador de nuestra imagen Docker en el fichero /gke-omeka/deployment.yaml
.
...
spec:
containers:
- image: nombre_imagen:tag
...
A continuación, desde el directorio raíz, ejecutar el siguiente comando:
kustomize build . | kubectl apply -f -
Desde este instante la aplicación debería ser accesible desde el navegador (puerto 80). El último paso consistiría en completar la instalación guiada desde el navegador, disponible en el directorio /install/
de la aplicación (e.g. http://localhost/install).
Nombre | Descripción |
---|---|
ARIADNEplus Tracking | Lleva un seguimiento del proceso de importación a ARIADNEplus |
CENIEHExport | Permite exportar los ítems en un formato XML compatible con ARIADNEplus |
Collection Files | Permite asociar ficheros a colecciones |
Tags Manager | Gestiona los tags existentes en la plataforma |
Admin Menu Design | Cambia el diseño del menú y añade secciones a este |
Auto Dublin Core | Actualiza el campo "Is Part Of" y "Source" del modelo de metadatos "Dublin Core" de forma automática |
Nombre | Descripción de los cambios |
---|---|
Geolocation | Nuevo formato de localización (Bounding Box), Sincronización con los metadatos. |
OAI-PMH Repository | Añadir una hoja de estilo (Stylesheet) a los documentos XML generados |
OAI-PMH Harvester | Convertir la codificación de los metadatos importados a UTF-8 |
CSV Import Plus | PopUps de ayuda y actualización automática |
Nombre | Descripción |
---|---|
BulkMetadataEditor | Permite editar multitud de ítems a la vez |
CSVExport | Exporta ítems en formato CSV |
DublinCoreExtended | Añade el esquema de metadatos Dublin Core Extended a la plataforma |
GettySuggest | Sugiere términos del vocabulario Getty AAT a la hora de rellenar metadatos |
Hide Elements | Permite ocultar campos del esquema de metadatos |
HistoryLog | Genera registros en cada creación/modificación/eliminación de ítems |
OaiPmhRepository | Permite que otros repositorios puedan importar metadatos existentes en tu repositorio a través del protocolo OAI-PMH |
OaiPmhHarvester | Permite importar metadatos de otros repositorios a través del protocolo OAI-PMH |
SimplePages | Permite añadir páginas al repositorio de una forma sencilla. |
SimpleVocab | Añade vocabularios al gestor. |
SuperRss | Permite compartir publicaciones en redes sociales |
Nombre | Descripción |
---|---|
Curatescape | Diseño minimalista y elegante |
Todo el software desarrollado está bajo la licencia GPLv3