From 4f8dd8be759853e496953d8a5333e973dfeed6f8 Mon Sep 17 00:00:00 2001 From: txai-dev Date: Sat, 12 Sep 2026 23:41:17 +0800 Subject: [PATCH] =?UTF-8?q?build:=20=E7=94=9F=E4=BA=A7=E7=BC=96=E6=8E=92?= =?UTF-8?q?=EF=BC=88=E7=8B=AC=E7=AB=8Bcompose/nginx=E9=85=8D=E7=BD=AE/?= =?UTF-8?q?=E9=A2=84=E6=9E=84=E5=BB=BA=E4=BA=A7=E7=89=A9=EF=BC=89+?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E7=94=9F=E6=88=90=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/nginx/admin.conf | 15 +++++++++++++ deploy/nginx/h5.conf | 13 +++++++++++ docker-compose.prod.yml | 50 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 deploy/nginx/admin.conf create mode 100644 deploy/nginx/h5.conf create mode 100644 docker-compose.prod.yml diff --git a/deploy/nginx/admin.conf b/deploy/nginx/admin.conf new file mode 100644 index 0000000..d478d4f --- /dev/null +++ b/deploy/nginx/admin.conf @@ -0,0 +1,15 @@ +server { + listen 80; + server_name _; + root /usr/share/nginx/html; + index index.html; + location /admin/ { + try_files $uri $uri/ /admin/index.html; + } + location = /admin { return 301 /admin/; } + location = / { return 301 /admin/; } + location ~* \.(js|css|png|jpg|svg|woff2?)$ { + expires 30d; + add_header Cache-Control "public, immutable"; + } +} diff --git a/deploy/nginx/h5.conf b/deploy/nginx/h5.conf new file mode 100644 index 0000000..6059bdb --- /dev/null +++ b/deploy/nginx/h5.conf @@ -0,0 +1,13 @@ +server { + listen 80; + server_name _; + root /usr/share/nginx/html; + index index.html; + location / { + try_files $uri $uri/ /index.html; + } + location ~* \.(js|css|png|jpg|svg|woff2?)$ { + expires 30d; + add_header Cache-Control "public, immutable"; + } +} diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..824e7a4 --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,50 @@ +# 生产独立编排:docker compose -f docker-compose.prod.yml up -d +services: + mongodb: + image: mongo:7 + restart: unless-stopped + volumes: + - mongo_data:/data/db + environment: + - MONGO_INITDB_ROOT_USERNAME=${MONGO_USER:-wdkj} + - MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASS:?need MONGO_PASS} + + dimension-server: + image: dim-server:v1.3.0 + restart: unless-stopped + depends_on: + - mongodb + ports: + - "127.0.0.1:3001:3001" + environment: + - TZ=Asia/Shanghai + - NODE_ENV=production + - PORT=3001 + - MONGODB_URI=mongodb://${MONGO_USER:-wdkj}:${MONGO_PASS}@mongodb:27017/wdkj?authSource=admin + - JWT_SECRET=${JWT_SECRET:?need JWT_SECRET} + - SITE_URL=https://wdkj.yuzhiran.com.cn + - INVITE_REWARD_CREDITS=${INVITE_REWARD_CREDITS:-100} + - COST_PER_WORK=${COST_PER_WORK:-10} + - FREE_DAILY_QUOTA=${FREE_DAILY_QUOTA:-20} + - MEMBER_DAILY_QUOTA=${MEMBER_DAILY_QUOTA:-60} + + dimension-admin: + image: nginx:alpine + restart: unless-stopped + volumes: + - ./deploy/dist/admin:/usr/share/nginx/html:ro + - ./deploy/nginx/admin.conf:/etc/nginx/conf.d/default.conf:ro + ports: + - "127.0.0.1:3010:80" + + dimension-h5: + image: nginx:alpine + restart: unless-stopped + volumes: + - ./deploy/dist/h5:/usr/share/nginx/html:ro + - ./deploy/nginx/h5.conf:/etc/nginx/conf.d/default.conf:ro + ports: + - "127.0.0.1:3020:80" + +volumes: + mongo_data: