Commit Graph

97 Commits

Author SHA1 Message Date
Mike Dalessio fcd3c178ce Account#slug uses the virtual "tenant" attribute 2025-10-02 16:44:24 -04:00
Mike Dalessio 320558919c Rename LOCAL_AUTHENTICATION to OSS_CONFIG 2025-10-02 16:44:24 -04:00
Mike Dalessio 0a0816aca6 bin/setup runs mise install 2025-09-17 16:03:15 -04:00
Mike Dalessio d5a4239d19 Rename the queenbee_id and signal_user_id columns
to be more generic for the open-source release.

Find the signal account via Account#external_account

Find the signal user via User#external_user
2025-09-15 13:57:53 -04:00
Mike Dalessio 2630e4bd74 Extract 37id and QB controllers, models, and tests 2025-09-13 16:03:02 -04:00
Mike Dalessio f4e2fe31b4 dep: add refs to the fizzy-saas git dependencies
so that we can quickly switch the app between using the saas extension
and not. (Bundler will re-fetch the remote if the ref is not present.)

Also set the bundler config to auto-install missing dependencies.
2025-09-13 16:03:02 -04:00
Mike Dalessio 8ad0c65997 Extract saas bin/setup 2025-09-13 15:21:01 -04:00
Mike Dalessio 9db98366c3 Set up a "cleanslate" seed that has no cards and no collections
and only a single user, david@37signals.com

ref: https://fizzy.37signals.com/5986089/collections/7/cards/1318
2025-08-06 17:35:55 -04:00
Mike Dalessio 57269b1b9c Allow local authentication with LOCAL_AUTHENTICATION=1
You can touch `tmp/local-auth.txt` to persist this setting.
2025-08-06 17:05:35 -04:00
David Heinemeier Hansson caaa205557 Switch to docker-dev 2025-07-16 15:33:22 -07:00
Mike Dalessio 3d39bdc9f3 Update bin/dev to point at the new tenant URLs 2025-07-01 15:56:14 -04:00
Kevin McConnell 108ea38759 Start MySQL container in bin/setup 2025-06-24 16:18:19 +01:00
Mike Dalessio a8a64a2384 Link the seeds up to the signal_id fixture data 2025-06-20 15:16:57 -04:00
Mike Dalessio 3444427d32 Don't run solid queue in dev by default
but allow it to be turned on by touching tmp/solid-queue.txt
2025-05-08 13:44:05 -04:00
Mike Dalessio f42973618d bin/dev ensures puma runs solid queue
ref: https://37s.fizzy.37signals.com/collections/693169850/cards/999009028
2025-05-07 14:38:59 -04:00
David Heinemeier Hansson c4fbed3156 Try a slimmer version
And I actually stopped liking that setup automatically starts the
server.
2025-04-22 21:20:55 +02:00
David Heinemeier Hansson 29948d8881 Enumerate all the options for logging in 2025-04-21 15:23:31 +02:00
David Heinemeier Hansson 2bfead0381 Convert to conventional Rails style 2025-04-21 15:23:08 +02:00
David Heinemeier Hansson 70275c9f04 Yank Solid Queue from development
It clogs up the test log and occasionally causes the puma to hang when
you want to quit.
2025-04-18 16:30:30 +02:00
David Heinemeier Hansson 0866eb6948 Excess CR 2025-04-05 17:33:37 +02:00
David Heinemeier Hansson 537cb7680e Add Bundler Audit for Local CI 2025-04-05 17:20:51 +02:00
David Heinemeier Hansson aaa4dd2967 Use modern CI setup 2025-04-05 17:18:26 +02:00
David Heinemeier Hansson 338ff496da No system tests yet 2025-04-05 17:15:47 +02:00
Mike Dalessio c5c0ff86ec dev: move script from /bin to /script 2025-04-01 12:14:58 -04:00
Mike Dalessio 6b039b71ab Add a post-deploy hook to tag the release and post to basecamp
These scripts were only slightly modified from the versions in bc3
2025-03-20 13:17:11 -04:00
Mike Dalessio c167b971b9 Add bin/ci 2025-03-20 12:57:28 -04:00
Mike Dalessio dbe783c182 Final version of the tenancy migration script. 2025-03-12 08:27:30 -04:00
Mike Dalessio 300dffd376 Script and configuration for a multi-tenant migration
ref: https://3.basecamp.com/2914079/buckets/37331921/messages/8422006338

The script takes advantage of the fact that we can bind to the
existing untenanted database by adding it explicitly (and temporarily)
as a readonly shard to the database.yml, and so in the script
with_original_db is connected to the original database.

storage/tenants/%{tenant}/ is now the root directory for all
state stored for a particular tenant, including active storage and the
database.

We leave the existing files and production database in place after the
migration, in case we need to roll back (by reverting the code and
config).

We also don't do a granular active storage blob copy, since the
attachments are mostly on Account (and not on Bubble). Instead we
hardlink the blobs on disk (so we don't take up additional space with
duplicates).

Finally, we're manually adding the kamal-proxy hosts to the deploy
file, so that we can generate letsencrypt certs for the
subdomains. This is only intended to be a short-term solution, we'll
want something like a wildcard cert before we go live.
2025-03-12 07:53:31 -04:00
Mike Dalessio d9ece38753 Make the application multi-tenant 2025-03-12 07:53:31 -04:00
Kevin McConnell 8b17a33a75 Only run Solid Queue in Puma in dev
In production, we have extra containers for it.
2025-02-10 17:55:46 +00:00
Kevin McConnell 890c754f85 Add Kamal deploy config 2025-01-27 13:02:55 +00:00
Kevin McConnell f02b75e76b Remove old deploy config 2025-01-27 09:02:51 +00:00
Kevin McConnell bab5bc718d Rename deployment targets 2025-01-15 10:57:27 +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 6df4637309 Require 'logger' to prevent warning in Ruby 3.4 2025-01-06 10:48:52 +00:00
Kevin McConnell e009874767 Set up for internal deployment 2024-10-07 16:47:39 -04:00
Jeffrey Hardy 5266b4cbd3 ./bin/dev -> bin/dev 2024-09-20 14:53:02 -04:00
Jeffrey Hardy b3f7b0e256 There are no services to restart 2024-09-13 18:05:45 -04:00
Jeffrey Hardy bbb394db02 Drop puma-dev in favor of localhost 2024-09-06 16:28:51 -04:00
Jeffrey Hardy e0763d4d4b Splat -> Fizzy 2024-08-22 14:53:49 -04:00
Jeffrey Hardy 97b7c6e212 Tidy setup output 2024-08-20 14:17:08 -04:00
Jeffrey Hardy 117d5b1e2e Use bin/setup --reset to recreate the database 2024-08-16 17:06:51 -04:00
Jeffrey Hardy d17326ecd9 Use bash for bin/setup
That the ruby version is mostly shelling out is a hint that a shell language
might be a better choice. It's more direct, slightly faster, it sidesteps
chicken/egg problems when installing ruby, and writing things in bash is fun.

It's good to have an excuse to flex those shell muscles 💪
2024-08-13 13:03:35 -04:00
Kevin McConnell 01647e1d40 Set up in puma-dev 2024-07-02 11:57:15 +01:00
Kevin McConnell 5f5226d05b Add CI 2024-06-24 15:09:34 +01: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