Zeabur 環境變數設定完整指南

更新日期: 2025 年 1 月 12 日

在現代的網頁開發中,環境變數(Environment Variables)是一種用來儲存敏感資訊及可變動設定的標準方法。

它能夠提高應用程式的安全性靈活性,並有助於在不同的執行環境下維持穩定的系統行為。

本篇文章將教你如何在 Zeabur 平台上正確設定環境變數,並解釋為何這是管理敏感資訊的最佳實踐。


什麼是環境變數?

環境變數是一組以「名稱-值」的形式存在的系統設定,用於儲存應用程式運行時所需的重要資訊。

這些變數通常用於:

  • API 金鑰:如 LINE_CLIENT_IDAWS_ACCESS_KEY_ID
  • 資料庫連線資訊:如 DB_NAMEDB_USERDB_PASSWORD
  • 伺服器設定:如 PROTOCOLDEFAULT_DOMAIN

為什麼要使用環境變數?

提升安全性

  • 敏感資訊保護:將 API 金鑰、密碼等敏感資訊從程式碼中分離,避免直接暴露於程式碼庫中。
  • 防止資訊外洩:即使程式碼被推送到 GitHub,也不會洩露這些變數的值。

可攜性與彈性

  • 多環境適用:可以針對不同的環境(如開發、測試、正式環境)使用不同的變數值。
  • 範例:在本地開發時使用 127.0.0.1:8000,而在正式環境使用 https://example.com

避免硬編碼

  • 程式碼更乾淨:將設定從程式碼中分離,使程式碼更加乾淨且易於維護。
  • 自動化工具整合:特別適用於 CI/CD(如 GitHub Actions),自動化測試與部署流程。

如何在 Zeabur 上設定環境變數?

Zeabur 提供了直覺的圖形化介面來管理環境變數,以下是設定步驟:

登入 Zeabur 控制台

選擇專案並進入服務設定

  • 在專案列表中選擇你要設定的專案。
  • 點擊目標服務(如 Web 服務或 PostgreSQL 服務)。

新增環境變數

  • 點擊「環境變數」選項卡。
  • 點擊「新增環境變數」。
變數名稱變數值用途
DB_NAMEmy_databasePostgreSQL 資料庫名稱
DB_USERpostgres_user資料庫使用者名稱
DB_PASSWORDsecurepassword123資料庫密碼
LINE_CLIENT_ID2006673281LINE API 金鑰
AWS_ACCESS_KEYAKIA************AWS 存取金鑰

保存並部署

  • 完成設定後,點擊「保存」並重新部署專案,使環境變數生效。

✅ 完成後,你的應用程式將可以安全地透過這些環境變數存取敏感資訊與服務。


在 Django 專案中使用 Zeabur 環境變數

當你在 Django 專案中使用 Zeabur 提供的環境變數時,可以透過 os.environ.get() 來讀取這些變數。

步驟 1:安裝 python-dotenv(僅適用於本地開發)

pip install python-dotenv

步驟 2:修改 settings.py

import os

# 安全性設定
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY')
DEBUG = os.environ.get('DEBUG', 'False') == 'True'

# 資料庫設定
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': os.environ.get('DB_NAME'),
        'USER': os.environ.get('DB_USER'),
        'PASSWORD': os.environ.get('DB_PASSWORD'),
        'HOST': os.environ.get('DB_HOST'),
        'PORT': os.environ.get('DB_PORT'),
    }
}

# 第三方服務設定
LINE_CLIENT_ID = os.environ.get('LINE_CLIENT_ID')
LINE_SECRET = os.environ.get('LINE_SECRET')

本地環境變數範例 .env

DJANGO_SECRET_KEY=mysecretkey123
DB_NAME=my_database
DB_USER=postgres
DB_PASSWORD=securepassword123
DB_HOST=localhost
DB_PORT=5432

.env 加入 .gitignore

確保 .env 不會被推送到 GitHub,避免金鑰洩漏。

# .gitignore
.env

在 Zeabur 上執行時,.env 並不需要,因為變數已透過平台自動註入!


安全性最佳實踐建議

  1. ❌ 不要將敏感資訊直接寫入程式碼中
    • 避免出現這樣的情況:
DATABASES = {
    'default': {
        'NAME': 'my_db',
        'USER': 'admin',
        'PASSWORD': '123456',
    }
}
  1. ✅ 使用環境變數
    • 以安全的方式將敏感資訊存儲在 Zeabur 平台的環境變數中。
  2. ✅ 避免將 .env 推送到 GitHub
    • .env 檔案加入 .gitignore,確保不會上傳到版本控制系統。

總結

  • 什麼是環境變數?
    • 是一種以「名稱-值」形式存在的系統設定,用於存儲敏感資訊與系統設定。
  • 為什麼要使用環境變數?
    • 提升安全性、增加彈性,並符合最佳實踐
  • 如何在 Zeabur 上設定?
    • 透過控制台介面,將變數名稱與值新增到環境變數管理器中。
  • 如何在 Django 中使用?
    • 使用 os.environ.get() 讀取 Zeabur 自動注入的變數,無需 .env 檔案。

使用 Zeabur 平台的環境變數管理功能,不僅可以讓你的專案更加安全,也能簡化環境切換與自動化部署流程。

現在就開始保護你的專案吧!🚀

Similar Posts

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *