Seed demo environment on startup
When DEFAULT_USER is set, automatically create the user and populate
the database with sample series and tasks at boot time. This ensures
the demo always has data, especially important for the in-memory
SQLite database which starts empty on every deploy.
Seeding is idempotent — skipped if the user already has series.
https://claude.ai/code/session_01CBPuSMhSgpvP223kgjj67t
diff --git a/config.ru b/config.ru
index 224b661..edddd06 100644
--- a/config.ru
+++ b/config.ru
@@ -40,6 +40,13 @@ end
if CONFIG.default_user
require_relative "lib/ketchup/dev_auth"
use Ketchup::DevAuth, CONFIG.default_user
+
+ require_relative "lib/ketchup/seed"
+ user = User.find_or_create(login: CONFIG.default_user)
+ if user.series_dataset.empty?
+ Ketchup::Seed.call(user: user, series: Ketchup::Seed::DATA)
+ $stderr.puts "Seeded #{Ketchup::Seed::DATA.length} series for #{user.login}"
+ end
end
require_relative "lib/ketchup/web"