milmilmilmil
入門

Docker 參考

milmil Docker Compose 設定嘅環境變數、profile、Volume 同反向代理參考文檔。

逐步安裝流程請睇 安裝。呢頁係你裝好之後返嚟查嘅參考資料。

環境變數檔案

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

.env(倉庫根目錄) — Compose 層

變數預設值用途
API_PORT8080API 綁定嘅主機端口
WEB_PORT3000Web UI 綁定嘅主機端口
DATA_DIR./data掛載到容器 /data 嘅主機路徑
MEDIA_DIR/mnt/media掛載到容器 /media 嘅主機路徑(只讀)
DOWNLOAD_DIR./downloads掛載到容器 /downloads 嘅主機路徑
POSTGRES_USERmilmilPostgres 超級用戶(只有用 --profile postgres 先用到)
POSTGRES_PASSWORDchange_me_postgres_passwordPostgres 密碼
POSTGRES_DBmilmilPostgres 資料庫名稱

api/.env — 執行時密鑰

變數必填用途
JWT_SECRET✅JWT 簽章 key(至少 32 字)。用 openssl rand -hex 32 生成。
DATABASE_URL✅參閱下方 資料庫
MILMIL_ENCRYPTION_KEY建議填用嚟加密儲存憑證嘅 AES-256 key。唔填就退回用 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。

Profile

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 選用)

Volume 掛載

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

本頁內容