設定參考

控制器、Docker Compose、探測器 agent、Web 建置與說明文件建置所使用的完整環境變數參考。

控制器會讀取環境變數,也可以讀取工作目錄或 server/ 下的 .env。Docker Compose 則讀取該專案的 .env,並將支援的值傳入容器。

時間長度使用 Go 語法,例如 250ms5s30m168h。布林值使用 truefalse。機密值必須保持穩定、彼此不同,而且不能放進版本控制。

Compose 部署變數

這些值用來選擇映像檔與主機對外開放方式,不會直接設定控制器。

變數預設值用途
NETSTAMP_IMAGEyorukot/netstamp控制器映像檔儲存庫
NETSTAMP_VERSIONlatest控制器與遷移映像檔的標籤
TIMESCALEDB_IMAGEtimescale/timescaledb:latest-pg16資料庫映像檔
NETSTAMP_PORT3000對外映射至控制器 8080 連接埠的主機連接埠

正式環境應固定映像檔版本。Compose volume 的邏輯名稱是 netstamp-postgres;Docker 通常會在實際名稱前加上 Compose 專案名稱。

控制器核心設定

變數預設值用途
APP_ENVlocal執行環境;不是 local 時會啟用安全工作階段 cookie 行為
DEMO_MODEfalse啟用後端示範模式限制
SERVICE_NAMEcontroller日誌與遙測使用的服務識別名稱
APP_VERSION0.1.0回報的應用程式版本;Compose 會將 NETSTAMP_VERSION 對應到這裡
API_VERSIONv1掛載在 /api/<version> 下的版本路徑
LOG_LEVELinfodebuginfowarnerrordpanicpanicfatal
LOG_PSEUDONYM_KEYdevelopment placeholder將敏感日誌識別資訊去識別化時使用的穩定金鑰
SYSTEM_SETTINGS_ENCRYPTION_KEYdevelopment placeholder加密系統管理機密設定時使用的穩定金鑰
SHUTDOWN_TIMEOUT10s控制器正常關閉的期限

所有非本機部署都必須更換這兩個開發用預留金鑰。變更設定加密金鑰可能使已儲存的 SMTP 機密值無法解密。

HTTP 與公開來源網址

變數預設值用途
BACKEND_BASE_URLempty回呼、電子郵件與探測器安裝網址使用的公開控制器來源網址
PUBLIC_WEB_BASE_URLempty使用者連結使用的公開瀏覽器來源網址
HTTP_ADDR:8080控制器監聽位址
WEB_DIRempty建置後的前端目錄;正式映像檔設為 /app/web
REQUEST_TIMEOUT10s請求內容的逾時時間
HTTP_READ_HEADER_TIMEOUT5s讀取標頭的逾時時間
HTTP_READ_TIMEOUT15s讀取請求的逾時時間
HTTP_WRITE_TIMEOUT15s寫入回應的逾時時間
HTTP_IDLE_TIMEOUT60skeep-alive 連線閒置逾時時間
HTTP_TRUSTED_PROXIESempty以逗號分隔的 Proxy IP 位址或 CIDR 前綴

來源網址只能包含 httphttps 通訊協定與主機名稱。啟用外部驗證時,BACKEND_BASE_URL 不可為空。

資料庫

變數預設值用途
DATABASE_HOSTlocalhostPostgreSQL 主機;Compose 使用 postgres
DATABASE_PORT5432PostgreSQL 連接埠
DATABASE_USERnetstamp資料庫使用者
DATABASE_PASSWORDnetstamp資料庫密碼
DATABASE_NAMEnetstamp資料庫名稱
DATABASE_SSLMODEdisablePostgreSQL SSL 模式
DB_MAX_CONNS10連線池上限
DB_MIN_CONNS0連線池最少閒置連線數量
DB_MAX_CONN_LIFETIME1h連線池中連線的最長存活時間
DB_MAX_CONN_IDLE_TIME30m連線池中連線的最長閒置時間

資料庫連線若會通過不受信任的網路,請啟用 TLS 驗證。標準 Compose 環境會將資料庫流量留在私有網路內。

工作階段、密碼與權杖

