@kyanny's blog

我々の目的は何かと聞かれて、私はたった一つの言葉で答えることができる。勝利。それだけだ - ウィンストン・チャーチル

Django: SECRET_KEY を GitHub に晒さない

django-admin startproject が生成する settings.py には SECRET_KEY がハードコーディングされている。そのまま GitHub に push すると GitGuardian が親切にも警告メールを送ってくる。実験用のプロジェクトでは問題ないが、正しい作法にのっとるに越したことはないので、 SECRET_KEY は GitHub に晒さないようにしたい。

SECRET_KEY の正しい管理方法

以下の手順は、 startproject 直後に、生成物を git commit する前に行うのが望ましい。でないとハードコードされた SECRET_KEY が Git の歴史に残ってしまうので。

  • SECRET_KEY を記載するファイルを作成する
    • local_settings.py
  • そのファイルを Git のバージョン管理対象から外す
  • SECRET_KEY = ... の行を settings.py から local_settings.py に移動する
  • settings.py から読み込む
    • from .local_settings import SECRET_KEY

サンプルプロジェクト

github.com