Kamal Secret Key sorunu

Merhaba,

Bir Kamal deployment sorunu ile daha sizlerle beraberim :sweat_smile: Benim sorunum şu şekilde.

Önceki bilgisayarımda sorunsuz deployment yapıyordum Kamal ile. Bilgisayarımı değiştirdim, projeyi Github’dan clone’ladım ve local’de çalışır hale getirdim. Kamal ile deploy etmek istediğimde iste master key yok hatası aldım. Master key yeniden oluşturmak için

VISUAL="code --wait" bin/rails credentials:edit run ettim ve

Editing config/credentials.yml.enc...
Couldn't decrypt config/credentials.yml.enc. Perhaps you passed the wrong key?

hatası aldım. Internette bu hatayı aldıysanız credentials.yml.enc kaldırın deniyor. Ben de öyle yaptım ve yeniden bir credentials.yml.enc ile bir master key oluşturdum.

VISUAL="code --wait" bin/rails credentials:edit
Editing config/credentials.yml.enc...
File encrypted and saved.

Kamal secret’lerımı kontrol ettiğimde herşey normal görünüyor

kamal secrets print
KAMAL_REGISTRY_PASSWORD=dckr_pat_XXXXXXX
RAILS_MASTER_KEY=1XXXXX9

ancak kamal setup ya da kamal deploy dediğimde ise

2024-12-02T13:57:07.979279384Z ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage
2024-12-02T13:57:07.979634669Z /rails/config/environment.rb:5:in `<main>'

hatası alıyorum.

Nasıl çözebileceğimi bulamadım. Aranızda var mı bu konuda bana yardımcı olabilecek :pray:

Uygulamanda config/credentials/production.yml.enc gibi environment’a özel şifreli bir dosya var mı? Bir de config/environment.rb:5 hangi koda karşılık geliyor?

Aldığın hata encryptor’ın hatalı key’i ile encrypt etmeye çalışmasından kaynaklanıyor. Açıp .kamal/secrets dosyasını bir kontrol et derim.

Uygulamanda env based encryption kullanıp kullanmayışına göre dosyanın içinde ya

RAILS_MASTER_KEY=$(cat config/master.key)

ya da

RAILS_MASTER_KEY=$(cat config/credentials/production.key)

geçmeli.

=> Bir de config/environment.rb:5 hangi koda karşılık geliyor?

Rails.application.initialize!

=> Uygulamanda config/credentials/production.yml.enc gibi environment’a özel şifreli bir dosya var mı?
Yok ama ihtiyaç var mı? config altında master.key var zaten. Varsa kendisinin oluşturması gerekmiyordu?

Teşekkürler abi. o dosyada RAILS_MASTER_KEY=$(cat config/master.key) var. Zaten kamal secrets print diyince çıktılarını görüyorum.

Belki saçma olacak ama projede config/credentials.yml.enc dosyası var değil mi?

Ehehe güzel soru :slight_smile: var abi

credentials.yml.enc dosyasını commitlememiş olabilir misin diyeceğim abi bir ihtimal olarak, ikinci bir ihtimal olarakta yeni oluşturulmaya çalışılan container’de eski rails_master_key kullanılmaya çalışmış olabilir belki bunuda anlamanın en iyi yolu sunucuya bağlanıp yeni oluşturulmaya çalışılan container’de ki env’lere bakmak olacaktır. İstersen sunucuya beraber bağlanıp bakabiliriz müsait olduğunda :slight_smile:

1 Beğeni

bu dediklerini yaptim. key’ler arasinda bir problem gorumuyordu. nasil cozdugumu unuttum :slight_smile: sanirim o makineyi kaldirdim ve projeyi de kapadim. :joy: eger tekrar o problem ile karsilasirsam burayi guncellerim.