Management system for Birds of a Feather/BoF sessions at a conference
- ruby
- ruby-rake
- ruby-bundler
- sqlite3
- imagemagick
- python3 with pip
- brother_ql python library
To get up and running:
-
Copy
bof-o-matic.yaml.exampletobof-o-matic.yamland do any required config changes. -
Run
bundle installto install all ruby dependencies -
Run
pip install brother_ql_nextto install the python library for the printers -
Download a current copy of Bootstrap into
public/assets/css/bootstrap.bundle.min.csspublic/assets/js/bootstrap.bunfle.min.js
-
Download a current copy of jQuery into
public/assets/js/jquery.min.js
-
Set up the DB schema:
rake db:migrate -
Create the initial scheduler user:
rake db:add\_sysop\_user -
Run the app with
run-app.sh! The initial login is:- username:
sysop - password:
correct horse bof changeme
- username:
You'll probably want to run the following as well, which are daemons by default but can be run with -f to foreground them:
bom-reminderd: Send reminders X minutes before the session starts.bom-scheduled: Send "ready for scheduling" notices to admins if sessions aren't self-scheduled in time.bom-maild: Send queued emails via SMTP.bom-smsd: Send queued text messages via Twilio.
- On your docker host, get the product ID for your brother label printer. In the following example, the
productIDis 2043.
> $ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 006: ID 04f9:2043 Brother Industries, Ltd QL-710W Label Printer
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
- Edit
90-brother-printer.rulesand changechangemeto the productID for your printer. - Copy
90-brother-printer.rulesto/etc/udev/rules.d, then runsudo udevadm control --reload-rules. You may also need to power-cycle the printer. This guarantees that the bof-o-matic docker container will have the same device handle to connect to every time. - Copy
bof-o-matic.yaml.exampletobof-o-matic.yamland do any required config changes. - Build the image:
docker build . --file=Dockerfile --tag=bof-o-matic:latest - Start the containers:
docker compose up -d
Note: This container initializes the DB directly inside itself during build; if you rebuild the container, you will lose your DB unless you take steps to preserve it.