Chuyển tới nội dung chính
Qqspace
Tất cả ghi chú

3 phút đọc

Dựng qspace.site ngay trên máy mình

Một website Next.js song ngữ, một thư viện tài liệu và một trang đăng nhập — tất cả chạy bằng Docker Compose sau một Cloudflare Tunnel.

#qspace#docker#cloudflare

Trang này không chạy trên Vercel hay một VPS nào cả. Nó chạy ngay trên máy của mình, đóng gói bằng Docker Compose, và ra Internet qua một Cloudflare Tunnel.

Ba container

  • web — website Next.js bạn đang đọc, song ngữ Việt/Anh.
  • docs — thư viện tài liệu HTML viết bằng Python thuần, kiêm luôn trang đăng nhập.
  • tunnel — cloudflared, chia đường theo tên miền và đường dẫn.

Chia đường ngay trong tunnel

qspace.site/login và /admin đi tới server tài liệu, mọi đường dẫn khác của qspace.site tới website, còn docs.qspace.site vào thẳng thư viện. Không cần thêm reverse proxy: cloudflared tự so khớp đường dẫn bằng regex.

ingress:
  - hostname: qspace.site
    path: ^/(login|logout|admin)(/.*)?$
    service: http://127.0.0.1:8787
  - hostname: qspace.site
    service: http://127.0.0.1:3000

Vì sao tự host

Máy đằng nào cũng bật, và mình muốn hiểu từng lớp một: DNS, tunnel, container, cookie đăng nhập. Một lệnh docker compose up -d là dựng lại mọi thứ, kể cả sau mỗi lần khởi động máy.