變數預設值用途
AUTH_SESSION_HASH_KEYdevelopment placeholder不透明工作階段權杖使用的 HMAC/雜湊金鑰
AUTH_API_TOKEN_HASH_KEYdevelopment placeholder個人 API 權杖使用的 HMAC/雜湊金鑰
AUTH_SESSION_IDLE_TTL24h工作階段閒置期限
AUTH_SESSION_ABSOLUTE_TTL168h工作階段最長存活時間
AUTH_SESSION_TOUCH_INTERVAL5m兩次寫入工作階段活動狀態的最短間隔
AUTH_SUDO_TTL5m敏感操作所需的近期驗證有效時間
AUTH_REGISTRATION_ENABLEDtrue本機帳號註冊政策的環境變數備援值
AUTH_EXTERNAL_FLOW_TTL10mOAuth/OIDC 驗證流程存活時間
AUTH_PASSWORD_RESET_TOKEN_TTL30m密碼重設連結有效時間
AUTH_PASSWORD_RESET_RATE_LIMIT_WINDOW1h密碼重設速率限制的時間範圍
AUTH_PASSWORD_RESET_IP_LIMIT10時間範圍內每個 IP 可發出的請求數
AUTH_PASSWORD_RESET_EMAIL_LIMIT3時間範圍內每個電子郵件地址可發出的請求數
AUTH_ARGON2ID_MEMORY_KIB65536Argon2id 記憶體成本
AUTH_ARGON2ID_ITERATIONS3Argon2id 迭代成本
AUTH_ARGON2ID_PARALLELISM4Argon2id 平行處理數

系統管理介面中儲存的設定可以覆蓋註冊政策。變更雜湊金鑰會使受該金鑰保護的既有憑證失效。

通用 OIDC

變數預設值用途
AUTH_OIDC_ENABLEDfalse啟用通用 OIDC
AUTH_OIDC_ISSUER_URLemptyOIDC 簽發者與探索服務來源網址
AUTH_OIDC_CLIENT_IDempty用戶端 ID
AUTH_OIDC_CLIENT_SECRETempty用戶端密鑰
AUTH_OIDC_DISPLAY_NAMESingle sign-on登入按鈕標籤
AUTH_OIDC_JIT_PROVISIONING_ENABLEDfalse為身分有效但尚未存在的使用者建立帳號

Google 驗證

變數預設值用途
AUTH_GOOGLE_ENABLEDfalse啟用 Google OpenID Connect
AUTH_GOOGLE_CLIENT_IDemptyGoogle 用戶端 ID
AUTH_GOOGLE_CLIENT_SECRETemptyGoogle 用戶端密鑰
AUTH_GOOGLE_DISPLAY_NAMEGoogle登入按鈕標籤
AUTH_GOOGLE_JIT_PROVISIONING_ENABLEDfalse為接受的 Google 身分建立新使用者
AUTH_GOOGLE_ALLOWED_HOSTED_DOMAINSempty以逗號分隔的 Workspace 託管網域允許清單

GitHub 驗證

變數預設值用途
AUTH_GITHUB_ENABLEDfalse啟用 GitHub OAuth
AUTH_GITHUB_CLIENT_IDemptyGitHub OAuth 用戶端 ID
AUTH_GITHUB_CLIENT_SECRETemptyGitHub OAuth 用戶端密鑰
AUTH_GITHUB_DISPLAY_NAMEGitHub登入按鈕標籤
AUTH_GITHUB_JIT_PROVISIONING_ENABLEDfalse為接受的 GitHub 身分建立新使用者
AUTH_GITHUB_ALLOW_SIGNUPtrue允許透過 GitHub OAuth 流程註冊 GitHub 帳號

指派、警示與通知背景工作

變數預設值用途
ASSIGNMENT_REFRESH_WORKER_ENABLEDtrue重試已排入佇列的指派更新工作
ASSIGNMENT_REFRESH_WORKER_INTERVAL5s指派更新背景工作的輪詢間隔
ASSIGNMENT_REFRESH_WORKER_BATCH_SIZE25每次更新週期取得的工作數量
ASSIGNMENT_REFRESH_WORKER_STALE_TIMEOUT1m中斷的更新工作可被重新取得前的逾時時間
ALERT_EVALUATION_ENABLEDtrue執行指標門檻警示評估
NOTIFICATION_WORKER_ENABLEDtrue傳送已排入佇列的事件通知
NOTIFICATION_WORKER_INTERVAL5s通知寄件匣的輪詢間隔
NOTIFICATION_WORKER_BATCH_SIZE25每次週期取得的通知傳送工作數量
NOTIFICATION_WORKER_STALE_TIMEOUT1m中斷的傳送工作可被重新取得前的逾時時間
NOTIFICATION_HTTP_TIMEOUT10sWebhook、Slack、Discord 與 Telegram 的 HTTP 逾時

停用背景工作只會暫停處理,不會刪除設定或已排入佇列的工作。

SMTP

變數預設值用途
SMTP_HOSTemptySMTP 主機;主機或寄件者為空時,電子郵件功能視為尚未設定
SMTP_PORT587SMTP 連接埠
SMTP_USERNAMEempty選用的 SMTP AUTH 使用者名稱
SMTP_PASSWORDempty選用的 SMTP AUTH 密碼
SMTP_FROMempty信封寄件者地址
SMTP_TLS_MODEstarttlsstarttlsimplicitnone
SMTP_TIMEOUT10s連線與寄送逾時時間

