Files
fizzy/saas
Mike Dalessio 8f73e1e1be Add console1984 and audits1984
To keep as much of this as we can in the `fizzy-saas` gem, this PR
opts to store console/audits models in a separate database, and so:

- the gem contains the migrations and the database config
- the app contains a separate schema file distinctly for SaaS concerns
  - Rails' current behavior prevents us from easily keeping this file in the gem

Also note that the stock `audits1984` schema is updated to reference
the auditor via a UUID foreign key.

Finally, in order for the database schema file to be located in the
gem directory (and not the application directory), it's necessary to
monkeypatch `AR::DatabaseTasks.schema_dump_path` to support absolute
paths. This functionality has been proposed upstream in
https://github.com/rails/rails/pull/56290 but is awaiting a decision
from the core team.

ref: https://app.fizzy.do/5986089/cards/2469
ref: #17
2025-12-04 11:43:48 -05:00
..
2025-12-04 11:43:48 -05:00
2025-11-23 18:22:02 +01:00
2025-12-04 11:43:48 -05:00
2025-12-04 11:43:48 -05:00
2025-12-04 11:43:48 -05:00
2025-11-28 15:34:56 +01:00
2025-11-23 06:11:30 +01:00
2025-11-23 06:32:52 +01:00
2025-12-02 13:34:20 -08:00
2025-12-02 13:33:27 -08:00

This is a Rails engine that 37signals bundles with Fizzy to offer the hosted version at https://fizzy.do.

Development

To make Fizzy run in SaaS mode, run this in the terminal:

bin/rails saas:enable

To go back to open source mode:

bin/rails saas:disable

Then you can work do Fizzy development as usual.

How to update Fizzy

After making changes to this gem, you need to update Fizzy to pick up the changes:

BUNDLE_GEMFILE=Gemfile.saas bundle update --conservative fizzy-saas

Environments

Fizzy is deployed with Kamal. You'll need to have the 1Password CLI set up in order to access the secrets that are used when deploying. Provided you have that, it should be as simple as bin/kamal deploy to the correct environment.

Handbook

See the Fizzy handbook for runbooks and more.

Production

This environment uses a FlashBlade bucket for blob storage.

Beta

Beta is primarily intended for testing product features. It uses the same production database and Active Storage configuration.

Beta tenant is:

Staging

Staging is primarily intended for testing infrastructure changes. It uses production-like but separate database and Active Storage configurations.

License

fizzy-saas is released under the O'Saasy License.