Files
mozo-backend/README.md
T

2.9 KiB

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

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:

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)
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'"