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.