跳轉到主要內容

自託管環境參考

從釋出開始 env.example,您下載為 .env 在 快速入門。它是受支援的最小 Compose 配置。使用 env.full.example 當您需要可選設定時;此頁面解釋哪些設定屬於一起以及何時更改它們。

編輯後 .env,驗證插值而不列印解析的配置:

docker compose config --quiet

不要犯罪 .env,將其貼上到支援請求中,或公開以下輸出 docker compose config:解析的輸出包含秘密。

所需生產值​

使用以下方法獨立生成每個秘密: openssl rand -hex 32。每次升級時保留舊值,並在伺服器外部儲存恢復副本。

變數生產值為什麼這很重要
POSTGRES_PASSWORD獨特的隨機密碼保護捆綁的 PostgreSQL 資料庫。
WEB_ORIGIN公共 HTTPS 應用源,例如 https://kanera.example.com用於瀏覽器連結、CORS 和身份驗證流程。 不要包含字尾斜線。
COOKIE_DOMAIN應用程式主機名,例如 kanera.example.com重新整理cookie的範圍。
COOKIE_SECUREtrue當應用透過 HTTPS 提供時,必須使用此項。
JWT_SECRET穩定的隨機密碼,至少16個字元使用者會話簽名。 輪換會將所有人登出。
MCP_INTERNAL_SECRET穩定的隨機密碼,至少32個字元,不同於 JWT_SECRET允許 MCP 和公共 API 服務交換受眾約束 OAuth 憑據,而不會將 MCP 令牌轉發到 /api/v1。兩種服務必須始終使用相同的值。
MFA_ENCRYPTION_KEY穩定的隨機密碼,至少32個字元保護身份驗證器的註冊和挑戰。 輪換會使已註冊的身份驗證器無效。
MEDIA_SIGNING_SECRET穩定的隨機密碼,至少32個字元簽署私有媒體 URL。 輪換會使現有簽署的 URL 無效。
SECRETS_ENCRYPTION_KEY穩定的隨機密碼,至少32個字元,不同於 JWT_SECRET加密儲存在資料庫中的 SMTP、儲存、webhook 和整合憑據。

KANERA_DEPLOYMENT_MODE 未付款額 self_hosted。託管模式及其 Stripe、PostHog、計劃限制和許可變數適用於 Kanera 操作的部署,並且在自託管安裝上應保持未設定狀態。

編寫用品 NODE_ENV=production 以及 ANALYTICS_ENABLED=false。離開 ANALYTICS_PROVIDER, POSTHOG_PROJECT_KEY, POSTHOG_API_HOST, 每個 STRIPE_*, HOSTED_*,並且託管模式令牌未設定。這些設定不會將自託管安裝轉變為 Kanera 雲。

公共 URL 和服務​

變數預設設定它時
KANERA_ENVIRONMENTproduction 生產中 編寫您需要不同的 API 金鑰字首來進行開發、測試或臨時安裝。
API_PUBLIC_URLWEB_ORIGIN面向瀏覽器的應用 API 使用不同的公共源。
KANERA_PUBLIC_API_URLhttp://public-api:3001 編寫MCP 或其他內部程序在其 Compose 服務地址以外的某個位置訪問公共 API,這是一個內部 URL,而不是面向瀏覽器的 API 源。
PUBLIC_API_OAUTH_ISSUERhttp://localhost:3001您遠端公開 OAuth 或公共 API;使用其可由瀏覽器訪問的 HTTPS 源。
MCP_SERVER_PUBLIC_URLhttp://localhost:3002/mcp您公開遠端 MCP;使用完整的公共 /mcp URL .
MCP_PUBLIC_URL來自 MCP_SERVER_PUBLIC_URL 按編寫方式分類您在捆綁的 Compose 佈線之外執行 MCP 服務。
OAUTH_ISSUER_URL來自 PUBLIC_API_OAUTH_ISSUER 按編寫方式分類您在捆綁的 Compose 佈線之外執行 MCP。
API_PORT, PUBLIC_API_PORT, WORKER_PORT, MCP_PORT3000, 3001, 3003, 3002您在 Compose 之外執行服務,或者需要不同的內部偵聽埠。
API_TRUST_PROXY, PUBLIC_API_TRUST_PROXY, MCP_TRUST_PROXYfalse, false, true受信任的反向代理提供真實的客戶端 IP。切勿信任來自任意客戶端的轉發標頭。

