Sign inSign up

koalalove/moments-blog

By koalalove

Updated 3 months ago

简约朋友圈风格博客

Image
0

3.1K

koalalove/moments-blog repository overview

项目预览:https://blog.9su.de/

docker-compose.yml

# ============================================================
# Moments Blog — 生产部署配置(预构建镜像版,单容器)
# 数据通过目录映射持久化,数据目录在 ./data/ 下
#
# 快速部署:
#   1. cp .env.example .env  并填写 JWT_SECRET
#   2. docker compose -f docker-compose.release.yml up -d
#   3. 访问 http://你的IP/admin  初始账号: admin / Strong1passwd!
# ============================================================
services:
  moments-blog:
    image: koalalove/moments-blog:latest
    container_name: moments-blog
    restart: unless-stopped
    ports:
      - "${HOST_PORT:-80}:80"
    volumes:
      # PostgreSQL 数据(首次启动自动初始化,迁移备份直接 cp 即可)
      - ./data/postgres:/var/lib/postgresql/data
      # 媒体上传文件
      - ./data/uploads:/data/uploads
      # 运行日志
      - ./data/logs:/data/logs
    environment:
      # ── 必填:上线前务必修改 ──
      - JWT_SECRET=${JWT_SECRET}

      # ── 数据库(连接容器内 PostgreSQL 15)──
      - DATABASE_URL=postgresql://${DB_USER:-moments}:${DB_PASSWORD:-moments_password}@127.0.0.1:5432/${DB_NAME:-moments}

      # ── 运行环境 ──
      - NODE_ENV=production
      - PORT=3001
      - UPLOAD_DIR=/data/uploads
      - INTERNAL_API_URL=http://localhost:3001
      - PGDATA=/var/lib/postgresql/data

      # ── 反向代理跳数(决定 req.ip 取真实访客 IP,影响限流与点赞去重)──
      # 默认 1:仅容器内置 Nginx。外层再加一层代理(如 Caddy)时设为 2;
      # 若外层还有 CDN(如 Cloudflare)再相应 +1。
      - TRUST_PROXY=${TRUST_PROXY:-1}
    logging:
      driver: "json-file"
      options:
        max-size: "20m"
        max-file: "5"

.env.example

# ── Moments Blog — Environment Variables ──
# cp .env.example .env

# ── Port ──
HOST_PORT=80

# ── 反向代理跳数(获取访客真实 IP;影响限流与访客点赞去重)──
# 容器内已自带一层 Nginx,默认 1 即可。
# 若你在容器前再加了一层反代(如 Caddy / 宿主机 Nginx),设为 2;
# 若外层还套了 CDN(如 Cloudflare),再相应 +1(即 3)。
# 安全前提:容器端口不要直接对公网暴露,只能经你的反代访问,否则 IP 可被伪造。
TRUST_PROXY=1

# ── JWT(必填!请用以下命令生成,不能留空)──
# openssl rand -hex 64
JWT_SECRET=

# ── 内置 PostgreSQL 数据库配置(可选,修改默认值)──
DB_NAME=moments
DB_USER=moments
DB_PASSWORD=moments_password

# ── 初始管理员账号:admin / Strong1passwd! ──
# 登录后请前往后台「账号设置」修改密码

Tag summary

Content type

Image

Digest

sha256:d1b73a40b

Size

264.1 MB

Last updated

3 months ago

docker pull koalalove/moments-blog