Ensemble
...
Roadmap
...
License
All source code in this repository is released under the O'Saasy license.
- โ Commercial use is permitted (with restrictions)
- ๐ซ Cannot offer as competing SaaS/hosted service
- ๐ Attribution and copyright notice must be included
โ ๏ธ No liability and no warranty
Reindex all Performances
rails runner 'Member.clear_index!'
rails runner 'Performance.clear_index!'
rails runner 'Performance.reindex!'
rails runner 'Member.reindex!'
Or in a Rake task
lib/tasks/search.rake
namespace :search do
desc "Reindex all searchable models"
task reindex: :environment do
Article.reindex!
# Add other models as needed
puts "Reindexing complete!"
end
end
How to deploy
kamal deploy
Deploy accessory only
kamal accessory remove meilisearch
kamal accessory boot meilisearch
kamal accessory reboot meilisearch
Reindex after deployment
kamal app exec 'bin/rails runner 'Performance.reindex!'
Check logs
kamal app logs
kamal accessory logs meilisearch
And optional:
kamal reset_demo
kamal logs
kamal consoleTechnical notes
SVG Icons: https://heroicons.com
Start app with bin/dev
Runn local ci: bin/ci
Run tests bin/rails test
Precompile rails assets: rails assets:clean assets:precompile
Build Tailwind bin/rails tailwindcss:build
Clean all assets rails assets:clobber
See test emails (email integration is done via resend.com):
- in folder
tmp/mail/ - see previews in the browser:
http://localhost:3000/rails/mailers
Include into precommit hook:
rubocop
rails db:test:prepare test test:system
Reset demo user rails demo_user:reset
Edit rails credentials VISUAL="code --wait" bin/rails credentials:edit
Update
Gems
bundle outdated
bundle update --all
Bundler
bundle update --bundler
Daisyui
curl -sLo app/assets/tailwind/daisyui.js https://github.com/saadeghi/daisyui/releases/latest/download/daisyui.js
Kamal
gem update kamal
kamal proxy upgrade
Clean up unused images and containers
kamal prune
JS packages
Update:
pin "instantsearch.js", to: "https://cdn.jsdelivr.net/npm/instantsearch.js@4.87.1/dist/instantsearch.production.min.js"
pin "algoliasearch", to: "https://cdn.jsdelivr.net/npm/algoliasearch@5.48.1/dist/algoliasearch-lite.umd.js"
Show list of rake tasks
bin/rails -T
Backup and restore DB
Backup Process: From your host machine
docker cp your-rails7-container:/storage/production.sqlite3 ./backup/production.sqlite3
docker cp 290055864fd3:/storage/production-backup.sqlite3 ./production.sqlite3Restore Process: To your new Rails 8 container
docker cp --chown rails:rails ./production.sqlite3 your-rails8-container:/rails/storage/production.sqlite3
docker cp ./production.sqlite3 290055864fd3:/rails/storage/production.sqlite3And backup locally
scp ./production.sqlite3 root@162.55.185.37:/root/production.sqlite3Inspect container via bash
docker exec -it 290055864fd3 bashKAMAL deployment setup
run kamal init
if not using root account, in ./delpoy.yaml add
ssh:
user: kamal
keys: [ "~/.ssh/id_ed25519" ]Create private docker repository e.h. on DockerHub
add access token (Read, Write, Delete) and store it in ./kamal/secrets in variable KAMAL_REGISTRY_PASSWORD or set as en environment variable export KAMAL_REGISTRY_PASSWORD=password
Create e.f. Hetzner machine with ssh
Add identity to ssh
Confirm it via ssh-add -l
create RAILS_MASTER_KEY
VISUAL="code --wait" bin/rails credentials:edit
export key from console from previous commant to env variable export RAILS_MASTER_KEY=<key from console>
VISUAL="code --wait" bin/rails credentials:edit
export key from console from previous command to env variable or copy it from config/master.key
export RAILS_MASTER_KEY=<key from console>
docker login
run kamal setup
Rails dev-container configuration
https://dev.to/konyu/how-to-use-docker-containers-for-ruby-on-rails-development-in-visual-studio-code-23np