Rails app for form collection → ESP32 pin activation.
Device
: 12-char ID, name, locationForm
: Customizable fields, styling, target emailSubmission
: User data, trigger status, delivery metadata
GET /api/v1/credits/check
- Query available triggersPOST /api/v1/credits/claim
- Execute pin trigger
Form endpoint: /form/:form_id/:device_id
- Ruby 3.4+
- Rails 8.0+
- Dependencies: Redcarpet, ActiveStorage, SolidQueue
git clone <repo>
bundle install
rails db:migrate
rails server
Set vars in .env
:
SMTP_SERVER=smtp.example.com
SMTP_PORT=587
SMTP_DOMAIN=example.com
[email protected]
SMTP_PASSWORD=password
SMTP_AUTH=plain
SMTP_STARTTLS=true
[email protected]
bin/jobs start # Start worker
bin/jobs stats # Monitor stats
JOB_CONCURRENCY=n # Set worker threads (default: 1)
docker build -t esp32-form-app .
docker run -p 3000:3000 -e RAILS_MASTER_KEY=key -e SMTP_SERVER=smtp.example.com esp32-form-app
# Alternative
docker-compose up -d