Skip to content

๐ŸŒ ๅŸบไบŽ Vue3 + FastAPI ็š„ HTML ๆ–‡ไปถไปฃ็†็ณป็ปŸ๏ผŒๆ”ฏๆŒไธŠไผ ใ€็ฎก็†ไธŽๅฎ‰ๅ…จ่ฎฟ้—ฎ ๐Ÿš€

Notifications You must be signed in to change notification settings

qianye60/HTMLproxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

59 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

HTMLไปฃ็†็ณป็ปŸ้ƒจ็ฝฒๆต็จ‹

ๆžถๆž„ๅ›พ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     Dockerๆž„ๅปบๆต็จ‹                          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   ๆบไปฃ็ ไป“ๅบ“     โ”‚    โ”‚   Dockerๆž„ๅปบ     โ”‚    โ”‚   ๅฎนๅ™จ่ฟ่กŒ       โ”‚
โ”‚                โ”‚    โ”‚                โ”‚    โ”‚                โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚    โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚    โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ front/      โ”‚ โ”‚โ”€โ”€โ”€โ–ถโ”‚ โ”‚ๅ‰็ซฏๆž„ๅปบ้˜ถๆฎต  โ”‚ โ”‚โ”€โ”€โ”€โ–ถโ”‚ โ”‚ nginxๅฎนๅ™จ   โ”‚ โ”‚
โ”‚ โ”‚ - Vue3้กน็›ฎ  โ”‚ โ”‚    โ”‚ โ”‚- npm build  โ”‚ โ”‚    โ”‚ โ”‚- ้™ๆ€ๆ–‡ไปถ    โ”‚ โ”‚
โ”‚ โ”‚ - TypeScriptโ”‚ โ”‚    โ”‚ โ”‚- ็”Ÿๆˆdist/  โ”‚ โ”‚    โ”‚ โ”‚- ๅๅ‘ไปฃ็†    โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚    โ”‚ โ”‚- ็ซฏๅฃ8080   โ”‚ โ”‚
โ”‚                โ”‚    โ”‚                โ”‚    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚    โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚    โ”‚                โ”‚
โ”‚ โ”‚ backend/    โ”‚ โ”‚โ”€โ”€โ”€โ–ถโ”‚ โ”‚ๅŽ็ซฏๆž„ๅปบ้˜ถๆฎต  โ”‚ โ”‚โ”€โ”€โ”€โ–ถโ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ - FastAPI   โ”‚ โ”‚    โ”‚ โ”‚- pip installโ”‚ โ”‚    โ”‚ โ”‚backendๅฎนๅ™จ  โ”‚ โ”‚
โ”‚ โ”‚ - Python    โ”‚ โ”‚    โ”‚ โ”‚- ๅฎ‰่ฃ…ไพ่ต–    โ”‚ โ”‚    โ”‚ โ”‚- FastAPI    โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚    โ”‚ โ”‚- ็ซฏๅฃ40000  โ”‚ โ”‚
โ”‚                โ”‚    โ”‚                โ”‚    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚    โ”‚                โ”‚    โ”‚                โ”‚
โ”‚ โ”‚้…็ฝฎๆ–‡ไปถ      โ”‚ โ”‚โ”€โ”€โ”€โ–ถโ”‚                โ”‚โ”€โ”€โ”€โ–ถโ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚- nginx.conf โ”‚ โ”‚    โ”‚                โ”‚    โ”‚ โ”‚ๅ…ฑไบซๅญ˜ๅ‚จ      โ”‚ โ”‚
โ”‚ โ”‚- Dockerfile โ”‚ โ”‚    โ”‚                โ”‚    โ”‚ โ”‚- ./data     โ”‚ โ”‚
โ”‚ โ”‚- compose.ymlโ”‚ โ”‚    โ”‚                โ”‚    โ”‚ โ”‚- ./uploads  โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚    โ”‚                โ”‚    โ”‚ โ”‚- ./html_filesโ”‚ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
                                              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

