docker-compose.yml
Rama main · réplica de lectura del repositorio original.
name: diceframe
services:
web:
build:
context: .
image: ghcr.io/diceframe/diceframe:latest
container_name: diceframe-web
ports:
- "${DICEFRAME_HTTP_PORT:-9876}:9876"
# 启用 lets_encrypt 时还要发布 ACME 验证端口。http-01 校验方只访问公网 80,
# 叠加文件固定把宿主机 80 映射到容器内监听的 TRPG_TLS_ACME_CHALLENGE_PORT
# (默认 80)—— 若把宿主机侧也配成 8080,Let's Encrypt 不会来访问:
# docker compose -f docker-compose.yml -f docker-compose.acme-challenge.yml up -d
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
TRPG_WEB_HOST: "0.0.0.0"
TRPG_WEB_PORT: "9876"
# 额外监听地址(例如 IPv6 的 ::)与附加 HTTP/HTTPS 端口。
# 注意:容器里监听了端口还需要在 ports 里映射出来,见
# docker-compose.extra-http-port.yml / docker-compose.extra-https-port.yml
# 与 .env.example 的说明。
TRPG_WEB_HOSTS: "${TRPG_WEB_HOSTS:-}"
TRPG_WEB_HTTP_PORT: "${TRPG_WEB_HTTP_PORT:-}"
TRPG_WEB_HTTPS_PORT: "${TRPG_WEB_HTTPS_PORT:-}"
# TLS 设置。Compose 的 .env 只用于变量替换,不会自动传进容器,所以这里
# 必须显式透传,否则用户在 .env 里写 TRPG_TLS_MODE 是不生效的。
# TRPG_TLS_CERT_FILE / TRPG_TLS_KEY_FILE 属于未开放的预留项,故意不透传。
TRPG_TLS_MODE: "${TRPG_TLS_MODE:-}"
TRPG_TLS_IDENTIFIER_TYPE: "${TRPG_TLS_IDENTIFIER_TYPE:-}"
TRPG_TLS_IDENTIFIER: "${TRPG_TLS_IDENTIFIER:-}"
TRPG_TLS_CONTACT_EMAIL: "${TRPG_TLS_CONTACT_EMAIL:-}"
TRPG_TLS_CHALLENGE_TYPE: "${TRPG_TLS_CHALLENGE_TYPE:-}"
TRPG_TLS_ACME_CHALLENGE_PORT: "${TRPG_TLS_ACME_CHALLENGE_PORT:-}"
TRPG_DATA_DIR: "/app/data"
# The image already defaults to Asia/Shanghai; set TZ in .env to change it.
TZ: "${TZ:-Asia/Shanghai}"
TRPG_ACCESS_TOKEN: "${TRPG_ACCESS_TOKEN:-}"
TRPG_WEB_CORS_ORIGINS: "${TRPG_WEB_CORS_ORIGINS:-}"
TRPG_PROXY_URL: "${TRPG_PROXY_URL:-}"
TRPG_BOT_TOKEN: "${TRPG_BOT_TOKEN:-}"
NAPCAT_HOST: "${NAPCAT_HOST:-}"
NAPCAT_PORT: "${NAPCAT_PORT:-}"
NAPCAT_TOKEN: "${NAPCAT_TOKEN:-}"
volumes:
- ./data:/app/data
- ./plugins:/app/plugins
restart: unless-stopped