Mozo server backend README ===================================== Start the server for development: ---------------------- ### Start couchdb Since in the Fedora Asahi on Macbook M1, couchdb is not an available package, it is build locally and started there: ``` cd ~/projects/couchdb/couchdb ./dev/run --admin=admin:admin ``` Did not work the last time. The docker version did. ### Start rails Note that the couchdb admin password can be changed for better security: ``` COUCHDB_ADMIN_PASSWORD=admin rails s ``` ### Access the server The server should now be accessible using: https://localhost:3002/ TODO: ------------------ ### Supplier app * model validations * ~foundation css~ * entry funnel handling ### User app * Supplier close as event that can be handled by users Application architecture ----------------------------------------------- Developing using SSL ------------------------- When reading this, hopefully there will be a nice standardized solution, better than found at the time of writing this (2025-02-10) A nice solution seems to be using: * https://github.com/puma/puma-dev The fast and dirty way, without trusting certificates will be: https://spaquet.medium.com/setting-up-ssl-on-localhost-for-rails-development-with-puma-211574dbfb87 Also take a look at: https://jfbcodes.medium.com/using-rails-with-ssl-on-localhost-52d60f14a382 Building the product ------------------------------------------ 1. Set the current routes to mozo-supplier client code (TODO: make way better) ```ruby File.write "#{ENV["MOZO_PATH_SUPPLIER"]}/app/global-functionality/js-routes.js", JsRoutes.generate.sub(/this\);\n$/, 'window);') ``` Server side monit config -------------------------------------------------- Could be in `/etc/monit/monitrc`: ``` # Monit configuration for Puma # Service name: puma_mozo.bar_production # check process puma_mozo.bar_production with pidfile "/var/www/mozo.bar/shared/tmp/pids/puma.pid" group mozo start program = "/usr/bin/sudo -u root /bin/bash -c 'cd /var/www/mozo.bar/current && /usr/local/rvm/bin/rvm default do bundle exec puma -C /var/www/mozo.bar/shared/puma.rb --daemon'" stop program = "/usr/bin/sudo -u root /bin/bash -c 'cd /var/www/mozo.bar/current && /usr/local/rvm/bin/rvm default do bundle exec pumactl -S /var/www/mozo.bar/shared/tmp/pids/puma.state stop'" check process DRBcounter with pidfile /var/www/mozo.bar/shared/tmp/pids/DRBcounter.pid group mozo start program = "/bin/bash --login -c '/var/www/mozo.bar/releases/20150123150713/bin/drb_counter.rb start -- production'" stop program = "/bin/bash --login -c '/var/www/mozo.bar/releases/20150123150713/bin/drb_counter.rb stop'" check process faye with pidfile /var/www/mozo.bar/shared/tmp/pids/faye.pid group mozo start program = "/bin/bash --login -c 'thin start -d -R /var/www/mozo.bar/releases/20150123150713/faye/config.ru -p 9296 --pid /var/www/mozo.bar/shared/tmp/pids/faye.pid'" stop program = "/bin/bash -c 'kill -15 $(lsof -i:9296 -t); true'" ```