44 Commits

Author SHA1 Message Date
Kevin McConnell 108337e823 Cache public pages for 5 mins, not 1 year
Given these may be cached in CDNs, and they aren't versioned, a shorter
expiration time makes it practical to change them.
2026-01-28 14:30:43 +00:00
Dmytro Shteflyuk 0417639049 Restore log level configurability in production environment 2026-01-07 11:24:22 -05:00
Kevin McConnell 50691ae385 Merge pull request #2205 from basecamp/base-url-env
Add `BASE_URL` environment variable
2025-12-19 14:58:08 +00:00
Mike Dalessio 28250b340c Move the :fatal log setting into the SaaS config
This should only be set if the app is using the
rails-structured-logging gem, which means it should only be set in the
SAAS config. I think this is just something we missed in one of the
decoupling exercises we did.
2025-12-19 09:09:40 -05:00
Kevin McConnell 407f2a3a6a Add BASE_URL environment variable
When running a Docker deployment, we need a way to set the app's base
URL. Otherwise links in emails, or generated in jobs etc., can not be
correctly constructed.
2025-12-19 12:21:37 +00:00
nu-wa 472dbeee8c SMTP: support SMTPS on port 465 (#2132)
* Add more configuration options for the SMTP connection

* Add SMTP_TLS option for implicit TLS connections

For SMTPS servers (typically port 465), set SMTP_TLS=true.
Port auto-defaults to 465 when TLS is enabled, 587 otherwise.
STARTTLS is used by default and automatically disabled when TLS is on.

Fixes boolean conversion bug in original PR (string "false" is truthy)
and removes insecure default for certificate verification.

---------

Co-authored-by: Jeremy Daer <jeremy@37signals.com>
2025-12-13 10:57:08 -08:00
Kevin McConnell 154a3d79ee Add DSIABLE_SSL env option
`assume_ssl` and `force_ssl` are often used together:

- When running behind a terminating proxy (including Thruster) you'll
  want both.
- When running without SSL (like on localhost) you'll want neither.

To simplify setup for those cases, we add the `DISABLE_SSL` option. When
set to `true` all SSL-related behaviour is turned off. When left as the
default, it's on.

We can still use `ASSUME_SSL` and `FORCE_SSL` to set those separately
if required.
2025-12-11 16:11:18 +00:00
Kevin McConnell 2a3fda02f4 Merge pull request #1939 from hosmelq/active-storage-env-config
Make Active Storage service configurable
2025-12-10 14:36:47 +00:00
Kevin McConnell a5396bbb1a Don't overwrite storage service from engine 2025-12-10 14:08:08 +00:00
Kevin McConnell 99bee0e0e0 Make SMTP config conditional on SMTP_ADDRESS
- If `SMTP_ADDRESS` is set, configure Action Mailer to use it, along
  with additional optional SMTP-related settings.
- Otherwise, don't set config (for compatibility with engines like
  fizzy-saas).
- Remove sendmail env setup, since by default there is no sendmail in
  the container, and custom deployment can use whatever config the want
  directly. If we end up needing this, we can bring it back via its
  own env.
2025-12-09 12:44:36 +00:00
Adam Haris 9de59ca37b default to smtp 2025-12-09 11:54:45 +00:00
Adam Haris 1d5654cafa configurable actionmailer settings (ENV) 2025-12-09 11:54:44 +00:00
Hosmel Quintana ac1f935d53 Update config/environments/production.rb
Co-authored-by: Alex Ghiculescu <alex@tanda.co>
2025-12-08 18:33:27 -06:00
Hosmel Quintana b3bc0bb2ff allow configuring Active Storage service and add AWS S3 definition 2025-12-08 18:33:27 -06:00
Lewis Buckley 50be611f01 Allow configuring SSL in production with ENV vars 2025-12-08 20:57:01 +00:00
Kevin McConnell 04153038f0 Document deployment
- Update the README with detailed information about how to deploy a
  Fizzy instance