็ฝ‘็ปœๆžถๆž„

                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚             ็”จๆˆท่ฎฟ้—ฎ                 โ”‚
                    โ”‚        http://localhost:8080        โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                   โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚           Nginxๅฎนๅ™จ                  โ”‚
                    โ”‚         (็ซฏๅฃ 8080:80)              โ”‚
                    โ”‚                                    โ”‚
                    โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
                    โ”‚ โ”‚  ้™ๆ€ๆ–‡ไปถ   โ”‚  โ”‚   APIไปฃ็†       โ”‚ โ”‚
                    โ”‚ โ”‚     /      โ”‚  โ”‚   /api/*       โ”‚ โ”‚
                    โ”‚ โ”‚  Vueๅ‰็ซฏ   โ”‚  โ”‚      โ”‚         โ”‚ โ”‚
                    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                             โ”‚
                              Docker็ฝ‘็ปœ้€šไฟก  โ”‚
                                             โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚         Backendๅฎนๅ™จ                 โ”‚
                    โ”‚        (็ซฏๅฃ 40000)                โ”‚
                    โ”‚                                    โ”‚
                    โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
                    โ”‚ โ”‚          FastAPI              โ”‚ โ”‚
                    โ”‚ โ”‚        - ็”จๆˆท่ฎค่ฏAPI           โ”‚ โ”‚
                    โ”‚ โ”‚        - ๆ–‡ไปถไธŠไผ API           โ”‚ โ”‚
                    โ”‚ โ”‚        - HTMLๆ–‡ไปถๆœๅŠก          โ”‚ โ”‚
                    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

docker ๆ‹‰ๅ–

git clone https://github.com/qianye60/HTMLproxy.git
cd HTMLproxy
docker compose up -d

(docker ๆž„ๅปบ)้ƒจ็ฝฒๆญฅ้ชค

1. ็Žฏๅขƒๅ‡†ๅค‡

# ็กฎไฟๅฎ‰่ฃ…Dockerๅ’ŒDocker Compose
docker --version
docker-compose --version

# ๅ…‹้š†้กน็›ฎ
git clone <your-repo>
cd HTMLproxy

2. ๆž„ๅปบๅ’ŒๅฏๅŠจ

# ไธ€้”ฎๆž„ๅปบๅนถๅฏๅŠจๆ‰€ๆœ‰ๆœๅŠก
docker-compose up --build

# ๅŽๅฐ่ฟ่กŒ
docker-compose up --build -d

3. ้ชŒ่ฏ้ƒจ็ฝฒ

# ๆฃ€ๆŸฅๅฎนๅ™จ็Šถๆ€
docker-compose ps

# ๆŸฅ็œ‹ๆ—ฅๅฟ—
docker-compose logs nginx
docker-compose logs backend

# ๆต‹่ฏ•่ฎฟ้—ฎ
curl http://localhost:8080         # ๅ‰็ซฏ
curl http://localhost:8080/api/    # ๅŽ็ซฏAPI

ๆž„ๅปบ่ฏฆ็ป†ๆต็จ‹

้˜ถๆฎต1: ๅ‰็ซฏๆž„ๅปบ (frontend-build)

FROM node:18 AS frontend-build
WORKDIR /app/front
COPY front/package*.json ./
RUN npm ci --legacy-peer-deps
COPY front/ .
ENV NODE_OPTIONS="--experimental-global-webcrypto"
RUN npm run build  # ็”Ÿๆˆ dist/ ็›ฎๅฝ•

้˜ถๆฎต2: ๅŽ็ซฏ้•œๅƒ (backend)

FROM python:3.10-slim AS backend
WORKDIR /app/backend
COPY backend/ .
RUN pip install --no-cache-dir -r requirements.txt
RUN mkdir -p /app/data /app/html_files /app/uploads
EXPOSE 40000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "40000"]

้˜ถๆฎต3: Nginx้•œๅƒ (nginx)

FROM nginx:stable-alpine AS nginx
COPY --from=frontend-build /app/front/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf
RUN mkdir -p /app/data /app/html_files /app/uploads
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

ๆœๅŠก้…็ฝฎ

BackendๆœๅŠก

  • ็›ฎๆ ‡: backend (Dockerfile target)
  • ็ซฏๅฃ: 40000 (ๅ†…้ƒจ)
  • ๆŒ‚่ฝฝๅท:
    • ./data:/app/data
    • ./html_files:/app/html_files
    • ./uploads:/app/uploads
  • ็Žฏๅขƒๅ˜้‡:
    • HTML_DIR=/app/html_files
    • UPLOAD_DIR=/app/uploads

NginxๆœๅŠก

  • ็›ฎๆ ‡: nginx (Dockerfile target)
  • ็ซฏๅฃ: 8080:80 (ๅค–้ƒจ่ฎฟ้—ฎ)
  • ไพ่ต–: backendๆœๅŠก
  • ๆŒ‚่ฝฝๅท: ไธŽbackend็›ธๅŒ(ๅ…ฑไบซๆ•ฐๆฎ)
  • ้…็ฝฎ:
    • ้™ๆ€ๆ–‡ไปถๆœๅŠก: /
    • APIไปฃ็†: /api/* โ†’ backend:40000/api/*
    • HTMLๆ–‡ไปถ: /html/* โ†’ backend:40000/html/*

ๅผ€ๅ‘็Žฏๅขƒ

ๅ‰็ซฏๅผ€ๅ‘

cd front
npm install
npm run dev     # ๅผ€ๅ‘ๆœๅŠกๅ™จ (้€šๅธธ3000็ซฏๅฃ)
npm run build   # ๆž„ๅปบ็”Ÿไบง็‰ˆๆœฌ

ๅŽ็ซฏๅผ€ๅ‘

cd backend
pip install -r requirements.txt
uvicorn main:app --reload --host 0.0.0.0 --port 40000

็”Ÿไบง้ƒจ็ฝฒๆณจๆ„ไบ‹้กน

  1. ็ซฏๅฃ้…็ฝฎ

    • ๅผ€ๅ‘: ๅ‰็ซฏ3000, ๅŽ็ซฏ40000
    • Docker: ็ปŸไธ€้€š่ฟ‡8080่ฎฟ้—ฎ
    • ็”Ÿไบง: ๅฏ้…็ฝฎๅŸŸๅ+SSL
  2. ๆ•ฐๆฎๆŒไน…ๅŒ–

    • ๆ‰€ๆœ‰ไธŠไผ ๆ–‡ไปถๅ’Œๆ•ฐๆฎๅบ“้€š่ฟ‡volumeๆŒ‚่ฝฝ
    • ๅฎนๅ™จ้‡ๅฏไธไผšไธขๅคฑๆ•ฐๆฎ
  3. ็ฝ‘็ปœๅฎ‰ๅ…จ

    • ๅŽ็ซฏๆœๅŠกไธ็›ดๆŽฅๆšด้œฒๅˆฐๅค–็ฝ‘
    • ้€š่ฟ‡Nginxๅๅ‘ไปฃ็†่ฎฟ้—ฎ
    • ๆ”ฏๆŒ้…็ฝฎSSL่ฏไนฆ
  4. ๆ‰ฉๅฑ•ๆ€ง

    • ๅฏ็‹ฌ็ซ‹ๆ‰ฉๅฑ•ๅ‰ๅŽ็ซฏๅฎนๅ™จ
    • ๆ”ฏๆŒ่ดŸ่ฝฝๅ‡่กก้…็ฝฎ
    • ๆ•ฐๆฎๅบ“ๅฏๅˆ†็ฆปไธบ็‹ฌ็ซ‹ๆœๅŠก

About

๐ŸŒ ๅŸบไบŽ Vue3 + FastAPI ็š„ HTML ๆ–‡ไปถไปฃ็†็ณป็ปŸ๏ผŒๆ”ฏๆŒไธŠไผ ใ€็ฎก็†ไธŽๅฎ‰ๅ…จ่ฎฟ้—ฎ ๐Ÿš€

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published