2010-06-03 31 views
10

Tôi đang sử dụng GitHub cho mã và Heroku cho nền tảng triển khai cho ứng dụng đường ray của tôi.Triển khai đến Heroku với thông tin cài đặt nhạy cảm

Tôi không muốn có dữ liệu nhạy cảm trong Git. Dữ liệu này bao gồm các thiết lập tệp cơ sở dữ liệu (database.yml) và một số tệp khác có khóa API bí mật.

Khi tôi triển khai vào heroku, làm cách nào tôi có thể xử lý các tệp không được kiểm soát sửa đổi.

Khi tôi sử dụng Capistrano, tôi có thể viết một số phương pháp móc, nhưng tôi không biết phải làm gì với Heroku.

Trả lời

19

Đối Heroku, bạn sẽ cần phải có database.yml dưới Git vì Heroku sẽ tự động đọc nó và tạo cấu hình PostgreSQL từ nó.

Đối với các thông tin nhạy cảm khác như khóa API, Heroku cung cấp config vars là biến môi trường hiệu quả. Bạn có thể thêm chúng bằng:

heroku config:add KEY=value 

— và truy cập chúng từ bên trong ứng dụng của bạn sử dụng:

ENV['KEY'] 

Lưu ý rằng vars cấu hình có thể được liệt kê, bổ sung và loại bỏ bằng cách sử dụng chương trình heroku dòng lệnh và một khi đã đặt chúng liên tục.

+1

cách bạn sẽ đối phó ví dụ với tệp chứng chỉ .pem? Tôi cần tối đa 4 khóa RSA cho paypal, v.v. mà tôi muốn cam kết với heroku nhưng không phải là github. – tmaximini

3

Tôi sẽ tạo chi nhánh địa phương, hãy gọi nó là SECRET và thực hiện các sửa đổi 'bí mật' ở đó. Cam kết với họ và KHÔNG đẩy họ đến github.

Bây giờ, chỉ cần thanh toán và tiếp tục làm việc trên nhánh chính cho đến khi sẵn sàng phát hành.

Để chuẩn bị thanh toán phát hành chi nhánh SECRET, hãy hợp nhất nhánh chính vào nhánh đó và đẩy nó vào heroku như bình thường.

(BTW: Tôi luôn luôn quên để chuyển về chi nhánh làm việc, git stash là bạn của bạn trong trường hợp này)

Các vấn đề liên quan