📊 Claude Max 5x quota
đang tải…
VPS KVM4 đã có sẵn Traefik (host network, port 80/443) + Let's Encrypt + DuckDNS wildcard. → Tạo web mới chỉ cần 1 docker-compose có Traefik labels.
mkdir -p /docker/<NAME>/app
# bỏ code app vào /docker/<NAME>/app/
/docker/<NAME>/docker-compose.ymlservices:
<NAME>:
image: python:3.12-slim # hoặc node:20-alpine / nginx:alpine
container_name: <NAME>
restart: unless-stopped
working_dir: /app
command: sh -c "<lệnh chạy app>"
volumes:
- ./app:/app:ro
# mount thêm nếu cần đọc data lulu:
# - /docker/lulu/data:/docker/lulu/data:ro
labels:
- traefik.enable=true
- traefik.http.routers.<NAME>.rule=Host(`<NAME>.lulu8799.duckdns.org`)
- traefik.http.routers.<NAME>.entrypoints=websecure
- traefik.http.routers.<NAME>.tls.certresolver=letsencrypt
- traefik.http.services.<NAME>.loadbalancer.server.port=<PORT_APP_LISTEN>
cd /docker/<NAME> && docker compose up -d
# Đợi ~30s Traefik xin cert Let's Encrypt
→ URL: https://<NAME>.lulu8799.duckdns.org
<NAME> — tên container (kebab-case, không trùng)<lệnh chạy app> — vd python /app/server.py, node /app/index.js<PORT_APP_LISTEN> — port app trong container đang listenhttps://hoanganh.dabugs.com → web Lulu Brain Library (container lulu, port 50824) — đây là chỗ xem trực quan toàn bộ memorydabugs.com là domain của sếp Lulu, không phải của Lulu. Web mới của Lulu phải deploy lên <NAME>.lulu8799.duckdns.org (DuckDNS riêng của Lulu — xem [[duckdns]]).