瀏覽器連線到 web;不釋出主要內容 api 服務。 服務與路由 在公開公共 API 或 MCP 之前。

帳戶和身份驗證​

變數預設目 的
SIGNUPS_ENABLEDtrue集合 false 停止公開註冊和建立新組織。 現有組織邀請連結仍然有效。
EMAIL_VERIFICATION_ENABLEDfalse要求對註冊、邀請註冊和電子郵件更改進行六位數字的電子郵件驗證。 只有在 SMTP 工作後才啟用。
AUTH_RATE_LIMIT_ENABLEDtrue在未經身份驗證的 auth 路由上啟用每個 IP 的暴力控制。
AUTH_RATE_LIMIT_MAX / AUTH_RATE_LIMIT_WINDOW_MS10 / 60000每個視窗允許的身份驗證嘗試。
JWT_ACCESS_TTL / JWT_REFRESH_TTL_DAYS5m / 10訪問令牌和重新整理會話生命週期。
CLOUDFLARE_TURNSTILE_SITE_KEY / CLOUDFLARE_TURNSTILE_SECRET_KEY未設定託管註冊保護。 對於正常的自託管,請不要設定。

使用者在下面配置自己的身份驗證器 設定 -> 您的帳戶 -> 安全。組織管理員可以在下面要求它 設定 -> 組織 -> 安全。參見 個人資料與安全.

公共 API 和 MCP 限制​

變數預設目 的
PUBLIC_API_RATE_LIMIT_ENABLEDtrue啟用公共 API 和 MCP 請求限制。
PUBLIC_API_IP_RATE_LIMIT_PER_MINUTE60限制未經身份驗證的發現和無效載體格式。
PUBLIC_API_FAILED_KEY_RATE_LIMIT_PER_MINUTE10失敗的每個 IP 限制 kanera_* 關鍵的嘗試。
PUBLIC_API_KEY_RATE_LIMIT_PER_MINUTE400成功身份驗證後的每個金鑰請求限制。
PUBLIC_API_UPLOAD_RATE_LIMIT_PER_MINUTE30每個金鑰的附件上傳限制。
PUBLIC_API_RATE_LIMIT_WINDOW_MS60000由公共 API 和 MCP 共享的速率限制視窗。
MCP_BODY_MAX_BYTES1048576最大 MCP 請求正文。
MCP_REQUEST_TIMEOUT_MS30000MCP 請求的最大時間。
MCP_HEADERS_TIMEOUT_MS / MCP_KEEP_ALIVE_TIMEOUT_MS10000 / 5000MCP HTTP 連線超時。
KANERA_API_KEY未設定僅本地 stdio MCP 橋需要,而不是 HTTP MCP 服務。

資料庫、快取和容量​

編寫用品 DATABASE_URL 以及 REDIS_URL 為了孩子 PostgreSQL 以及 Valkey 只有在在該網路之外執行程序或使用託管服務時,才能自行設定它們。

變數預設編寫目 的
DATABASE_SSLfalse僅當外部資料庫需要 SSL 時才啟用。
POSTGRES_BIND_PORT5433捆綁的 PostgreSQL 的僅迴圈迴路主機埠。
API_REPLICAS / PUBLIC_API_REPLICAS / MCP_REPLICAS2 / 1 / 1服務過程是重要的。 讓工作者保持在正確的位置。
PG_POOL_MAX / WORKER_PG_POOL_MAX20 / 5每個應用程式程序和工作程式的最大資料庫連線數。
PG_IDLE_TIMEOUT_MS / PG_CONNECTION_TIMEOUT_MS30000 / 5000池空閒和採集超時。
PG_STATEMENT_TIMEOUT_MS / SLOW_QUERY_LOG_MS30000 / 250資料庫查詢超時和緩慢查詢日誌記錄閾值。
NODE_OPTIONS未設定可選節點標誌,如堆限制。
UV_THREADPOOL_SIZE16雜湊、加密和影象處理所使用的本機工作執行緒。
REALTIME_WEBSOCKET_COMPRESSION_ENABLEDtrue壓縮較大的 Socket.IO WebSocket 訊息。
REALTIME_WEBSOCKET_COMPRESSION_THRESHOLD_BYTES1024要壓縮的最小實時幀大小。
REALTIME_OUTBOX_POLL_MS500 編寫實時和 webhook 發件箱行的工作程式備用調查間隔。
USER_DISPLAY_CACHE_TTL_MS60000顯示名稱查詢的程序中快取壽命。

