81 lines
2.9 KiB
Markdown
81 lines
2.9 KiB
Markdown
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'"
|
|
```
|