Fix cloud mode: ERB secrets, Redis auth, and Redis URL

- secrets.rb: Process ERB tags in secrets.yml and use ||= to not
  overwrite existing ENV vars (was clobbering SERVER_MODE=cloud with
  literal ERB string, causing app to fall into 'application' mode
  and redirect to /en/activate)
- license.rb: Use ENV['REDIS_URL'] for all Redis.new calls instead
  of defaulting to localhost (infrastructure Redis requires auth)
- redis.yml: Use ERB to read REDIS_URL env var for production
- sidekiq.rb: Process ERB when loading redis.yml

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Min Zeya Phyo
2026-02-07 23:21:46 +08:00
parent 00369f96bd
commit d0a607e976
4 changed files with 10 additions and 10 deletions

View File

@@ -37,7 +37,7 @@ class License
cache_license = nil
##Get redis connection from connection pool
redis = Redis.new
redis = Redis.new(url: ENV['REDIS_URL'])
cache_license = redis.get(cache_key)
Rails.logger.info "Cache key - " + cache_key.to_s
@@ -54,7 +54,7 @@ class License
#Rails.logger.info "License - " + response.parsed_response.to_s
redis = Redis.new
redis = Redis.new(url: ENV['REDIS_URL'])
redis.set(cache_key, Marshal.dump(@license))
# redis.sadd("License:cache:keys", cache_key)
# Redis.current do |conn|
@@ -110,7 +110,7 @@ class License
# if cache_license.nil?
cache = {"shop" => @activate["shop_name"], "key" => aes_key, "iv" => @activate["iv_key"], "renewable_date" => @activate["renewable_date"] }
redis = Redis.new
redis = Redis.new(url: ENV['REDIS_URL'])
redis.set(cache_key, Marshal.dump(cache))
# end
@@ -308,14 +308,14 @@ class License
cache_license = nil
##Get redis connection from connection pool
redis = Redis.new
redis = Redis.new(url: ENV['REDIS_URL'])
cache_license = redis.get(cache_key)
Rails.logger.info "Cache key - " + cache_key.to_s
if cache_license.nil?
cache = {"shop" => shop_name, "key" => @data["secret_key"], "iv" => @data["iv_key"], "renewable_date" => @data["renewable_date"] }
redis = Redis.new
redis = Redis.new(url: ENV['REDIS_URL'])
redis.set(cache_key, Marshal.dump(cache))
end
return true
@@ -332,7 +332,7 @@ class License
cache_key = "shop:#{shop.chomp}"
##Get redis connection from connection pool
redis = Redis.new
redis = Redis.new(url: ENV['REDIS_URL'])
cache_shop = redis.get(cache_key)
puts Marshal.load(cache_shop)

View File

@@ -1,6 +1,6 @@
config = YAML.load_file("#{Rails.root}/config/secrets.yml")
config = YAML.load(ERB.new(File.read("#{Rails.root}/config/secrets.yml")).result)
config.fetch(Rails.env, {}).each do |key, value|
ENV[key.upcase] = value.to_s
ENV[key.upcase] ||= value.to_s
end
# SECRETS_CONFIG = YAML.load_file("#{Rails.root}/config/secrets.yml")[Rails.env]

View File

@@ -1,4 +1,4 @@
redis = YAML::load(File.open("#{ Rails.root }/config/redis.yml"))[::Rails.env]
redis = YAML::load(ERB.new(File.read("#{ Rails.root }/config/redis.yml")).result)[::Rails.env]
Sidekiq.configure_server do |config|
config.redis = { url: "#{ redis['url'] }/#{ redis['db'] }" }

View File

@@ -10,4 +10,4 @@ test:
production:
<<: *default
url: redis://127.0.0.1:6379
url: <%= ENV.fetch('REDIS_URL', 'redis://127.0.0.1:6379') %>