只有在測量容量後才能將複製件和池一起提升。 更新與擴充套件.

檔案和物件儲存​

變數預設目 的
UPLOADS_DIR/data/uploads 編寫本地上傳目錄。 Bundled Compose 修復此路徑並將其保留在 kanera_uploads;更改卷對映而不是 .env.
ATTACHMENT_MAX_BYTES104857600上傳的附件最大大小(位元組 ) 。
S3_REGION / S3_BUCKET未設定提供憑據後,啟動全部署範圍內的 S3 相容儲存。
S3_ACCESS_KEY_ID / S3_SECRET_ACCESS_KEY未設定上傳 bucket 的憑據。 基於環境的 S3 需要這兩個憑據。
S3_ENDPOINT未設定適用於 MinIO、R2 或其他 S3 相容提供程式的自定義端點。 設定它後,啟用路徑式請求。
S3_PUBLIC_URL_PREFIX未設定儲存物件的可選公共或 CDN 字首。

環境儲存優先於應用程式中配置的組織儲存。 參見 儲存與備份 在切換已有上傳的安裝之前。

電子郵件、通知和整合​

變數預設目 的
SMTP_HOST, SMTP_USER, SMTP_PASSWORD, SMTP_FROM_EMAIL未設定預設的出站 SMTP 連線和發件人。
SMTP_PORT / SMTP_SECURITY587 / starttlsSMTP 埠和傳輸: starttls, tls, 或 none.
SMTP_FROM_NAMEKanera發件人顯示名稱。
SMTP_IDENTITY_DOMAIN發件人電子郵件域EHLO 和訊息 ID 域。
INTERNAL_NOTIFICATION_EMAILS未設定用逗號分隔的收件人用於純文字註冊和邀請提醒。 需要環境 SMTP。
KANERA_ALLOW_PRIVATE_NOTIFICATION_DESTINATIONSfalse允許 HTTP 或專用網路上的個人 ntfy、Gotify 和 webhook 接收器。保留地址和後設資料地址仍然被阻止。
ALERT_WEBHOOK_URL未設定與 Slack 相容的準備狀態、執行時和 Grafana 警報目標。
OPS_ALERTS_ENABLED / OPS_ALERT_THROTTLE_MStrue / 300000啟用並去重操作警報。 沒有目標,就不會傳送任何資訊。
SLOW_REQUEST_LOG_MS2500日誌中緩慢請求警告的閾值。
GITHUB_APP_ID, GITHUB_APP_SLUG, GITHUB_APP_PRIVATE_KEY未設定可選部署定義的 GitHub 應用程式,用於私有連結預覽。 自託管管理員可以使用應用程式內清單流。
TRELLO_API_KEY未設定讓 Trello 匯入驗證和複製附件。

海 電子郵件與通知 以及 整合與 API.

Backups and retention​

變數預設目 的
DB_BACKUPS_ENABLEDfalse啟用將 PostgreSQL 加密備份到 S3 相容儲存的計劃備份。
DB_BACKUP_ENCRYPTION_PASSPHRASE未設定啟用備份時必需,並且還原備份時再次需要。
DB_BACKUP_TIMES_UTC00:15,12:15,16:45用逗號分隔的每日 UTC 備份時間。
DB_BACKUP_RETENTION_DAYS14成功的備份保留視窗。
DB_BACKUP_S3_PREFIXbackups/postgres資料庫轉儲的物件字首。
DB_BACKUP_S3_BUCKET, DB_BACKUP_S3_REGION, DB_BACKUP_S3_ENDPOINT上傳儲存值可選單獨備份目標。
DB_BACKUP_S3_ACCESS_KEY_ID, DB_BACKUP_S3_SECRET_ACCESS_KEY上傳儲存值可選單獨備份憑據。
ACTIVITY_EVENT_RETENTION_DAYS730活動歷史保留。
ADMIN_AUDIT_LOG_RETENTION_DAYS1095管理審計記錄保留。
NOTIFICATION_READ_RETENTION_DAYS / NOTIFICATION_MAX_RETENTION_DAYS90 / 365讀取通知和絕對通知保留。
AUTH_TOKEN_RETENTION_DAYS30過期或消耗的認證檔案被清除之前的寬限期。
REALTIME_OUTBOX_RETENTION_DAYS / OUTBOX_STUCK_RETENTION_DAYS30 / 30處理和永久卡住的發件箱保留。

