Skip to content
/ gala Public

An open tool for collaboratively authoring, teaching, and learning with learning modules.

License

Notifications You must be signed in to change notification settings

galahq/gala

Folders and files

NameName
Last commit message
Last commit date
Feb 26, 2025
Mar 10, 2025
Mar 18, 2019
Feb 21, 2017
Mar 10, 2025
Jan 16, 2025
Aug 4, 2021
Dec 21, 2018
Mar 10, 2025
May 11, 2016
Nov 12, 2018
May 21, 2020
Jan 16, 2025
Mar 14, 2019
Jan 16, 2025
Jan 16, 2025
Jan 22, 2025
Jan 16, 2025
May 25, 2017
Dec 10, 2018
Dec 11, 2018
Apr 12, 2017
Jan 16, 2025
Jan 4, 2018
Mar 14, 2020
Sep 7, 2017
May 9, 2018
Jan 22, 2025
Mar 15, 2019
Oct 20, 2016
Jan 16, 2025
Jan 17, 2020
Jan 16, 2025
Feb 13, 2017
Jan 16, 2025
Feb 11, 2025
Feb 11, 2025
Feb 11, 2025
Feb 5, 2018
Sep 30, 2016
Mar 5, 2019
Dec 23, 2024
Jan 22, 2025
May 11, 2016
Jan 16, 2025
Mar 22, 2017
Feb 27, 2018
Jan 22, 2025
Jan 22, 2025
Jan 16, 2025
Mar 13, 2024
Mar 15, 2019
Mar 13, 2024

Repository files navigation

Gala

Build Status license Greenkeeper badge.

Gala is a platform for authoring, teaching, and sharing media-rich teaching cases and modules.

Gala is free to use at www.learngala.com and we encourage you to join the community there. A guide getting started with Gala as a user and more information about features can be found at docs.learngala.com/docs.

Dependencies

  • Docker
  • Ruby 3.2.6
  • Node 12.5.0

Using rbenv

  1. rbenv install 3.2.6
  2. rbenv shell 3.2.6
  3. gem install bundler -v 2.4.19
  4. bundle install --jobs 4

Using nodenv

  1. nodenv install 12.5.0
  2. nodenv shell 12.5.0
  3. npm install yarn
  4. yarn

Using direnv

  1. direnv allow to install the direnv hooks (sources env variables from .envrc)

Getting started

  • docker compose up to start the app
  • docker compose down to stop the app
  • bundle exec rake test:unit to run the Ruby tests
  • yarn test to run the Javascript tests

Updating dependencies

When you update dependencies be sure to run these commands locally first

  • bundle install --jobs 4 to install Ruby dependencies
  • yarn to install Javascript dependencies

Then you can run docker compose up --build to rebuild the containers with the new dependencies.

If you update Javascript dependencies, you'll need to additionally run docker compose run web yarn to install them in the web container since the node_modules directory is mounted as an anonymous volume (for performance).

Other useful commands

  • docker system prune -a --volumes -f to delete all containers, images, and volumes for a fresh start
  • docker compose up --build to rebuild the containers
  • docker compose run web yarn to install new JS dependencies in the web container
  • docker compose run web bash to get a shell inside the web container
  • docker volume rm gala_db_data to delete the database volume

Cron jobs via Heroku Scheduler

The full-text case search is powered by a Postgres materialized view so it’s really fast. The consequence is that changes don’t appear in search results until the view is refreshed. Set a cron job or use Heroku Scheduler or the equivalent to run bundle exec rake indices:refresh as frequently as makes sense.

To send a weekly report of usage data, run bundle exec rake emails:send_weekly_report once per week.

Gala external infra

Service Purpose
Postgres 16 Database
Redis OSS 7 Caching and background jobs
Sidekiq Background jobs
AWS S3 File storage
Heroku Production and staging environments
Docker Local development environment only
Sentry Error monitoring
Semaphore CI Continuous integration
Github Open source code management