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.
- Docker
- Ruby 3.2.6
- Node 12.5.0
rbenv install 3.2.6rbenv shell 3.2.6gem install bundler -v 2.4.19bundle install --jobs 4
nodenv install 12.5.0nodenv shell 12.5.0npm install yarnyarn
direnv allowto install the direnv hooks (sources env variables from .envrc)
docker compose upto start the appdocker compose downto stop the appbundle exec rake test:unitto run the Ruby testsyarn testto run the Javascript tests
When you update dependencies be sure to run these commands locally first
bundle install --jobs 4to install Ruby dependenciesyarnto 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).
docker system prune -a --volumes -fto delete all containers, images, and volumes for a fresh startdocker compose up --buildto rebuild the containersdocker compose run web yarnto install new JS dependencies in the web containerdocker compose run web bashto get a shell inside the web containerdocker volume rm gala_db_datato delete the database volume
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.
| 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 |