海 儲存與備份 備份要求和恢復規劃。

監測​

變數預設目 的
METRICS_ENABLEDtrue註冊 Prometheus 指標端點。 404 沒有有效的令牌。
METRICS_TOKEN未設定不記名令牌,至少 16 個字元,用於抓取。
COMPOSE_PROFILES未設定包括 monitoring 開始Grafana,普羅米修斯,洛基,合金,和出口商;包括 admin 管理入口網站的管理
COMPOSE_PROJECT_NAMEkaneraAlloy 用於選擇此部署的日誌的編寫身份。 檢查 docker compose ls 在託管平臺上。
GRAFANA_ADMIN_PASSWORD未設定啟用監控配置檔案時必需。
MONITORING_BIND_IP127.0.0.1使用私有VPN地址,永遠不要使用私有VPN地址。 0.0.0.0 生產中。
GRAFANA_BIND_PORT / PROMETHEUS_BIND_PORT3000 / 9090兩個監控 UI 的主機埠。
PROMETHEUS_RETENTION / PROMETHEUS_RETENTION_SIZE30d / 5GBPrometheus 資料的時間和磁碟上限。
GRAFANA_ROOT_URL未設定透過代理伺服器提供外部 Grafana URL。
POSTGRES_EXPORTER_DSN捆綁資料庫覆蓋外部 PostgreSQL 伺服器。
REALTIME_EMIT_METRICS_ENABLEDfalse啟用取樣的實時有效載荷指標。
REALTIME_EMIT_METRICS_SAMPLE_RATE / REALTIME_EMIT_METRICS_MIN_BYTES0.01 / 0實時指標取樣和最小有效載荷大小。

可選管理門戶​

管理門戶與租戶設定分開,並且有自己的身份驗證邊界,只有在操作員需要跨組織管理或稽核支援會話時才能啟用。

變數預設目 的
ADMIN_WEB_ORIGINhttp://localhost:4300管理控制檯的公共源和 CORS 邊界。
ADMIN_API_PORT3002內部管理 API 偵聽埠在捆綁佈線之外執行時。
ADMIN_COOKIE_DOMAIN未設定當管理員主機名在外面時,cookie-domain覆蓋 COOKIE_DOMAIN.
ADMIN_JWT_SECRET未設定管理 API 所需,必須與 JWT_SECRET.
ADMIN_EMAIL / ADMIN_PASSWORD未設定只有在 admin-user 表為空時才播種第一個 superadmin。 它們不會重置現有帳戶。
ADMIN_JWT_ACCESS_TTL / ADMIN_JWT_REFRESH_TTL_DAYS15m / 7管理員訪問和重新整理生命週期。
ADMIN_LOGIN_RATE_LIMIT_MAX / ADMIN_LOGIN_RATE_LIMIT_WINDOW_MS5 / 300000每個IP管理員登入節流閥。
ADMIN_TRUST_PROXYtrue對於真實客戶端 IP,信任管理員反向代理。
SUPPORT_SESSION_TTL_MINUTES60支援會話壽命短暫;最長八小時,無重新整理令牌。

保持管理門戶的隱私,使用單獨的主機名和金鑰,並檢視其稽核日誌。 DEPLOY.md 關於 Kanera 儲存庫的資訊

應用並驗證更改​

大多數更改都需要重新建立受影響的服務:

docker compose config --quiet
docker compose up -d
docker compose ps

更改身份驗證、傳送、儲存、API、MCP 或管理設定後,檢查相關服務日誌。語法上有效的 .env 並不能證明外部憑據或 URL 是有效的。