- vite.config.ts: 加 base: '/app/',App 部署在子路径 - server/index.ts: MODELS_FILE 支持环境变量覆盖(容器化写权限) - homepage/index.html: 极简开发者风格个人主页(About/Projects/Skills/Contact) - nginx/default.conf: 反向代理,SSE proxy_buffering off,SPA fallback - docker-compose.yml: Nginx + Hono 容器编排,models_data volume 持久化 - deploy.sh: 一键本地构建 + rsync 上传 + 远端重启 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
39 lines
951 B
YAML
39 lines
951 B
YAML
services:
|
|
hono-server:
|
|
image: node:22-alpine
|
|
working_dir: /app
|
|
command: npx tsx server/index.ts
|
|
environment:
|
|
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
|
|
- MODELS_FILE=/app/models_data/models.json
|
|
- NODE_ENV=production
|
|
volumes:
|
|
- ./program1:/app:ro
|
|
- models_data:/app/models_data
|
|
expose:
|
|
- "3001"
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-qO-", "http://localhost:3001/api/models"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
|
|
nginx:
|
|
image: nginx:1.27-alpine
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
|
|
- ./homepage:/usr/share/nginx/html/homepage:ro
|
|
- ./app:/usr/share/nginx/html/app:ro
|
|
- /etc/letsencrypt:/etc/letsencrypt:ro
|
|
depends_on:
|
|
hono-server:
|
|
condition: service_healthy
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
models_data:
|