ryer.io

Solving Koha Setup Challenges for Sterling Musical Instrument Lending Library

TL;DR

  • Configuring Koha as a deployable package using Docker and Debian.
  • Need to automate development and deployment processes for cost efficiency.
  • Ensuring cross-platform developer setup by addressing macOS specific issues.
  • Overcoming script context challenges with Docker and automating SSL deployment.
  • Understanding Git-related build constraints to streamline the development process.

Today, I revisited the integration setup of Koha for the Sterling Musical Instrument Lending Library, after a nudge from James Reed, their main IT guy. The challenge lay in configuring Koha, an integrated library system, as a Debian package that can be deployed and developed with ease. It’s a complex mix—Koha uses Perl and Vue.js and involves several components and libraries like Elasticsearch hosted on Docker.

Here’s where the focus went:

  1. Automating Development & Deployment:

    • The goal was to automate pulling updates into a development environment, making hot reloadable edits, and deploying with minimal commands. Efforts included setting up infrastructure using Terraform and AWS resources for automated deployments and teardown to manage costs efficiently.
  2. Cross-Platform Developer Setup:

    • MacOS-specific setup for developers required abstraction so volunteer developers can contribute using Docker, ensuring everything aligns with a centralized config.yaml for consistent environment configurations.
  3. Docker Integration:

    • A significant bottleneck was passing the script context into Docker container instances, which wasn’t working consistently—this required deeper investigation to ensure smooth deployments.
  4. SSL Certificate Automation:

    • Implementing Let’s Encrypt for SSL certificates is defined but not tested. This needs rigorous testing, especially in staging environments.
  5. Git and Build Process Understanding:

    • The build depends on a clean Git repository, but interactions with Git’s submodules complicate the process by generating unwanted assets. I aim to comprehend and optimize this part of the build process to avoid potential errors.

Each of these areas needs careful attention as they are critical to the smooth operation of deploying this library system. Solving these challenges will enable a streamlined setup benefiting both development and production environments.