e04400d1dfec390977ef7ba967a5c2131616e884
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:
- 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
- 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'"
Description
Languages
Ruby
52.7%
Sass
16.6%
Slim
13.8%
CoffeeScript
7.7%
Gherkin
3.9%
Other
5.2%