- Reduce the example deploy config
- Add example SMTP configuration in production.rb
2025-12-05 17:03:07 +00:00
Jorge Manrubia 486d56d24f Move env-specific config bits to the saas gem 2025-11-29 16:19:30 +01:00
Jorge Manrubia fa9ee0381d Move more settings to the gem 2025-11-28 15:53:58 +01:00
Jorge Manrubia 18e1badfb5 Prevent choking when no structured logging for now 2025-11-28 15:53:58 +01:00
Kevin McConnell 436caa8f74 Revert "Logging tweaks"
Debug logging interferes with the structured logging, so let's take that
back out.
2025-11-17 09:12:41 -05:00
Kevin McConnell 47f481525b Logging tweaks
- Enable debug logging
- Disable health check logs
- Set Solid Queue logger
2025-11-17 09:12:41 -05:00
Mike Dalessio aca00d6218 Configure a reading: connection for solid gems
because I'm getting exceptions from Mission Control
2025-11-17 09:12:41 -05:00
Jorge Manrubia 8a07782e0f Enable public file server for assets
Attempt to deal with https://app.fizzy.do/5986089/cards/2790
2025-11-07 13:13:24 +01:00
Fernando Álvarez 514c0f45a2 Migrate to fizzy.do 2025-11-04 13:17:10 +01:00
Fernando Álvarez 7f78514a58 Move to app.box-car.com 2025-10-30 11:12:39 +01:00
Fernando Álvarez 3946733b65 Migrate to box-car.com 2025-10-28 18:44:25 +01:00
Mike Dalessio bf04f4f12d Configure action_controller.default_url_options
so that using url helpers will work in turbo stream notifications sent
by background jobs.

ref: https://fizzy.37signals.com/5986089/collections/2/cards/1469
2025-09-01 11:19:26 -04:00
Jorge Manrubia 4427524e53 We do need the host! 2025-08-28 17:55:12 +02:00
Jorge Manrubia 9ba9a5758b Remove hosts for now
Docker subnets causing trouble and this is not really part of the email change
2025-08-28 17:21:15 +02:00
Jorge Manrubia b911a12833 Configure action mailer 2025-08-26 10:15:27 +02:00
Mike Dalessio a43db94a83 Update production storage to write to the Pure blob store
Modify the blob copying script to update the blob service name.

This completes the migration and allows us to (at some point) clean up
local disk and remove the "mirror" service from the config.
2025-06-01 12:57:54 -04:00
Mike Dalessio 704e215eca Production mirrors Active Storage to :purestorage
Also include a script to copy existing blobs to Pure.

Local is still the primary.

Beta will keep using local disk service for Active Storage because I
think there are constraints on source IPs for the Pure cluster.
2025-05-31 14:37:35 -04:00
Mike Dalessio 4992c3f971 Set up tenanted Action Mailer URL helpers
and update AR::Tenanted to a version that supports it.
2025-03-20 21:58:36 -04:00
Mike Dalessio 482aa90243 logging: suppress unstructured log lines 2025-03-13 09:46:14 -04:00
Mike Dalessio ed92687f4c logging: revert changes 2025-03-13 09:41:31 -04:00
Mike Dalessio 019a27787c logging: try just setting log level 2025-03-13 09:38:54 -04:00
Mike Dalessio 3c2e7b8ae3 logging: suppress log entries that are not structured
Borrowed from the BC4 configuration.
2025-03-13 09:31:11 -04:00
Mike Dalessio 989600c590 Configure structured JSON logging
This configuration is emulating what we do in HEY.
2025-03-10 12:12:56 -04:00
Kevin McConnell 890c754f85 Add Kamal deploy config 2025-01-27 13:02:55 +00:00
Kevin McConnell 90538afb3b Add Solid Queue
We'll run jobs via the Puma plugin for now, to simplify the deployment.
2025-01-08 14:02:45 +00:00
Kevin McConnell 2e892e0766 Add Solid Cache 2025-01-08 14:02:45 +00:00
Jeffrey Hardy e0763d4d4b Splat -> Fizzy 2024-08-22 14:53:49 -04:00
Kevin McConnell b9cf8c5e9d Set up Rubocop 2024-06-21 16:42:48 +01:00
Kevin McConnell 564a0f48ae New Rails app 2024-06-21 13:19:56 +01:00