MAXUN.md 3.6 KB


title: MAXUN date: 2024-12-21T16:21:53+08:00

lastmod: 2025-02-23T16:18:31+08:00

MAXUN

  1. Docker-compose文件
  2. ENV文件

Docker-compose文件

version: '3.8'

services:
  postgres:
    image: postgres:13
    environment:
      POSTGRES_USER: ${DB_USER}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: ${DB_NAME}
    # 指定postgres端口
    command: -p ${DB_PORT:-5432}
    ports:
      - "${DB_PORT:-5432}:${DB_PORT:-5432}"
    volumes:
      # 指定postgres数据目录
      - ./postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres -p ${DB_PORT:-5432}"]
      interval: 10s
      timeout: 5s
      retries: 5

  redis:
    image: redis:6
    environment:
      REDIS_HOST: ${REDIS_HOST}
      REDIS_PORT: ${REDIS_PORT}
    # 指定redis端口
    command: redis-server --port ${REDIS_PORT:-6379}
    ports:
      - "${REDIS_PORT:-6379}:${REDIS_PORT:-6379}"
    volumes:
      # 指定redis数据目录
      - ./redis_data:/data

  minio:
    image: minio/minio
    environment:
      MINIO_ROOT_USER: ${MINIO_ACCESS_KEY}
      MINIO_ROOT_PASSWORD: ${MINIO_SECRET_KEY}
    # 指定minio端口
    command: server /data --address :${MINIO_PORT:-9000} --console-address :${MINIO_CONSOLE_PORT:-9001}
    ports:
      - "${MINIO_PORT:-9000}:${MINIO_PORT:-9000}"
      - "${MINIO_CONSOLE_PORT:-9001}:${MINIO_CONSOLE_PORT:-9001}"
    volumes:
      # 指定minio数据目录
      - ./minio_data:/data

  backend:
    #build:
      #context: .
      #dockerfile: server/Dockerfile
    image: getmaxun/maxun-backend:v0.0.7
    ports:
      - "${BACKEND_PORT:-8080}:${BACKEND_PORT:-8080}"
    env_file: .env
    environment:
      BACKEND_URL: ${BACKEND_URL}
      # to ensure Playwright works in Docker
      PLAYWRIGHT_BROWSERS_PATH: /ms-playwright
      PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 0
      # DEBUG: pw:api
      # PWDEBUG: 1  # Enables debugging
      CHROMIUM_FLAGS: '--disable-gpu --no-sandbox --headless=new'
    security_opt:
    - seccomp=unconfined  # This might help with browser sandbox issues
    shm_size: '2gb' # Increase shared memory size for Chromium
    mem_limit: 2g   # Set a 2GB memory limit
    depends_on:
      - postgres
      - redis
      - minio
    volumes:
      # 指定通信目录(用于容器内进程间通信,目录名可自定义)
      - ./dbus:/var/run/dbus

  frontend:
      #build:
      #context: .
      #dockerfile: Dockerfile
    image: getmaxun/maxun-frontend:v0.0.3
    ports:
      - "${FRONTEND_PORT:-5173}:${FRONTEND_PORT:-5173}"
    env_file: .env
    environment:
      PUBLIC_URL: ${PUBLIC_URL}
      BACKEND_URL: ${BACKEND_URL}
    depends_on:
      - backend

volumes:
  postgres_data:
  minio_data:
  redis_data:

ENV文件

# App Setup
NODE_ENV=production
JWT_SECRET=a9Z$$kLq7^f03GzNw!bP9dH4xV6sT2yXl3O8vR@uYq3
DB_NAME=maxun
DB_USER=postgres
DB_PASSWORD=postgres
DB_HOST=postgres
DB_PORT=5435
ENCRYPTION_KEY=f4d5e6a7b8c9d0e1f23456789abcdef01234567890abcdef123456789abcdef0

# MinIO配置
MINIO_ENDPOINT=minio
MINIO_PORT=9005
MINIO_CONSOLE_PORT=9006
MINIO_ACCESS_KEY=zhensolid
MINIO_SECRET_KEY=19841122Cy!

# Redis配置
REDIS_HOST=redis
REDIS_PORT=6380

# 后端和前端URL配置
BACKEND_PORT=8081
FRONTEND_PORT=5174
BACKEND_URL=http://localhost:8081
PUBLIC_URL=http://localhost:5174
VITE_BACKEND_URL=http://localhost:8081
VITE_PUBLIC_URL=http://localhost:5174

# 遥测设置
MAXUN_TELEMETRY=true