Zeabur 環境變數設定完整指南
更新日期: 2025 年 1 月 12 日
本文為 Zeabur 部屬基礎指南,第 3 篇:
在現代的網頁開發中,環境變數(Environment Variables)是一種用來儲存敏感資訊及可變動設定的標準方法。
它能夠提高應用程式的安全性與靈活性,並有助於在不同的執行環境下維持穩定的系統行為。
本篇文章將教你如何在 Zeabur 平台上正確設定環境變數,並解釋為何這是管理敏感資訊的最佳實踐。
什麼是環境變數?
環境變數是一組以「名稱-值」的形式存在的系統設定,用於儲存應用程式運行時所需的重要資訊。
這些變數通常用於:
- API 金鑰:如
LINE_CLIENT_ID
、AWS_ACCESS_KEY_ID
- 資料庫連線資訊:如
DB_NAME
、DB_USER
、DB_PASSWORD
- 伺服器設定:如
PROTOCOL
、DEFAULT_DOMAIN
為什麼要使用環境變數?
提升安全性
- 敏感資訊保護:將 API 金鑰、密碼等敏感資訊從程式碼中分離,避免直接暴露於程式碼庫中。
- 防止資訊外洩:即使程式碼被推送到 GitHub,也不會洩露這些變數的值。
可攜性與彈性
- 多環境適用:可以針對不同的環境(如開發、測試、正式環境)使用不同的變數值。
- 範例:在本地開發時使用
127.0.0.1:8000
,而在正式環境使用https://example.com
。
避免硬編碼
- 程式碼更乾淨:將設定從程式碼中分離,使程式碼更加乾淨且易於維護。
- 自動化工具整合:特別適用於 CI/CD(如 GitHub Actions),自動化測試與部署流程。
如何在 Zeabur 上設定環境變數?
Zeabur 提供了直覺的圖形化介面來管理環境變數,以下是設定步驟:
登入 Zeabur 控制台
- 前往 Zeabur 官方網站 並登入你的帳號。
選擇專案並進入服務設定
- 在專案列表中選擇你要設定的專案。
- 點擊目標服務(如 Web 服務或 PostgreSQL 服務)。
新增環境變數
- 點擊「環境變數」選項卡。
- 點擊「新增環境變數」。
變數名稱 | 變數值 | 用途 |
---|---|---|
DB_NAME | my_database | PostgreSQL 資料庫名稱 |
DB_USER | postgres_user | 資料庫使用者名稱 |
DB_PASSWORD | securepassword123 | 資料庫密碼 |
LINE_CLIENT_ID | 2006673281 | LINE API 金鑰 |
AWS_ACCESS_KEY | AKIA************ | 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
並不需要,因為變數已透過平台自動註入!
安全性最佳實踐建議
- ❌ 不要將敏感資訊直接寫入程式碼中
- 避免出現這樣的情況:
DATABASES = {
'default': {
'NAME': 'my_db',
'USER': 'admin',
'PASSWORD': '123456',
}
}
- ✅ 使用環境變數
- 以安全的方式將敏感資訊存儲在 Zeabur 平台的環境變數中。
- ✅ 避免將
.env
推送到 GitHub- 將
.env
檔案加入.gitignore
,確保不會上傳到版本控制系統。
- 將
總結
- 什麼是環境變數?
- 是一種以「名稱-值」形式存在的系統設定,用於存儲敏感資訊與系統設定。
- 為什麼要使用環境變數?
- 提升安全性、增加彈性,並符合最佳實踐。
- 如何在 Zeabur 上設定?
- 透過控制台介面,將變數名稱與值新增到環境變數管理器中。
- 如何在 Django 中使用?
- 使用
os.environ.get()
讀取 Zeabur 自動注入的變數,無需.env
檔案。
- 使用
使用 Zeabur 平台的環境變數管理功能,不僅可以讓你的專案更加安全,也能簡化環境切換與自動化部署流程。
現在就開始保護你的專案吧!🚀