Web Analytics

self-hosted-simplelogin

⭐ 88 stars Traditional Chinese by springcomp

🌐 語言

SimpleLogin

這是一個針對 SimpleLogin 所設計的自我託管 docker-compose 組態。

先決條件

除了通常在您的網域註冊商介面上完成的 DNS 設定外,下方所有步驟都需在您的伺服器上執行。這些指令應在 bash(或任何相容 bash 的 shell,如 zsh)下運行。如果您使用其他 shell,如 fish,請務必調整這些指令。

sudo apt update \
  && sudo apt install -y net-tools dnsutils

DNS 設定

_請參考 參考文件 以獲得更多細節_

請注意,DNS 變更可能需要最多 24 小時才會傳播。不過實際上會快很多(我們測試約 1 分鐘)。在 DNS 設定時,我們通常會在網域後加上一個點(.)來強制使用絕對網域。

您需要設定以下 DNS 記錄:

設定必要的安全政策:

其他步驟:

警告:設定 CAA 記錄會限制哪些憑證授權機構可以成功為您的網域簽發 SSL 憑證。 這將阻止 Let’s Encrypt 測試伺服器簽發憑證。您可能要延後設定此 DNS 記錄,直到您的網域憑證成功簽發為止。

Docker

如果您的伺服器尚未安裝 Docker,請依照 Ubuntu 的 Docker CE 步驟安裝 Docker。

您也可以使用 docker-install 腳本安裝 Docker,該腳本

curl -fsSL https://get.docker.com | sh

預設橋接網路啟用 IPv6

{
  "ipv6": true,
  "fixed-cidr-v6": "2001:db8:1::/64",
  "experimental": true,
  "ip6tables": true
}
此程序將引導您使用 Docker 容器運行整個堆疊。 這包括:

從 Docker 容器運行 SimpleLogin:

Postgres SQL

此倉庫會在 Docker 容器中運行 postgres SQL。

警告:本倉庫舊版本運行 12.1 版。 請參考參考文件以獲取更多細節及 升級說明。

運行應用程式

使用以下指令運行應用程式:

docker compose up --detach --remove-orphans --build && docker compose logs -f

您可能希望在此時設置憑證授權機構授權(CAA)

下一步

如果以上所有步驟都成功,請打開 並建立您的第一個帳號!

預設情況下,新帳號不是高級帳號,因此沒有無限別名。若要讓您的帳號成為高級帳號, 請進入資料庫,找到 "users" 資料表,並將 "lifetime" 欄位設為 "1" 或 "TRUE":

docker compose exec -it postgres psql -U myuser simplelogin
UPDATE users SET lifetime = TRUE;
\q

當您建立完所有所需的登入帳號後,請將以下行加入 .env,以禁用後續註冊:

DISABLE_REGISTRATION=1
DISABLE_ONBOARDING=true
然後,若要重新啟動網頁應用程式,請執行:docker compose restart app

其他

Postfix 設定 - Spamhaus

Spamhaus 專案維護一份可靠的 IP 位址清單,這些 IP 已知為垃圾郵件來源。 您可以透過向 DNS 基礎設施提交查詢,檢查指定 IP 位址是否在該清單中。

由於 Spamhaus 會封鎖來自公共(開放)DNS 解析器的查詢(請見:),且您的 postfix 容器預設可能會使用 公共解析器,因此建議您註冊免費的 Spamhaus Data Query Service 並取得 Spamhaus DQS 金鑰。

將此金鑰貼上為 .env 中的 SPAMHAUS_DQS_KEY

若未提供 DQS 金鑰,您的 postfix 容器將檢查 Spamhaus 公共鏡像是否接受其查詢,並據此使用。 如果 Spamhaus 拒絕來自您的 postfix 容器對公共鏡像的查詢,則該功能將完全停用。

Postfix 設定 - 虛擬別名

postfix 設定支援使用 postfix/conf.d/virtualpostfix/conf.d/virtual-regexp 檔案進行虛擬別名管理。 這些檔案會根據對應的 postfix/templates/virtual.tplpostfix/templates/virtual-regexp.tpl 樣板檔案於啟動時自動建立。

預設設定如下:

#### virtual.tpl

virtual 檔案支援 postfix 的 virtual_alias_maps 設定。 其中包含一條規則,將 unknown@mydomain.com 對應至 contact@mydomain.com,用以示範接收 來自不存在別名的特定地址的電子郵件並轉發至其他已存在的地址。

``postfix-conf unknown@mydomain.com contact@mydomain.com


#### virtual-regexp.tpl

virtual-regexp 檔案支援 postfix virtual_alias_maps 設定。 它包含一條規則,會將寄送到任意子網域(但該子網域不存在對應別名)的郵件,重寫至屬於以該子網域命名目錄的新別名。 如果該別名不存在,則可以即時建立此別名。

postfix-conf /^([^@]+)@([^.]+)\.mydomain.com/ $2/$1@mydomain.com `

例如,寄送到 someone@directory.mydomain.com 的電子郵件將會由 postfix 轉送到 directory/someone@mydomain.com`。

如何從 3.4.0 升級

_本節內容已移至參考文件_

如何從先前的 NGinx 架構升級

_本節內容已移至參考文件_

--- Tranlated By Open Ai Tx | Last indexed: 2026-03-15 ---