โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 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ๆไปถๆๅก โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
git clone https://github.com/qianye60/HTMLproxy.git
cd HTMLproxy
docker compose up -d# ็กฎไฟๅฎ่ฃ
DockerๅDocker Compose
docker --version
docker-compose --version
# ๅ
้้กน็ฎ
git clone <your-repo>
cd HTMLproxy# ไธ้ฎๆๅปบๅนถๅฏๅจๆๆๆๅก
docker-compose up --build
# ๅๅฐ่ฟ่ก
docker-compose up --build -d# ๆฃๆฅๅฎนๅจ็ถๆ
docker-compose ps
# ๆฅ็ๆฅๅฟ
docker-compose logs nginx
docker-compose logs backend
# ๆต่ฏ่ฎฟ้ฎ
curl http://localhost:8080 # ๅ็ซฏ
curl http://localhost:8080/api/ # ๅ็ซฏAPIFROM 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/ ็ฎๅฝ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"]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(Dockerfile target) - ็ซฏๅฃ: 40000 (ๅ ้จ)
- ๆ่ฝฝๅท:
./data:/app/data./html_files:/app/html_files./uploads:/app/uploads
- ็ฏๅขๅ้:
HTML_DIR=/app/html_filesUPLOAD_DIR=/app/uploads
- ็ฎๆ :
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-
็ซฏๅฃ้ ็ฝฎ
- ๅผๅ: ๅ็ซฏ3000, ๅ็ซฏ40000
- Docker: ็ปไธ้่ฟ8080่ฎฟ้ฎ
- ็ไบง: ๅฏ้ ็ฝฎๅๅ+SSL
-
ๆฐๆฎๆไน ๅ
- ๆๆไธไผ ๆไปถๅๆฐๆฎๅบ้่ฟvolumeๆ่ฝฝ
- ๅฎนๅจ้ๅฏไธไผไธขๅคฑๆฐๆฎ
-
็ฝ็ปๅฎๅ จ
- ๅ็ซฏๆๅกไธ็ดๆฅๆด้ฒๅฐๅค็ฝ
- ้่ฟNginxๅๅไปฃ็่ฎฟ้ฎ
- ๆฏๆ้ ็ฝฎSSL่ฏไนฆ
-
ๆฉๅฑๆง
- ๅฏ็ฌ็ซๆฉๅฑๅๅ็ซฏๅฎนๅจ
- ๆฏๆ่ด่ฝฝๅ่กก้ ็ฝฎ
- ๆฐๆฎๅบๅฏๅ็ฆปไธบ็ฌ็ซๆๅก