Use direnv to add bin to your path
PATH_add bin
Bring up the environment
# Build the base image
docker compose build
# Install the gems
nabu_run bundle
# Bring up all the containers
docker compose up
This brings up the following containers
You can then easily run all the standard commands by prefixing with nabu
nabu_run bundle install
nabu_run bundle exec rake db:create
nabu_run bundle exec rake db:schema:load
nabu_test bundle exec rake db:schema:load
nabu_run bundle exec guard # Test runner
The application is designed to be deployed with containers into an AWS account using CDK
To bootstrap a new account
# Setup an AWS account and credentials as per your preferred method and set the environment to use it
AWS_PROFILE=nabu
REGION=ap-southeast-2
ACCOUNT=$(aws sts get-caller-identity | jq -r .Account)
cdk bootstrap aws://$ACCOUNT/$REGION
Use CDK to deploy new code via docker as well as any infrastructure changes
cd cdk
cdk --profile nabu-stage diff nabu-appstack-stage
cdk --profile nabu-stage deploy nabu-appstack-stage
If necessary:
bin/aws/ecs_rake deploy:migrate
bin/aws/ecs_rake searchkick:reindex
bin/aws/ecs_shell app -c 'mysqldump -u nabu -h "$NABU_DATABASE_HOSTNAME" --password "$NABU_DATABASE_PASSWORD" nabu | bzip2 | base64 > /tmp/nabu.sql.bz2'
nabu_run bundle exec rake db:drop db:create
bzip2 -dc ../nabu.sql.bz2 | mysql -h 127.0.0.1 -u root nabu_devel
nabu_run bin/rails db:environment:set RAILS_ENV=development
nabu_run bin/rake db:migrate
nabu_run bin/rake searchkick:reindex:all
import archive files
RAILS_ENV=production bundle exec rake archive:update_files
check if all files that have been uploaded are ok:
cd /srv/www/nabu/current
RAILS_ENV=production bundle exec rake --trace archive:update_files > log/update_files.log
check if all *-CAT-PDSC_ADMIN.xml files exist and create if necessary:
cd /srv/www/nabu/current
RAILS_ENV=production bundle exec rake --trace archive:admin_files > log/admin_files.log
delete a collection with all its items:
cd /srv/www/nabu/current
RAILS_ENV=production bundle exec rake archive:delete_collection[PA1]
# New Ethnologue data
We use the following source locations
* https://www.ethnologue.com/codes/
* https://iso639-3.sil.org/code_tables/download_tables
Run the following rake task to import everything
``` bash
bundle exec rake import:ethnologue
This will
OLAC available at:
The feeds that OLAC harvests:
Individual item:
RIF-CS available at:
testing:
gem install localtunnel
rbenv rehash
localtunnel 3000
use resulting server on an OAI repository explorer:
http://repox.gulbenkian.pt/repox/jsp/testOAI-PMH.jsp (test protocol)
URLs to test:
The feed that ANDS harvests:
Test at ANDS:
Feed for a single collection:
aws secretsmanager list-secrets
aws secretsmanager put-secret-value --secret-id ARN --secret-string "{\"site_key\":\"***\", \"secret_key\":\"***\"}"
We should regularly make sure we are running the latest versions of third-party packages
# Ruby gems
nabu_run bundle outdated
nabu_run bundle update
# npm
nabu_run bin/importmap audit
nabu_run bin/importmap outdated
# Sentry
# https://docs.sentry.io/platforms/javascript/install/cdn/
vi app/views/layouts/application.html.haml