milmilmilmil
入門

Docker 參考

milmil Docker Compose 設定的環境變數、profile、掛載卷與反向代理參考文件。

逐步安裝流程請參閱安裝。本頁是服務啟動後供您查閱的參考文件。

環境變數檔案

milmil 將環境變數分為兩個檔案:

.env(儲存庫根目錄)— Compose 層

變數預設值用途
API_PORT8080API 綁定的主機埠號
WEB_PORT3000網頁介面綁定的主機埠號
DATA_DIR./data掛載至 API 容器 /data 的主機路徑
MEDIA_DIR/mnt/media掛載至 API 容器 /media 的主機路徑(唯讀)
DOWNLOAD_DIR./downloads掛載至 API 容器 /downloads 的主機路徑
POSTGRES_USERmilmilPostgres 超級使用者(僅在 --profile postgres 時使用)
POSTGRES_PASSWORDchange_me_postgres_passwordPostgres 密碼
POSTGRES_DBmilmilPostgres 資料庫名稱

api/.env — 執行期密鑰

變數必填用途
JWT_SECRET✅JWT 簽章金鑰(≥ 32 字元)。使用 openssl rand -hex 32 產生。
DATABASE_URL✅請參閱下方資料庫說明
MILMIL_ENCRYPTION_KEY建議設定用於加密儲存憑證的 AES-256 金鑰。未設定時回退使用 JWT_SECRET。
REDIS_URL否開發環境可留空(使用記憶體快取);正式環境請設定 redis://redis:6379。
REDIS_USERNAME, REDIS_PASSWORD否供 Redis 容器 ACL 使用(API 不直接消費)。
ADMIN_USER, ADMIN_PASSWORD否首次啟動時自動建立管理員帳號。請參閱首次設定。
DANDANPLAY_APP_ID, DANDANPLAY_APP_SECRET否DandanPlay 雜湊比對與彈幕功能。

完整變數清單請參閱 api/.env.example。

Profiles

docker compose up -d

啟動:api + web + redis(SQLite 資料庫,不含 Postgres)。

docker compose --profile postgres up -d

額外啟動:Postgres 16 容器。請先在 api/.env 中設定 DATABASE_URL=postgres://...。

docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d --build

從本機原始碼建置映像檔,而非從 Docker Hub 拉取。

服務

服務埠號映像檔
milmil-api8080milmildev/milmil-api:latest
milmil-web3000milmildev/milmil-web:latest
redis6379redis:alpine
postgres5432postgres:16-alpine(透過 --profile postgres 選擇性啟用)

掛載卷

API 容器需要三個掛載點:

volumes:
  - ${DATA_DIR:-./data}:/data            # app data, transcode cache, SQLite DB
  - ${MEDIA_DIR:-/mnt/media}:/media:ro   # anime library (read-only)
  - ${DOWNLOAD_DIR:-./downloads}:/downloads

請在 .env 中設定這些主機路徑。容器內部固定使用 /data、/media、/downloads,因此 milmil 中的媒體庫路徑應以 /media/... 開頭。

資料庫

零設定,儲存於 /data/milmil.db。建議用於單人使用或小型媒體庫。

DATABASE_URL=sqlite://data/milmil.db

反向代理

Nginx、Caddy 與 Traefik 的設定方式請參閱專屬的反向代理指南。

預期的檔案結構

.env
docker-compose.yml
docker-compose.dev.yml
.env

本頁內容