入門
Docker 參考
milmil Docker Compose 設定嘅環境變數、profile、Volume 同反向代理參考文檔。
逐步安裝流程請睇 安裝。呢頁係你裝好之後返嚟查嘅參考資料。
環境變數檔案
milmil 將環境變數分成兩個檔案:
.env(倉庫根目錄) — Compose 層
| 變數 | 預設值 | 用途 |
|---|---|---|
API_PORT | 8080 | API 綁定嘅主機端口 |
WEB_PORT | 3000 | Web UI 綁定嘅主機端口 |
DATA_DIR | ./data | 掛載到容器 /data 嘅主機路徑 |
MEDIA_DIR | /mnt/media | 掛載到容器 /media 嘅主機路徑(只讀) |
DOWNLOAD_DIR | ./downloads | 掛載到容器 /downloads 嘅主機路徑 |
POSTGRES_USER | milmil | Postgres 超級用戶(只有用 --profile postgres 先用到) |
POSTGRES_PASSWORD | change_me_postgres_password | Postgres 密碼 |
POSTGRES_DB | milmil | Postgres 資料庫名稱 |
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-api | 8080 | milmildev/milmil-api:latest |
milmil-web | 3000 | milmildev/milmil-web:latest |
redis | 6379 | redis:alpine |
postgres | 5432 | postgres: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