儲存在系統管理介面中的 SMTP 設定會覆蓋這些環境變數備援值。

Tracing

變數預設值用途
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTempty接收 OTLP HTTP trace 的端點

程式碼儲存庫提供的可觀測性 Compose 環境會將這個值指向 VictoriaTraces。保留空值即可停用匯出。

探測器 agent

Systemd 安裝程式會寫入前三個值,其餘都是本機執行參數的覆寫值。

變數預設值用途
NETSTAMP_PROBE_CONTROLLER_URLrequired控制器來源網址,不含 /api/v1
NETSTAMP_PROBE_IDrequired探測器 UUID
NETSTAMP_PROBE_SECRETrequired探測器執行階段金鑰
NETSTAMP_PROBE_HTTP_TIMEOUT10s執行階段 API 請求逾時時間
NETSTAMP_PROBE_MAX_WORKERS128同時執行的背景工作數量上限
NETSTAMP_PROBE_RESULT_QUEUE_SIZE10000可暫存的結果數量
NETSTAMP_PROBE_RESULT_BATCH_SIZE100單次提交的批次上限
NETSTAMP_PROBE_RESULT_FLUSH_INTERVAL5s提交未滿批次前的最長等待時間
NETSTAMP_PROBE_ASSIGNMENT_TTL10m本機指派資料的有效期限
NETSTAMP_PROBE_SHUTDOWN_TIMEOUT10sAgent 正常關閉的期限
NETSTAMP_PROBE_HEARTBEAT_INTERVAL30s心跳訊號間隔
NETSTAMP_PROBE_ASSIGNMENT_POLL_INTERVAL30s指派輪詢間隔
NETSTAMP_PROBE_INITIAL_BACKOFF1s執行階段重試的初始延遲
NETSTAMP_PROBE_MAX_BACKOFF30s執行階段重試的最長延遲
NETSTAMP_PROBE_MAX_ATTEMPTS5目前重試週期判定失敗前的嘗試次數
NETSTAMP_PROBE_METRICS_ADDRempty選用的 Prometheus 監聽位址,例如 127.0.0.1:9091
NETSTAMP_PROBE_PPROF_ADDRempty選用的 pprof 監聽位址,例如 127.0.0.1:6060
NETSTAMP_PROBE_LOG_LEVELinfodebuginfowarnerror

所有數值容量與時間長度都必須大於零。最大退避時間不得小於初始退避時間。

Web 應用程式建置變數

這些值會編譯進靜態前端。容器啟動後再變更執行環境,不會修改已建置的程式套件。

變數預設值用途
VITE_NETSTAMP_API_BASE_URL/api/v1瀏覽器 API 基底網址
VITE_NETSTAMP_API_PROXY_TARGEThttp://localhost:8080Vite 開發用反向代理目標
VITE_NETSTAMP_REGISTRATION_ENABLEDtrue後端政策允許時顯示註冊 UI
VITE_NETSTAMP_PROJECT_CREATION_ENABLEDtrue顯示建立專案 UI
VITE_NETSTAMP_USER_CREDENTIAL_CHANGES_ENABLEDtrue顯示憑證管理介面
VITE_NETSTAMP_DEMO_MODEfalse啟用唯讀示範模式
VITE_NETSTAMP_DEMO_EMAILempty選用的示範帳號電子郵件
VITE_NETSTAMP_DEMO_PASSWORDempty選用的示範帳號密碼

分析服務整合都是選用功能:VITE_NETSTAMP_GA_MEASUREMENT_IDVITE_NETSTAMP_GOOGLE_TAG_IDVITE_NETSTAMP_CLARITY_PROJECT_IDVITE_NETSTAMP_META_PIXEL_ID 或其 FACEBOOK 別名、VITE_NETSTAMP_POSTHOG_KEY 與主機、VITE_NETSTAMP_PLAUSIBLE_DOMAIN 與指令碼 URL,以及 VITE_NETSTAMP_UMAMI_WEBSITE_ID 與指令碼 URL。

VITE_NETSTAMP_TRACKING_CONSENT_MODE 接受 regionalalwaysneverVITE_NETSTAMP_TRACKING_CONSENT_COUNTRIES 則是區域適用國家清單。

說明文件建置變數

變數預設值用途
PUBLIC_SITE_URLhttps://netstamp.dev說明文件的標準來源網址
PUBLIC_NETSTAMP_APP_BASE_URLhttps://app.netstamp.dev說明文件連往產品應用程式的 URL

說明文件支援相同的選用追蹤服務與同意控制,但前綴使用 PUBLIC_NETSTAMP_*,而不是 VITE_NETSTAMP_*